事务操作


BatchResult atomicBatch(BatchRequest request)

功能

提供跨表多行写的原子操作,目前只支持put,remove操作。

同一个batch中多个操作修改同一行数据可能导致未定义行为(数据不一致),

应当避免,另外如果一个batch包含同一行的读和写操作,其执行顺序是不确定的,不推荐使用

会比普通的batch操作耗费更多的quota

另外,要注意以下几点:

1.只支持put/delete操作

2.不支持具有局部二级索引的表

3.无论表是否开启stream, atomicBatch操作不会写入stream中

4.需要开启表级别的属性enableTransaction(此属性只能在创建新表时指定,无法修改),可在控制台勾选或sdk中指定

5.具有全局二级索引的表是开启enableTransaction属性的

方法参数

request : BatchRequest : required

BatchRequest 包括一个可以为PutRequest, RemoveRequest的列表

1.items : List< BatchRequestItem > : required

BatchRequestItem包括BatchOp和Request

枚举类型BatchOp(PUT, REMOVE)指定该request的操作类型,

相应的,使用putRequest, removeRequest构造Request参数

方法返回值

batchResult : BatchResult

BatchResult 包括一个带有BatchResultItem的列表,表示batch的每个请求的执行结果

items : List< BatchResultItem >

返回每个子操作的结果

异常错误码

INTERNAL_ERROR(1) : 服务器异常

ACCESS_DENIED(4) : 用户对该表没有读权限

VALIDATION_FAILED(5): batchRequest中的request参数设置错误

THROUGHPUT_EXCEED(8): 当前读写速度已超过该表的读写配额

RESOURCE_NOT_FOUND(9) : 所指定的表不存在

限制

atomicBatch请求不支持带条件

results matching ""

    No results matching ""