Neo4j从CSV导入作业,以祖先为关系

时间:2016-07-25 22:44:51

标签: csv import neo4j neo4j-batch-inserter large-data

我有一些数据要插入到neo4j中。

最初,我创建了一个脚本来创建所有关系和节点作为cql文件,这对于少量数据集很有效,但是当我的数据集增长时,我的系统崩溃了。

请记住,我使用neo4j-shell输入所有数据。

我知道我可以使用批量导入程序批量插入数据,但我的整个数据集只有一个带有祖先的表,我用它来创建关系。

例如1 => 1.2,1.2.1,1.2.2,1.3等等..我将数据转换为.csv并导入它并且它工作得非常好而且快速我能够获得所有节点但是我如何才能获得在neo4j中创建的关系只有一个包含ID,名称和祖先的表?

1 个答案:

答案 0 :(得分:1)

对于大型数据集,您需要将USING PERIODIC COMMITLOAD CSV合并:

CREATE CONSTRAINT ON (n:Data) ASSERT n.id IS UNIQUE

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///data.csv" AS line
CREATE (n:Data {id: line.id, name: line.name})

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///data.csv" AS line
MATCH (n:Data {id: line.id}), (a:Data {id: line.ancestry})
MERGE (n)-[:HAS_ANCESTOR]->(a)