我需要在gremlin-server中配置tinkergraph-empty.properties文件,以便使用“任意”逻辑生成id。
gremlin.tinkergraph.vertexIdManager=ANY
gremlin.tinkergraph.edgeIdManager=ANY
gremlin.tinkergraph.vertexPropertyIdManager=ANY我用一个空数据库测试了这个配置:当我创建一些顶点时,我注意到id是以字符串表示的数字,数字不是连续的,这是否意味着会发生id冲突?这背后的逻辑是什么?
我需要这种配置,因为我需要本地gremlin服务器与Amazon中的数据兼容,只有任何一个都与Neptune ids兼容。我需要能够加载海王星的数据库内容在本地主机gremlin-服务器,以做一些操作,并可能然后转移回海王星,没有问题。
我担心碰撞,因为这会破坏数据,当我的数据被销毁时也是我的项目。
发布于 2022-01-15 23:22:14
您可能看不到顺序is的原因是属性也有is,如果是TinkerGraph,则是从同一个池中获取的。您也可以在本地使用Gremlin控制台看到这一点。
gremlin> conf = new BaseConfiguration();[]
gremlin> conf.setProperty("gremlin.tinkergraph.vertexIdManager","ANY");[]
gremlin> conf.setProperty("gremlin.tinkergraph.edgeIdManager","ANY");[]
gremlin> conf.setProperty("gremlin.tinkergraph.vertexPropertyIdManager","ANY");[]
gremlin> g = TinkerGraph.open(conf).traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV('test')
==>v[0]
gremlin> g.addV('test')
==>v[1]
gremlin> g.addV('test').property('x',1)
==>v[2]
gremlin> g.addV('test')
==>v[4]
gremlin> g.V().has('x').properties('x').id()
==>3 更新2022/01/16,以便在评论中解决其他问题。
使用GraphML加载的文件(JSON或g.io )可以包含用户提供的ID。除非ID已经在使用,否则这些都会工作。不允许重复ID,如果遇到任何错误,将引发错误。在文件加载期间,只有属性才会自动获得ID。
https://stackoverflow.com/questions/70725996
复制相似问题