4

AWS を使用する代わりに、ローカルで利用可能な DynamoDB データベースを使用し、Gremlin コンソールでグラフを作成しています。

私のPCは使用して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: []
Possible solutions: wait(), computer(), collect(), wait(long), computer(java.lang.Class), collect(groovy.lang.Closure)

を使用してTinkerpop 3います。

4

2 に答える 2

4

関連するドキュメントのリンク:

Filipe が述べたように、であるメソッドg.commit()がないため、例外がスローされます。からを取得するを使用することをお勧めします。コメントで、トランザクションをサポートしていない でトランザクションを行おうとしていることがわかりました。commit()gGraphTraversalSourcegraph.tx().commit()graph.tx()TransactionGraphcommit()TinkerGraph

TitanGraphではなくをインスタンス化する必要がありますTinkerGraph。これは通常、プロパティ ファイルで行われます。リポジトリには、DynamoDB Local のサンプル プロパティ ファイルがあります。構成に一致するようdynamodb-titan-storage-backendに を更新してください。storage.dynamodb.client.endpointDynamoDB-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 ローカル インスタンスが開始されることにも注意してください。-inMemoryこの動作は、引数 theをコメントアウトすることで変更できますpom.xml

于 2016-11-29T16:52:09.283 に答える