Python 批量插入neo4j-最佳选项?

Python 批量插入neo4j-最佳选项?,python,neo4j,batch-processing,batch-insert,Python,Neo4j,Batch Processing,Batch Insert,我一直在尝试将一个相对较大的数据集导入neo4j…大约5000万个具有关系的节点 我首先通过py2neo->尝试了Cypher,它确实可以工作,但是如果需要使用createunique或MERGE,它会变得非常慢 我现在正在研究其他批量导入方法,我想知道是否有建议说明这些方法中哪种最适合一般工作流和速度: Neo4j文档提到了一个似乎是Java的版本,它是Neo4j发行版的一部分 在github还有Michael Hunger的文章,我不确定这与发行版中包含的文章有多相似或不同 还有一个,我目

我一直在尝试将一个相对较大的数据集导入neo4j…大约5000万个具有关系的节点

我首先通过py2neo->尝试了Cypher,它确实可以工作,但是如果需要使用createunique或MERGE,它会变得非常慢

我现在正在研究其他批量导入方法,我想知道是否有建议说明这些方法中哪种最适合一般工作流和速度:

  • Neo4j文档提到了一个似乎是Java的版本,它是Neo4j发行版的一部分
  • 在github还有Michael Hunger的文章,我不确定这与发行版中包含的文章有多相似或不同
  • 还有一个,我目前正在测试
  • 另外还有Neo v2的密码的一部分功能,尽管我不确定这是否主要是一个方便因素,以及它的性能是否类似于通过密码事务批量执行密码查询,比如40000次

如果您对这些选项之间的功能、工作流程和速度差异有任何意见,我将不胜感激。

如果您可以使用最新版本的Neo4j,建议您使用Cypher中的新LOAD CSV语句:

无论其价值如何,我目前使用的是Nigel Small,它似乎运行良好且快速。在我看来,geoff格式的文本文件比所有属性都作为列标题的CSV文件更容易构建。我正在考虑使用load2neo而不是CSV批导入器。它们在性能上相似吗?您知道LOAD CSV语句在性能上是否与实用程序有很大的不同吗?我猜批导入程序的速度要快得多,因为它是只写的,并且比使用整个cypher语言灵活得多。我个人用批导入器在大约40分钟内加载了大约1亿个节点和关系。没有尝试过加载CSV的相同比例。我认为,这实际上取决于数据量、操作所需的灵活性(您可以随时进行预处理),以及是否需要在应用程序生命周期内重复该操作,因为这应该是一次性批量导入。