2024-05-15 05:02:50 发布
网友
我发现当通过py2neo for Python使用REST API时,Neo4j添加节点和关系/弧/边的速度很慢。我知道这是因为每个REST API调用都作为一个独立的事务执行。
具体来说,在本地主机上添加几百对具有它们之间关系的节点需要几秒钟的时间。
在使用Python的同时显著提高性能的最佳方法是什么?
使用bulbflow和Gremlin是否是构建批量插入事务的一种方法?
谢谢!
Neo4j的写性能很慢,除非您正在执行批插入。
Neo4j批导入程序(https://github.com/jexp/batch-import)是将数据加载到Neo4j中最快的方法,它是一个Java实用程序,但是您不需要知道任何Java,因为您只是在运行可执行文件。它处理类型化数据和索引,并从CSV文件导入。
要将其与灯泡(http://bulbflow.com/)模型一起使用,请使用modelget_bundle()方法获取数据、索引名和索引键(准备插入),然后将数据输出到CSV文件。或者如果不想对数据建模,只需将数据从Python输出到CSV文件。
get_bundle()
对你有用吗?
有几种方法可以使用py2neo进行批量创建,每种方法只对服务器进行一次调用。
create
WriteBatch
如果你有一些代码,我很高兴看到它,并提出性能调整的建议。也有很多测试可以让你从中得到灵感。
干杯, 奈吉
这个问题在网上有很多老的答案,我花了很长时间才意识到neo4j有一个重要的工具,它非常快,是我能找到的最好的工具。
如果要导入学生节点,下面是一个简单的示例:
bin/neo4j-import --into [path-to-your-neo4j-directory]/data/graph.db --nodes students
students文件包含如下所示的数据,例如:
studentID:Id(Student),name,year:int,:LABEL1111,Amy,2000,Student2222,Jane,2012,Student3333,John,2013,Student
studentID:Id(Student),name,year:int,:LABEL
1111,Amy,2000,Student
2222,Jane,2012,Student
3333,John,2013,Student
说明:
这是它的文档:http://neo4j.com/docs/stable/import-tool-usage.html
注意:我知道这个问题特别提到了python,但是另一个有用的答案提到了非python解决方案。
Neo4j的写性能很慢,除非您正在执行批插入。
Neo4j批导入程序(https://github.com/jexp/batch-import)是将数据加载到Neo4j中最快的方法,它是一个Java实用程序,但是您不需要知道任何Java,因为您只是在运行可执行文件。它处理类型化数据和索引,并从CSV文件导入。
要将其与灯泡(http://bulbflow.com/)模型一起使用,请使用model
get_bundle()
方法获取数据、索引名和索引键(准备插入),然后将数据输出到CSV文件。或者如果不想对数据建模,只需将数据从Python输出到CSV文件。对你有用吗?
有几种方法可以使用py2neo进行批量创建,每种方法只对服务器进行一次调用。
create
方法在单个批处理中构建多个节点和关系。WriteBatch
类(本周刚刚发布)手动创建一批节点和关系(这实际上只是1的手动版本)。如果你有一些代码,我很高兴看到它,并提出性能调整的建议。也有很多测试可以让你从中得到灵感。
干杯, 奈吉
这个问题在网上有很多老的答案,我花了很长时间才意识到neo4j有一个重要的工具,它非常快,是我能找到的最好的工具。
如果要导入学生节点,下面是一个简单的示例:
students文件包含如下所示的数据,例如:
说明:
这是它的文档:http://neo4j.com/docs/stable/import-tool-usage.html
注意:我知道这个问题特别提到了python,但是另一个有用的答案提到了非python解决方案。
相关问题 更多 >
编程相关推荐