【发布时间】:2014-06-10 13:23:38
【问题描述】:
我一直在尝试将一个相对较大的数据集导入 neo4j...大约 5000 万个有关系的节点。
我首先通过 py2neo 尝试了 Cypher -> 确实有效,但如果您需要使用 CREATE UNIQUE 或 MERGE,它会变得非常慢。
我现在正在研究其他批量导入方法,我想知道是否有关于这些方法中哪种方法最适合一般工作流程和速度的建议:
- Neo4j 文档提到了一个 batch insertion facility,它似乎是 Java 并且是 Neo4j 发行版的一部分;
- 还有 Michael Hunger 在 github 上的 batch inserter,我不确定这与发行版中包含的相似或不同;
- 还有load2neo,我目前正在测试;
- 然后是作为 Neo v2 CYPHER 一部分的 load from CSV 功能,但我不确定它是否主要是一个便利因素,以及它的性能是否类似于仅执行 Cypher 查询,例如 40 000 批通过 Cypher 交易。
对于这些选项之间的功能、工作流程和速度差异,我将不胜感激。
【问题讨论】:
-
不管怎样,我目前正在使用 Nigel Small 的 load2neo,它似乎运行良好且快速。在我看来,geoff 格式的文本文件比所有属性都作为列标题等的 CSV 文件更容易构建。
-
我正在考虑使用 load2neo 而不是 CSV 批量导入器。它们的性能相似吗?
标签: python neo4j batch-processing batch-insert