远程neo4j数据库:导入大量数据

时间:2013-04-16 22:13:10

标签: import neo4j

我需要导入大约一百万个节点,并将它们之间的关系重复两倍到远程neo4j数据库。 对我来说重要的是:表现

我发现java-rest-binding似乎提供了我需要的东西。但是:

  • 它太慢了(大约1000个节点/秒,即使远程数据库实际上在我的本地机器上)
  • 它有问题,即如果我尝试一次添加超过900个节点,它就会挂起提交批处理操作

我怎样才能达到我需要的速度? 而且,为什么java-rest-binding不工作/慢?

(我希望避免不得不处理HTTP请求和我自己,因为建议here in the docs

我很乐意发布代码或更多细节。告诉我!

非常感谢你的帮助!

Nandaloo

2 个答案:

答案 0 :(得分:2)

我也做了一些插入测试,我得到的最大值(没有经过很多优化)可能是500个节点,有10个属性+ 500个关系/ s

我不确定您是否可以使用REST界面超越您已经拥有的(1000个节点/秒)。您可以尝试使用可能比REST API更快的自定义扩展,前提是要加载的数据是本地的,如果您无法关闭数据库并使用BatchInserter(这是非常非常快的顺便说一句)。

答案 1 :(得分:1)

您的远程数据库是如何设置的?您是否在其他代码中托管了嵌入式Neo4j实例,例如Tomcat?或者它只是一个Neo4j独立数据库?

无论哪种方式,您都可以编写java代码以在包含实际数据目录的计算机上运行,​​并使用普通的Neo4j API进行操作。这通常非常快,并允许您更多地控制事务管理之类的事情。请注意,这将要求您的Neo4j数据库关闭,因为2个单独的Java进程无法同时操作数据库。