Neo4j导出和导入数据

Ken*_*ams 9 java import export neo4j

有没有一种方法可以使用Neo4j Java API将一些数据从一个数据库迁移到另一个数据库?我的用例是将几千个节点加载到一个临时数据库中,进行一系列转换,然后将结果导出到主数据库并删除临时数据库.

我不想破坏目标数据库中的数据,这是一个附加过程.我在网上看到很多人(例如这里)说"只是将数据目录复制到新位置",但当然这会破坏目的地.

更新 - 我试验过neo4j-shell -path tmpDir -c "DUMP MATCH n RETURN n;" | neo4j-shell -path dbDir -file -,但它真的非常慢.生成输出似乎足够快,但即使在一个新的空数据库中,它仍然是冰冷的.

Mic*_*ger 8

有很多选择:

  1. 您可以在Java副本中打开两个neo4j数据库,并使用Java API将节点和关系从一个转移到另一个.

  2. 在初始播种的低级别上你可以使用batch-inserter-apis做同样的事情,就像我在这里做的那样:https://github.com/jexp/store-utils/tree/21

  3. 您可以将密码结果导出为CSV(例如,从浏览器中)并使用例如LOAD CSV再次导入

  4. 您可以使用neo4j-shell-tools进行某些导入导出任务,例如导出到GraphML或CSV并再次导入

  • 在没有内置,简单,单一命令,零编程,零学习"导入/导出所有内容"功能的情况下分发DBMS应该被定为刑事犯罪. (31认同)