Neo4J:导入大型Cypher转储

时间:2016-10-26 20:12:19

标签: import neo4j

我使用Cypher格式的Neo4J 2.2.5数据库(使用neo4j-sh -c dump生成)有一个大型转储(数百万个节点和关系),我正试图导入到3.0.3实例中。 / p>

然而,导入过程(neo4j-sh < dump.cypher)在几分钟后急剧减速,降至每秒几个记录。

有没有办法加快这个过程?我尝试了upgrading the database as described in the manual,但新实例因商店格式版本不匹配而发生崩溃。

2 个答案:

答案 0 :(得分:2)

Neo4j 3.0附带了一个bin / neo4j-admin工具,用于此目的。

尝试bin/neo4j-admin import --mode database --from /path/to/db

请参阅:http://neo4j.com/docs/operations-manual/current/deployment/upgrade/#upgrade-instructions

cypher转储对大型数据库没有用,它只适用于较小的设置(几千个节点)进行演示等。

仅供参考:在Neo4j 3.0中,APOC的密码导出程序更适合大规模的密码转储。

更新

您还可以尝试先从2.2升级到2.3。例如,使用neo4j-shell

allow_store_upgrade=true添加到2.3

中的neo4j.properties`中

然后执行:bin/neo4j-shell -path /path/to/db -config conf/neo4j.properties -c quit

如果完成,您的数据库备份是在2.3版本上

然后你应该可以使用neo4j-admin -import ...

答案 1 :(得分:0)

我最近有同样的症状,我的CSV导入速度变慢了。 我的load-csv cypher脚本有很多rels。

所以我将我的负荷分成两部分。首先创建节点,然后创建关系和大多数连接的节点。 HIH。

回到你的问题 首先,尝试增加JVM的内存。在NEO / conf中,有一个包装文件。一开始是内存设置。

最后,从具有您数据的实例中,导出到多个CSV文件并将其导入新服务器。