图引擎服务 GES-执行事务Cypher:请求参数
请求参数
参数 |
是否必选 |
类型 |
说明 |
---|---|---|---|
statements |
是 |
List |
statements为一个语句组,包含一到多条语句。其中每个元素的格式如表 statements参数说明。 |
参数 |
是否必选 |
类型 |
说明 |
---|---|---|---|
statement |
是 |
String |
Cypher语句。 |
parameters |
是 |
Object |
Cypher语句参数,在进行参数化查询时使用,默认为空。 如需使用,请参考参数化查询。 |
resultDataContents |
否 |
String或List |
返回的结果样式,样式可设置一个或多个。可选参数有“row”,”graph”, “raw”(2.2.27版本新增)。 |
includeStats |
否 |
Boolean |
控制返回结果是否携带增删改统计信息的开关,若不设置此字段,默认为不携带。 |
runtime |
否 |
String |
执行器类型,可选值为“map”、“slotted” 、“block”,默认为“map”。slotted执行器自2.3.15版本开始支持,block执行器自2.4.1版本开始支持。 |
executionMode(2.2.23) |
否 |
String |
执行模式。同步执行模式填写“sync”,异步执行填写“async”,不写默认同步执行。异步模式下,获取查询结果参见查询Job状态。 |
limit(2.2.23) |
否 |
Int |
该字段仅在异步模式下生效,表示对异步结果的最大结果数限制,默认值为100000。 |
- 在语句前可以添加explain和profile前缀,用于显示查询计划: explain只显示查询计划,不执行语句;profile显示查询计划,并执行语句。
- runtime字段说明:与map执行器相比,slotted执行器在语句的计划生成阶段完成了更多的语句数据流分析,在大部分情况下执行速度更快,占用内存更少。
- 在异步模式(executionMode参数值为async)下,支持cypher查询结果以csv格式导出到文件(GES版本2.3.4及以上支持该功能),详情请参考导出job返回结果到文件(2.2.1)。目前支持下列对象的返回:
- 点边单值属性、点边id、分组计数结果等值类型。
- 对于对象类型,目前的版本暂不支持导出,csv中视作空值处理。
- Cypher事务(仅持久化版规格有效):
- 持久化版规格下Cypher支持事务,用户可以通过设置transactional为true来开启Cypher的事务功能,以保证单条Cypher语句的原子性。对于多条Cypher语句的事务暂不支持。事务的隔离级别为串行化(serializability)。
- 由于底层存储引擎存在5s的事务时间窗口限制,因此Cypher的事务不可超过5s。对于复杂的查询,比如说多跳,运行时间可能会超过5s,从而触发超时导致提交失败。
使用Cypher的dbms.killQuery过程可以终止Cypher事务(详见Cypher API-函数和过程), 并回滚这条Cypher请求造成的所有改动。