表格存储中,batchGetRequest 不支持局部事务吗?如果我要在批量更新前读出来,并且使用事务,是不是只能一个个先getRow了,还有其他好点的办法么?
阿里云表格存储的BatchGetRequest确实不支持局部事务。如果需要在批量更新前读取数据并希望使用事务来保证一致性,目前可行的方法是通过getRow接口一个个获取数据。
然而,这种方式可能效率较低,因为GetRow操作是按行读取数据的。若数据量较大,则可能会耗费较多的时间和资源。此外,请注意,尽管表格存储支持局部事务,但该功能当前仍处于邀测阶段,默认是关闭的。局部事务通过悲观锁实现并发控制,可以确保对分区键值内的数据进行的操作要么全部成功要么全部失败。
因此,如果您的应用对数据的一致性要求较高,并且可以接受稍后开启局部事务功能,那么可以考虑在数据读取和更新操作中使用局部事务来提高操作的原子性和一致性。
根据现有的信息,“batchGetRow”不支持局部事务,因此无法一次性读取多个记录并确保一致性。建议您考虑使用单个事务来获取多个记录,并确保在一次操作中获取所有所需记录,以避免数据不一致的情况。
以下是操作步骤:
"是的,目前没有其他办法了。
https://help.aliyun.com/zh/tablestore/developer-reference/configure-local-transaction-1?spm=a2c4g.11186623.0.i171#concept-2356866
此答案整理至钉群“表格存储技术交流群-2”"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。