azure - 导出 Gremlin 数据库
问题描述
我想知道是否有任何方法可以导出 Gremlin 数据库及其所有顶点/边缘。最好输出是 Gremlin 遍历列表,如果需要,可以完全(甚至部分)再次导入。
这是作为工具存在还是存在于 TinkerPop 控制台客户端中?
因为我使用的是 CosmosDB,所以我一直在尝试 Azure 的数据迁移工具,它对我不起作用。使用 graphson() 也对我不起作用,但我可能以错误的方式使用它。
gremlin> graph.io(graphson()).writeGraph("/tmp/output.json");
No such property: graph for class: groovysh_evaluate
解决方案
我不知道有什么工具可以做到这一点:
最好输出是 Gremlin 遍历列表,如果需要,可以完全(甚至部分)再次导入。
我知道的所有导出工具都会导出为一些外部格式文本或二进制格式。您必须自己创建这样的功能,方法是编写一些 Gremlin,以允许您在客户端生成遍历String
的方式返回数据。Bytecode
我认为您可以将其导出为边缘列表:
gremlin> g.V().has('person','name','marko').
......1> outE().
......2> project('edgeLabel','weight','inV','outV').
......3> by(label).
......4> by('weight').
......5> by(inV().valueMap(true)).
......6> by(outV().valueMap(true))
==>[edgeLabel:created,weight:0.4,inV:[id:3,label:software,name:[lop],lang:[java]],outV:[id:1,label:person,name:[marko],age:[29]]]
==>[edgeLabel:knows,weight:0.5,inV:[id:2,label:person,name:[vadas],age:[27]],outV:[id:1,label:person,name:[marko],age:[29]]]
==>[edgeLabel:knows,weight:1.0,inV:[id:4,label:person,name:[josh],age:[32]],outV:[id:1,label:person,name:[marko],age:[29]]]
或星图样式:
gremlin> g.V().has('person','name','marko').
......1> project('v','edges').
......2> by(valueMap(true)).
......3> by(bothE().
......4> project('e','inV','outV').
......5> by(valueMap(true)).
......6> by(valueMap(true)).
......7> by(valueMap(true)))
==>[v:[id:1,label:person,name:[marko],age:[29]],edges:[e:[id:9,label:created,weight:0.4],inV:[id:9,label:created,weight:0.4],outV:[id:9,label:created,weight:0.4]]]
上述查询仅提供基本结构。您可以提出更好的形式、更有效的表示等,但所提供的数据提供了在客户端构建遍历所需的所有数据。
推荐阅读
- python - 熊猫数据框逐列
- python - 如何将我的 python 字典的每个键值对存储在 json 文件的单独行中?
- r - 如何在 R 中的 Openair 包中对 Back 轨迹聚类分析中的每个聚类重新编号和着色,以使它们一致?
- javascript - Prisma 忽略一对多自关系中的 gql 外键错误
- css - UserChrome.css 如何将 [sizemode="normal"] 与 :-moz-window-inactive 合并?
- python - ValueError:时间数据“2021-11-05 10:13:46+11:00”与格式“%y-%m-%d %H:%M:%S%z”不匹配
- rust - 有没有一种简单的方法来计算 Rust 中的布尔值?
- flutter - 如果 UI 由于性能不佳而丢失帧,Flutter Ticker 会发生什么?
- r - Computing an R function with while loop
- python - 在 Robot Framework 中将 python 文件作为关键字运行时遇到问题