开发者社区 > 云存储 > 正文

表格存储中,batchGetRequest 不支持局部事务吗?

表格存储中,batchGetRequest 不支持局部事务吗?如果我要在批量更新前读出来,并且使用事务,是不是只能一个个先getRow了,还有其他好点的办法么?

展开
收起
小易01 2023-11-21 17:23:19 30 0
3 条回答
写回答
取消 提交回答
  • 阿里云表格存储的BatchGetRequest确实不支持局部事务。如果需要在批量更新前读取数据并希望使用事务来保证一致性,目前可行的方法是通过getRow接口一个个获取数据。

    然而,这种方式可能效率较低,因为GetRow操作是按行读取数据的。若数据量较大,则可能会耗费较多的时间和资源。此外,请注意,尽管表格存储支持局部事务,但该功能当前仍处于邀测阶段,默认是关闭的。局部事务通过悲观锁实现并发控制,可以确保对分区键值内的数据进行的操作要么全部成功要么全部失败。

    因此,如果您的应用对数据的一致性要求较高,并且可以接受稍后开启局部事务功能,那么可以考虑在数据读取和更新操作中使用局部事务来提高操作的原子性和一致性。

    2023-11-29 14:38:22
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据现有的信息,“batchGetRow”不支持局部事务,因此无法一次性读取多个记录并确保一致性。建议您考虑使用单个事务来获取多个记录,并确保在一次操作中获取所有所需记录,以避免数据不一致的情况。
    以下是操作步骤:

    1. 创建一个局部事务,并获取事务 ID。
    2. 获取需要读取的表名和主键范围。
    3. 依次执行 GetRow 方法,并将每条记录保存在单独的局部事务中。
    2023-11-21 22:57:07
    赞同 展开评论 打赏
  • 意中人就是我呀!

    "是的,目前没有其他办法了。
    e83c5d3a1e54bb468ebd70f59893f377.png
    https://help.aliyun.com/zh/tablestore/developer-reference/configure-local-transaction-1?spm=a2c4g.11186623.0.i171#concept-2356866
    此答案整理至钉群“表格存储技术交流群-2”"

    2023-11-21 19:04:53
    赞同 展开评论 打赏
问答分类:
问答地址:

阿里云存储基于飞天盘古2.0分布式存储系统,产品多种多样,充分满足用户数据存储和迁移上云需求。

相关电子书

更多
TableStore在社交类场景下的应用 立即下载
表格存储实时数据流Steam的技术揭秘和应用场景 立即下载
表格存储(TableStore) 立即下载