将CSV数据加载到预定义关系的Neo4j

时间:2018-11-21 16:11:01

标签: csv neo4j

我有一个数据集,每个记录都是从一个位置到另一位置的转移。

TransferID,ObjectID,DestinationObjectID
1,A,B
2,B,C
3,D,C
4,C,E
5,F,G

我想创建一个图形,然后将返回所有唯一的传输树。 因此,对象A,B,C,D,E将在一棵树中,而对象F,G将在另一棵树中。请注意,DestinationObjectID 可以是一个ObjectID,但并非总是如此。

我有超过60万次穿越和90万个物体。我已经在一个小样本上尝试了以下方法:

USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM
'file:///file.csv' AS line
MERGE (object:Object {name: line.ObjectID})
MERGE (destination:Object {name: line.DestinationObjectID})
CREATE (object)-[transfer:Transfer {transfer_id: line.TransferID}]->(destination)

这似乎起作用,但是在整个数据集上非常慢。我尚未应用任何约束或索引。我应该注意,唯一的唯一字段是TransferID。

在加载之前我应该​​重新格式化数据吗?尝试一些约束或索引?首先加载唯一对象,然后构造它们之间的关系?

0 个答案:

没有答案