3

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

我发现java-rest-binding似乎提供了我所需要的。然而:

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

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

(我想避免自己处理 HTTP 请求等,正如文档中所建议的那样

我很高兴发布代码或更多详细信息。就告诉我嘛!

非常感谢你的帮助!

南达卢

4

2 回答 2

2

我也做了一些插入测试,我得到的最大值(没有进行很多精细优化)大约是 500 个节点,10 个属性 + 500 个关系/秒

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

于 2013-04-17T13:59:21.490 回答
1

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

无论哪种方式,您都可以编写 Java 代码以在包含实际数据目录的机器上运行,并使用普通Neo4jAPI 对其进行操作。这通常非常快,并且允许您更好地控制事务管理等事务。请注意,这将要求您的Neo4j数据库关闭,因为 2 个独立的 Java 进程不能同时操作数据库。

于 2013-04-16T22:38:22.590 回答