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

Neo4j Import Job from CSV with ancestory as the relationship

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

最初我制作了一个脚本来将所有关系和节点创建为一个 cql 文件,它适用于较小数量的数据集,但是当我的数据集增长时我的系统崩溃了。

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

我知道我可以使用批量导入器批量插入数据,但我的整个数据集只有一个 table 具有我用来创建关系的祖先。

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

对于大型数据集,您需要将 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)