嘿,而不是使用aws web我正在使用其本地可用的数据库并在gremlin控制台中创建一个图形
我的电脑正在使用Gremlin-version=3.0.1.incubating
和Titan-version=1.0.0
我的问题:如何在我的本地DynamoDB中保存图形,以便我可以随时检索它(在重新启动电脑后)。
我尝试过多次,并使用save()
或commit()
图表给予了大量时间
但为了我总是有错误
g.commit()
No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.commit() is applicable for argument types: () values: []
可能的解决方案:wait(),computer(),collect(),wait(long),computer(java.lang.Class),collect(groovy.lang.Closure)
我正在使用tinkerpop 3
,请帮忙。
谢谢。
答案 0 :(得分:3)
相关文档链接:
正如Filipe所提到的,g.commit()
会引发异常,因为commit()
上的g
方法不是GraphTraversalSource
。我建议您使用graph.tx().commit()
,其中graph.tx()
从Transaction
获取Graph
。在评论中,我们发现您在commit()
上尝试TinkerGraph
一项不支持交易的交易。
您需要实例化 TitanGraph
,而不是TinkerGraph
。这通常使用properties file完成,dynamodb-titan-storage-backend
存储库中有一个DynamoDB Local example properties file。请务必更新storage.dynamodb.client.endpoint
以符合您的配置。如果您使用的是DynamoDB-Titan链接中的Titan Server说明,则端口为4567
。如果您使用上面DynamoDB本地链接中的说明,则默认端口为8000
。
gremlin> graph = TitanFactory.open('conf/gremlin-server/dynamodb-local.properties')
==>standardtitangraph[com.amazon.titan.diskstorage.dynamodb.DynamoDBStoreManager:[127.0.0.1]]
gremlin> v0 = graph.addVertex('name', 'jason'); v1 = graph.addVertex('name', 'mustaffa'); v0.addEdge('helps', v1)
==>e[175-39k-1lh-374][4232-helps->4144]
gremlin> graph.tx().commit()
==>null
另请注意,DynamoDB-Titan方向最终会启动内存中的DynamoDB Local实例。可以通过注释掉pom.xml
的-inMemory
参数来更改此行为。
答案 1 :(得分:0)
您正在尝试提交您的遍历g
。您应该尝试像这样提交图表:graph.commit()
。
g
是遍历的遍历:g = graph.traversal()
并且无法提交。