Neo4j 导出和导入数据
Neo4j export & import data
有没有什么好的方法可以使用 Neo4j Java API 将一些数据从一个数据库迁移到另一个数据库?我的用例是将几千个节点加载到临时数据库中,进行一系列转换,然后将结果导出到主数据库并删除临时数据库。
我不想破坏目标数据库中的数据,这是一个附加过程。我在互联网上看到很多人(例如 here)说 "just copy the data directory to the new location",但这当然会破坏目的地。
更新 - 我试验过 neo4j-shell -path tmpDir -c "DUMP MATCH n RETURN n;" | neo4j-shell -path dbDir -file -
,但它真的慢得要命。生成输出的速度似乎足够快,但即使在全新的空数据库上,将其重新输入也很困难。
有多种选择:
您只需在 java 副本中打开两个 neo4j 数据库,然后使用 Java API 将节点和关系从一个转移到另一个。
在初始播种的低级别上,您可以使用 batch-inserter-apis 执行相同的操作,就像我在这里所做的那样:https://github.com/jexp/store-utils/tree/21
您可以将密码结果导出到 CSV(例如从浏览器)并再次导入它,例如使用 LOAD CSV
您可以使用 neo4j-shell-tools 来完成某些进出口任务,例如导出到 GraphML 或 CSV 并再次导入它
有没有什么好的方法可以使用 Neo4j Java API 将一些数据从一个数据库迁移到另一个数据库?我的用例是将几千个节点加载到临时数据库中,进行一系列转换,然后将结果导出到主数据库并删除临时数据库。
我不想破坏目标数据库中的数据,这是一个附加过程。我在互联网上看到很多人(例如 here)说 "just copy the data directory to the new location",但这当然会破坏目的地。
更新 - 我试验过 neo4j-shell -path tmpDir -c "DUMP MATCH n RETURN n;" | neo4j-shell -path dbDir -file -
,但它真的慢得要命。生成输出的速度似乎足够快,但即使在全新的空数据库上,将其重新输入也很困难。
有多种选择:
您只需在 java 副本中打开两个 neo4j 数据库,然后使用 Java API 将节点和关系从一个转移到另一个。
在初始播种的低级别上,您可以使用 batch-inserter-apis 执行相同的操作,就像我在这里所做的那样:https://github.com/jexp/store-utils/tree/21
您可以将密码结果导出到 CSV(例如从浏览器)并再次导入它,例如使用 LOAD CSV
您可以使用 neo4j-shell-tools 来完成某些进出口任务,例如导出到 GraphML 或 CSV 并再次导入它