OrientDB ETL CSV import: как импортировать только ребра?
У нас есть файл city.csv, содержащий
cityname,citystdcode
KOLKATA,033
MUMBAI,022
HYDERABAD,040
этот csv уже импортирован с помощью etl, теперь у нас есть класс CITY Vertex с 3 записями.
Теперь у нас есть route.csv, содержащий только ребра, которые нам нужно импортировать.
from,to
MUMBAI,HYDERABAD
KOLKATA,MUMBAI
Это route.json, мы пробовали много способов, но ничего не работает.
{
"config": {
"log": "debug"
},
"source": {
"file": {
"path": "route.csv"
}
},
"extractor": { "csv": {"separator": ",",
}
} ,
"transformers": [
{
"merge": {
"joinFieldName": "from",//${input.from} also tried
"lookup": "City.cityname"
}
},
{
"vertex": {
"class": "City"
}
},
{
"edge": {
"class": "Route",
"joinFieldName": "to", //${input.to} also tried
"lookup": "City.cityname",
"unresolvedLinkAction": "CREATE"
}
}
],
"loader": {
"orientdb": {
"dbURL": "plocal:C:/ODB/databases/large14",
"dbType": "graph",
"wal": false,
"batchCommit": 10,
"tx": true,
"txUseLog": true,
"useLightweightEdges": true,
"classes": [{
"name": "City",
"extends": "V"
},
{
"name": "Route",
"extends": "E"
}
],
"indexes": []
}
}
}
Необходимо импортировать это с помощью etl. Мы перепробовали все доступные примеры конфигурации json для импорта ребер, но ничего не работает, мы запутались с полями слияния, поиска и соединения (как это работает). Оператор command (create edge) не является предпочтительным, так как нам нужно импортировать огромные (2 миллиона) отношений. мы используем orientdb 3.0.2
Пожалуйста, помогите с простым json импортировать это.