1
私は3つのCSVファイルを持っています.1つはノードA、もう1つはノードB、もう1つはエッジA_to_Bです。OrientDBでJSONを使用してCSVをインポートするには、あるテーブルのIDと別のテーブルのIDを使用しますか?
ノードをOrientDBにインポートするだけでも問題ありません。それは私が問題を抱えているエッジです。
ノードAのCSVファイルが含まれている(idは整数インデックスである):
id, value
0, a
1, b
2, c
3, d
...
ノードBのCSVファイルが含まれている(idは整数インデックスである):CSVに含ま
id, Category
10, cat_x
11, cat_y
12, cat_z
edge_a_b:
a_id, Category
0, cat_x
1, cat_z
2, cat_z
...
"a"と "b"の2つをデータベースに正しく取得できます。しかし、私がこのETL jsonを実行すると...
{
"source": { "file": { "path": "/mypath/edge_a_b.csv" } },
"extractor": { "csv": {} },
"transformers": [
{ "vertex": { "class": "b", "skipDuplicates": true } },
{ "edge": { "class": "Involves", "joinFieldName": "a_id", "lookup": "a.id", "direction": "in" } }
],
"loader": {
"orientdb": {
"dbURL": "plocal:../databases/mydb",
"dbType": "graph",
"classes": [
{"name": "a", "extends": "V"},
{"name": "b", "extends": "V"},
{"name": "Involves", "extends": "E"}
], "indexes": [
{"class":"a", "fields":["id:integer"], "type":"UNIQUE" },
{"class":"b", "fields":["id:integer"], "type":"UNIQUE" }
]
}
}
}
私はマッチすると予想している215の頂点のうちの1つだけを取得します。
| => ./oetl.sh /mypath/edge_a_b.json
OrientDB etl v.2.2.11 (build [email protected]; 2016-10-03 09:39:41+0000) www.orientdb.com
BEGIN ETL PROCESSOR
[file] INFO Reading from file /mypath/edge_a_b.csv with encoding UTF-8
Started execution with 1 worker threads
[orientdb] INFO committing
END ETL PROCESSOR
+ extracted 215 rows (0 rows/sec) - 215 rows -> loaded 1 vertices (0 vertices/sec) Total time: 172ms [0 warnings, 0 errors]
ノードが作成されています。それは私が作成することが困難であると思っているエッジです。私は様々なアプローチを試みました。
こんにちは、これを見ましたか? http://orientdb.com/docs/2.2/Import-from-CSV-to-a-Graph.html。 –
@ Michela-Bonizziこんにちは。はい。私のシナリオとあなたが参照したシナリオの違いはいくつかあります。主なものは、BノードCSVに固有の索引要素が含まれ、辺が別々のファイルにあるというCSVです。私は理論的には、私のCSVファイルを操作して、それがこの例と一致するようにすることはできますが、私はそれを避けようとしています。 – user2962397