-1

我正在使用 OrientDB ETL 模块将数据从 CSV 文件导入图形数据库。CSV 文件的格式如下:

urlid_1,urlid_2,score
a,b,10
a,c,20
a,d,30
b,a,40
b,c,50
b,d,60
c,a,70
c,b,80
c,d,90
d,a,100
d,b,110
d,c,120

我希望一旦我将它导入到 orientdb 中,每个a,和都保存为类中的一个顶点b,并且从到开始创建一个边,边权重作为csv 文件中的对应项。cdurlid_1urlid_2score

谁能帮我处理 ETL 的配置(JSON)文件?

我已经尝试过这里建议的解决方案:Easest way to import a simple csv file to a graph with OrientDB ETL但没有得到预期的结果。

4

1 回答 1

0

尝试这个:

要导入数据:

数据_2.csv

id
a
b
c
d

import_2.json

{
  "source" : {
    "file": { "path": "data_2.csv" }
  },
  "extractor" : {
    "csv": {}
  },
   "transformers": [
        { "vertex": { "class": "Test" } }
    ],
  "loader" : {
    "orientdb": {
      "dbURL": "plocal:your_path",
      "dbUser": "your_user",
      "dbPassword": "your_pwd",
      "serverUser": "your_user",
      "serverPassword": "your_pwd",
      "dbType": "graph",
      "classes": [
            {"name": "Test", "extends":"V"},
            ]
    }
  }
}

要创建边:

数据.csv

urlid_1,urlid_2,score
a,b,10
a,c,20
a,d,30
b,a,40
b,c,50
b,d,60
c,a,70
c,b,80
c,d,90
d,a,100
d,b,110
d,c,120

导入.json

{
  "source" : {
    "file": { "path": "data.csv" }
  },
  "extractor" : {
    "csv": {}
  },
   "transformers": [
        { "command":
            { "command": "CREATE EDGE link FROM (SELECT FROM Test where id= "${input.urlid_1}") TO (SELECT FROM Test where id = "${input.urlid_2}") set score=${input.score}"}  
        }
    ],
  "loader" : {
    "orientdb": {
      "dbURL": "plocal:your_path",
      "dbUser": "your_user",
      "dbPassword": "your_pwd",
      "serverUser": "your_user",
      "serverPassword": "your_pwd",
      "dbType": "graph",
      "classes": [
            {"name": "link", "extends":"E"}
            ]
    }
  }
}

希望能帮助到你

问候

于 2018-06-05T13:59:36.263 回答