グラフデータベース一括インポート(HugeGraph-Loader)

グラフデータベース一括インポート(HugeGraph-Loader)


第1章
リンク:グラフデータベース一括インポート(HugeGraph-Loader)

序文

HugeGraph-Loader は、HugeGraph のデータ インポート コンポーネントであり、さまざまなデータ ソースからのデータをグラフの頂点とエッジに変換し、グラフ データベースにバッチでインポートできます。
現在サポートされているデータ ソースは次のとおりです。

  1. ローカル ディスク ファイルまたはディレクトリ、TEXT、CSV、および JSON 形式のファイルをサポート、圧縮ファイルをサポート
  2. HDFS ファイルまたはディレクトリ、圧縮ファイルをサポート
  3. MySQL、PostgreSQL、Oracle、SQL Server ローカル ディスク ファイル、HDFS ファイルなどの主流のリレーショナル データベースは、再開可能なアップロードをサポートしています。

1. ローダ実行処理

HugeGraph-Loader を使用する基本的なプロセスは、次の手順に分かれています。

  1. グラフモデルを書く
  2. データファイルを準備する
  3. 入力ソースマップファイルを書き込む
  4. コマンドインポートの実行

2、csvファイルのインポート

1. データマッピングファイル

データマッピングファイルは以下の通りです csvファイルにヘッダーがある場合、入力下のヘッダーには値を代入する必要はありません 値が代入されている場合は1行目がデータ解析として使用されます

 {
    
    
	"version": "2.0",
	"structs": [{
    
    
		"id": "1",
		"skip": false,
		"input": {
    
    
			"type": "FILE",
			"path": "/mnt/parastor/aimind/kg-resources/Oakcsys1/d2r/job-63c3b6727701166100cd7426/file-mapping-7f19ceeea95a417495bc33bd54fa1bf9/人员列表1.csv",
			"file_filter": {
    
    
				"extensions": ["*"]
			},
			"format": "CSV",
			"delimiter": ",",
			"date_format": "yyyy-MM-dd HH:mm:ss",
			"time_zone": "GMT+8",
			"skipped_line": {
    
    
				"regex": "(^#|^//).*|"
			},
			"compression": "NONE",
			"batch_size": 500,
			"header": null,
			"charset": "GBK",
			"list_format": {
    
    
				"start_symbol": "",
				"end_symbol": "",
				"elem_delimiter": "|",
				"ignored_elems": [""]
			}
		},
		"vertices": [{
    
    
			"label": "ry",
			"skip": false,
			"id": "姓名",
			"unfold": true,
			"field_mapping": {
    
    
				"年龄": "nl",
				"性别": "xb"
			},
			"value_mapping": {
    
    },
			"selected": ["姓名", "年龄", "性别"],
			"ignored": [],
			"null_values": ["Null"],
			"update_strategies": {
    
    },
			"field_formats": []
		}],
		"edges": []
	}]
}

3、jsonファイルのインポート

1. データマッピングファイル

データ マッピング ファイルは次のとおりです。json ファイルにはヘッダーがありません。ヘッダーには値を割り当てる必要があります。json 形式は 1 行に 1 つの JSON データセットです。例: {“name”: “marko”, “
sex
” : "男性", "年齢": "12" , "体重": "0.4"} {
"名前": "ジョシュ", "性別": "女性", "年齢": "16", "体重": "0.4"}

  {
    
    
	"version": "2.0",
	"structs": [{
    
    
		"id": "1",
		"skip": false,
		"input": {
    
    
			"type": "FILE",
			"path": "C:\\Users\\kmliu\\Desktop\\上传文件2\\t_user3.json",
			"file_filter": {
    
    
				"extensions": ["*"]
			},
			"format": "JSON",
			"delimiter": ",",
			"date_format": "yyyy-MM-dd HH:mm:ss",
			"time_zone": "GMT+8",
			"skipped_line": {
    
    
				"regex": "(^#|^//).*|"
			},
			"compression": "NONE",
			"batch_size": 500,
			"header": ["sex", "name", "weight", "age"],
			"charset": "UTF-8",
			"list_format": {
    
    
				"start_symbol": "",
				"end_symbol": "",
				"elem_delimiter": "|",
				"ignored_elems": [""]
			}
		},
		"vertices": [{
    
    
			"label": "ry2",
			"skip": false,
			"id": "name",
			"unfold": true,
			"field_mapping": {
    
    
				"sex": "sex",
				"age": "age"
			},
			"value_mapping": {
    
    },
			"selected": ["sex", "name", "age"],
			"ignored": [],
			"null_values": ["Null"],
			"update_strategies": {
    
    },
			"field_formats": []
		}],
		"edges": []
	}]
}

3、mysqlデータインポート

1. データマッピングファイル

データマッピングファイルは次のとおりです

{
    
    
	"version": "2.0",
	"structs": [{
    
    
		"id": "1",
		"skip": false,
		"input": {
    
    
			"type": "JDBC",
			"vendor": "MYSQL",
			"header": ["id", "name", "age", "sex"],
			"charset": "UTF-8",
			"list_format": {
    
    
				"start_symbol": "",
				"end_symbol": "",
				"elem_delimiter": "|",
				"ignored_elems": [""]
			},
			"driver": "com.mysql.cj.jdbc.Driver",
			"url": "jdbc:mysql://xxx.xxx.xxx.xxx:3306",
			"database": "baseName",
			"schema": null,
			"table": "user3",
			"username": "root",
			"password": "root",
			"batch_size": 500,
			"primary_key": "name"
		},
		"vertices": [{
    
    
			"label": "ry",
			"skip": false,
			"id": "name",
			"unfold": true,
			"field_mapping": {
    
    
				"age": "nl",
				"sex": "xb"
			},
			"value_mapping": {
    
    },
			"selected": ["sex", "name", "age"],
			"ignored": [],
			"null_values": ["Null"],
			"update_strategies": {
    
    },
			"field_formats": []
		}],
		"edges": []
	}]
}

4.hugGraph ステップを呼び出す

1.呼び出しメソッドのエントリ

パラメータ Oakcsys1 はグラフ データベース内の集合名詞で、json1.json はデータ マッピング ファイルです。生成されるルールは上記で説明したように、「xxx.xx.xx.xx」、「-p」、「18081」です。グラフデータベースのアドレスとIP。

 public static void main(String[] args) {
    
    
        // -g {GRAPH_NAME} -f ${INPUT_DESC_FILE} -s ${SCHEMA_FILE} -h {HOST} -p {PORT}
        if (args.length == 0) {
    
    
            args = new String[]{
    
    "-g", "Oakcsys1",
                    "-f", "C:\\Users\\kmliu\\Desktop\\上传文件2\\json1.json",
                    "-h", "xxx.xx.xx.xx", "-p", "18081"
            };
        }
        HugeGraphLoader loader;
        try {
    
    
            loader = new HugeGraphLoader(args);
        } catch (Throwable e) {
    
    
            Printer.printError("Failed to start loading", e);
            return;
        }
        loader.load();
    }

5. インポートデータログ

1.ログは以下の通りです

: -----映射任务运行中-日志打印-----
: --------------------------------------------------
: detail metrics
: input-struct '1'
:     read success                  : 4                   
:     read failure                  : 0                   
: vertex 'ry'
:     parse success                 : 4                   
:     parse failure                 : 0                   
:     insert success                : 4                   
:     insert failure                : 0                   
: --------------------------------------------------
: count metrics
:     input read success            : 4                   
:     input read failure            : 0                   
:     vertex parse success          : 4                   
:     vertex parse failure          : 0                   
:     vertex insert success         : 4                   
:     vertex insert failure         : 0                   
:     edge parse success            : 0                   
:     edge parse failure            : 0                   
:     edge insert success           : 0                   
:     edge insert failure           : 0                   
: --------------------------------------------------
: meter metrics
:     total time                    : 5.549s              
:     vertex load rate(vertices/s)  : 0                   
:     edge load rate(edges/s)       : 0                   
: -----映射任务运行中-日志打印结束-----

要約する

上記は、HugeGraphLoader を使用する基本的な手順です。HugeGraphLoader は、主にデータ セットをグラフ データベースにインポートするために使用され、csv、json、txt、mysql、hive などのデータ インポートをサポートしています。インポートは速いです

おすすめ

転載: blog.csdn.net/Oaklkm/article/details/128671373