我使用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,但新实例因商店格式版本不匹配而发生崩溃。
答案 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
然后执行: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文件并将其导入新服务器。