使用Python在Neo4j中执行批量添加/插入的最快方法?

wod*_*dow 13 python neo4j py2neo

我发现在通过py2neo for Python使用REST API时,Neo4j很慢地添加节点和关系/弧/边缘.我知道这是由于每个REST API调用作为单个自包含事务执行.

具体来说,在localhost上运行时,添加几百个节点之间的关系需要几秒钟.

在使用Python的同时显着提高性能的最佳方法是什么?

使用bulbflow和Gremlin是一种构建批量插入事务的方法吗?

谢谢!

Nig*_*all 9

有几种方法可以使用py2neo进行批量创建,每个方法只对服务器进行一次调用.

  1. 使用该create方法可在单个批处理中构建多个节点和关系.
  2. 使用cypher CREATE语句.
  3. 使用新WriteBatch类(本周刚刚发布)手动创建一批节点和关系(这实际上只是手动版本的1).

如果您有一些代码,我很高兴看到它并就性能调整提出建议.您也可以从中获得灵感.

干杯,尼日


esp*_*eed 6

除非您正在进行批量插入,否则Neo4j的写入性能很慢.

Neo4j批量导入程序(https://github.com/jexp/batch-import)是将数据加载到Neo4j的最快方法.它是一个Java实用程序,但您不需要知道任何Java,因为您只是运行可执行文件.它处理类型化的数据和索引,并从CSV文件导入.

要将其与Bulbs(http://bulbflow.com/)模型一起使用,请使用模型get_bundle()方法获取为插入准备的数据,索引名称和索引键,然后将数据输出到CSV文件.或者,如果您不想对数据建模,只需将数据从Python输出到CSV文件即可.

这对你有用吗?