如何使用tinkerpop gremlin和neptune将远程图形导出到json?

如何使用tinkerpop gremlin和neptune将远程图形导出到json?,gremlin,tinkerpop3,amazon-neptune,Gremlin,Tinkerpop3,Amazon Neptune,我正在尝试将整个远程图形导出到json中。当我使用下面的代码时,结果是一个空文件。我使用的是Gremlin driver 3.3.2,因为它与下面的图形数据库AWS Neptune中的版本相同 var traversal = EmptyGraph.instance().traversal().withRemote(DriverRemoteConnection.using(getCluster())) traversal.getGraph().io(graphson()).writeGraph("

我正在尝试将整个远程图形导出到json中。当我使用下面的代码时,结果是一个空文件。我使用的是Gremlin driver 3.3.2,因为它与下面的图形数据库AWS Neptune中的版本相同

var traversal = EmptyGraph.instance().traversal().withRemote(DriverRemoteConnection.using(getCluster()))
traversal.getGraph().io(graphson()).writeGraph("my-graph.json");

如何用数据填充图形以便导出?

Neptune不支持Gremlin io()步骤。是Neptune的文档,它讨论了Gremlin的Amazon Neptune实现和TinkerPop实现之间的另一个区别

我还将此发布到了Gremlin用户列表中

下面是一些代码,它将为您在Neptune上实现这一点,并且应该可以与我认为的大多数Gremlin服务器实现一起工作

如果您选择导出为CSV,则导出结果可用于通过Neptune的批量加载程序加载

希望这是有用的

如果这超出了你的需要,希望它至少能给你一些帮助


对于托管图(包括Neptune),发现它们不公开Graph对象或不允许访问io()类的情况并不少见。

从Ankit和Kelvin那里获得了宝贵的反馈,我集中精力使用本地gremlin服务器来处理数据争用

一旦我在本地运行的服务器中获得了数据,通过从内存中的实体模型生成gremlin脚本,我通过gremlin控制台访问它并运行以下操作:

~/apache-tinkerpop-gremlin-console-3.3.7/bin/gremlin.sh
gremlin> :remote connect tinkerpop.server conf/remote.yaml
gremlin> :> graph.io(graphson()).writeGraph("my-graph.json")
==>null
这将
my graph.json
文件放入docker容器上的
/opt/gremlin server/
中。 我使用
docker cp$(docker container ls-q):/opt/gremlin server/my-graph.json提取它。


然后,我可以使用这些数据填充gremlin server testcontainer,以便对图形数据库运行集成测试。

neptune导出不支持直接导出到S3。您必须导出到本地文件系统,然后分别将文件复制到S3。

因此,这种方法不起作用,有没有办法将图形导出为json,然后将其加载到nepture实例中?我已经在运行gremlin server的docker镜像中旋转,填充了数据,但仍然无法从图形中获取数据。我想这是一个如何获取图形引用的问题。我使用了前面提到的aws github项目并执行了以下命令,但没有显示任何结果:\bin>neptune-export.sh export pg-e/:-d s3:///请参阅Ian Robinson的新答案。导出目标必须是本地文件系统。