グラフデータベース一括インポート(HugeGraph-Loader)
第1章
リンク:グラフデータベース一括インポート(HugeGraph-Loader)
序文
HugeGraph-Loader は、HugeGraph のデータ インポート コンポーネントであり、さまざまなデータ ソースからのデータをグラフの頂点とエッジに変換し、グラフ データベースにバッチでインポートできます。
現在サポートされているデータ ソースは次のとおりです。
- ローカル ディスク ファイルまたはディレクトリ、TEXT、CSV、および JSON 形式のファイルをサポート、圧縮ファイルをサポート
- HDFS ファイルまたはディレクトリ、圧縮ファイルをサポート
- MySQL、PostgreSQL、Oracle、SQL Server ローカル ディスク ファイル、HDFS ファイルなどの主流のリレーショナル データベースは、再開可能なアップロードをサポートしています。
1. ローダ実行処理
HugeGraph-Loader を使用する基本的なプロセスは、次の手順に分かれています。
- グラフモデルを書く
- データファイルを準備する
- 入力ソースマップファイルを書き込む
- コマンドインポートの実行
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 などのデータ インポートをサポートしています。インポートは速いです