首页 > 解决方案 > 如何在 Gremlin 中处理事务(回滚和提交) - AWS Neptune

问题描述

如何在 Gremlin - AWS Neptune 中处理事务(回滚和提交)?

In a request, I have two details, <student and List[Subject]>

1. Create student vertex with properties
2. Create Edge b/w class & student
3. Create a list of subjects vertex in for loop & edge b/w subject and student.

文件说,Multiple statements separated by a semicolon (;) or a newline character (\n) are included in a single transaction.

for loop在单笔交易中如何处理GremlinPython

有什么建议/帮助吗?

标签: graphtransactionsgremlinamazon-neptunegremlinpython

解决方案


将 Gremlin 查询发送到服务器有 3 种主要方法。一种是纯文本。在这种情况下,您可以在查询之间使用分号,并将它们视为单个事务。第二种是使用支持以字节码形式发送查询的 Gremlin 客户端驱动程序。在这种情况下,发送的每个查询都是一个事务。三是使用 Gremlin Sessions。在这种情况下,您创建一个会话,然后发送一个或多个查询。整个会话被视为单个事务,并且仅在您关闭会话时提交。在这第三种情况下,您可以根据需要混合使用代码和查询。

综上所述,您真的不需要使用 for 循环,您可以一次性发送所有内容。这是一个简单的例子:

g.addV('root').property('data',9).as('root').
  addV('node').property('data',5).as('b').
  addV('node').property('data',2).as('c').
  addV('node').property('data',11).as('d').
  addV('node').property('data',15).as('e').
  addV('node').property('data',10).as('f').
  addV('node').property('data',1).as('g').
  addV('node').property('data',8).as('h').
  addV('node').property('data',22).as('i').
  addV('node').property('data',16).as('j').
  addE('left').from('root').to('b').
  addE('left').from('b').to('c').
  addE('right').from('root').to('d').
  addE('right').from('d').to('e').
  addE('right').from('e').to('i').
  addE('left').from('i').to('j').
  addE('left').from('d').to('f').
  addE('right').from('b').to('h').
  addE('left').from('c').to('g')

推荐阅读