加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

neo4j – 以Cypher格式导出整个数据库(ASCII文本)?

发布时间:2020-12-12 06:52:03 所属栏目:MsSql教程 来源:网络整理
导读:有没有办法在Cypher中导出整个Neo4J数据库,从而产生Cypher命令的ASCII文件,可以在空的Neo4J数据库上使用它来重新创建原始数据库?由于Neo4J正在经历如此快速的发展,我担心使用内置的备份功能(企业版). 例如,使用Oracle,您可以在SQL * PLUS DML / DDL命令中导
有没有办法在Cypher中导出整个Neo4J数据库,从而产生Cypher命令的ASCII文件,可以在空的Neo4J数据库上使用它来重新创建原始数据库?由于Neo4J正在经历如此快速的发展,我担心使用内置的备份功能(企业版).

例如,使用Oracle,您可以在SQL * PLUS DML / DDL命令中导出整个数据库,这可能很有用.

解决方法

从Neo4j 2.0开始,neo4j-shell中有一个 dump command可以做到这一点.您可以转储特定查询或整个数据库的结果.通过在启动neo4j-shell时将dump命令作为参数传递,您可以将输出重定向到文件以创建“cypher create script”或另一个neo4j-shell会话重新创建另一个数据库中的全部或部分图形.

展平并转储查询结果

neo4j-sh$dump MATCH (n:StackOverflow:Question {questionId:18830686})<-[:ANSWERS]-(answer)<-[:WRITES]-(user) RETURN *;

将整个数据库转储到文件中

usr@term: bin/neo4j-sh -c dump > ./backup/$(date +"%y%m%d_%H%M%S").cypher

将转储管道传输到另一个shell会话&数据库

usr@term: db1/bin/neo4j-sh -path db1/data/graph.db/ -c dump | db2/bin/neo4j-shell -path db2/data/graph.db/

买者自负

使用科学记数法导出双打和浮点数存在一些问题,neo4j-shell无法在导入时再次解释(SO,github),并且在转义“引用字符串”时存在一些问题(github).我认为这些都已解决,因此如果您遇到问题,可能需要查看最近的版本.

最后还有一个我认为尚未解决的问题.最近架构包含在转储中,因此也会导出create index和create constraint语句.但是,所有导出的语句都在输出中的同一个事务中构建,neo4j不允许您??在同一事务中创建模式和数据.因此,如果您将转储直接传输到另一个shell会话以重新创建图形,则可能会遇到这种情况

> ;
ConstraintViolationException: Cannot perform data updates in a transaction that has performed schema updates.
neo4j-sh (?)$commit
Failed to commit,transaction rolled back

通过重定向到文件并手动添加提交并在最后一个模式语句之后开始,可以很容易地解决这个问题.一定要把它们放在一个新的线上,看起来应该是这样的

...
create index on :`Person`(`name`)
commit
begin
create (_0:`Person` {`name`:"Paul"})
...

或者你可以动态编辑neo4j-shell的输出并将其添加到那里,例如,如果你以编程方式转储而不想手动编辑.在osx上,我已经像这样使用了sed

db1/bin/neo4j-shell -path db1/data/graph.db/ -c dump | sed -E 's/create (index|constraint) on .*/&'$'ncommit'''$'nbegin/' | db2/bin/neo4j-shell -path db2/data/graph.db/

这会在每个模式语句之后添加一个提交,这超出了必要的范围(可以将所有模式语句一起提交),但是嘿,它可以工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读