我使用自定义分区和集群键创建了以下架构:
schema.propertyKey('_partition').Text().create()
schema.propertyKey('topic_id').Uuid().create()
schema.vertexLabel('custom_topic')
.partitionKey('_partition').clusteringKey('topic_id').create()
我现在可以通过以下方式使用 gremlin 创建顶点:
graph.addVertex(label, 'custom_topic', '_partition', 'my_partition', 'topic_id', '60bcae02-f6e5-11e5-9ce9-5e5517507c66')
但是,我们的应用程序是使用 aiogremlin 用 python 编写的,而 gremlin-python 不提供这个图形接口。我们可以使用遍历来添加顶点:
g.addV(label, 'custom_topic', '_partition', 'x', 'topic_id', '60bcae02-f6e5-11e5-9ce9-5e5517507c66')
以上在 DSE Studio 中工作。但是,使用 gremlin-python 它不起作用,返回以下错误:
aiogremlin.exception.GremlinServerError: 500: 599: Could not locate method: GraphTraversalSource.addV([label, custom_topic, _partition, x, topic_id, 60bcae02-f6e5-11e5-9ce9-5e5517507c66])
DSE 报告一个DeserialisationError
. 我尝试通过properties
几种不同的方式传递密钥:
g.addV('custom_topic').properties('_partition', 'x', 'topic_id', '60bcae02-f6e5-11e5-9ce9-5e5517507c66')
GremlinServerError: 500: 599: Vertices with custom IDs must have their IDs specified on creation.
g.addV('custom_topic').property(T.id, ['_partition', 'x', 'topic_id', '60bcae02-f6e5-11e5-9ce9-5e5517507c66'])
GremlinServerError: 500: 500: Vertex does not support user supplied identifiers
我应该如何传递这些 ID?