首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigQuery中的事务隔离级别是什么?

BigQuery中的事务隔离级别是什么?
EN

Stack Overflow用户
提问于 2020-03-26 12:06:58
回答 2查看 2.6K关注 0票数 7

有人能帮助解释一下谷歌云BigQuery中的事务隔离级别是什么吗?这似乎不是任何关于这方面的文件。我们知道,在其他数据库中,例如sql server数据库中,存在事务隔离级别:读未提交、读提交、可重复读取、快照、可序列化。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-27 12:51:50

关于它的信息不多,但是在这个迁移指南中,我们可以找到BigQueryTeradata之间的一些比较,这可以给我们一些线索。

正如指南中所述,BigQuery使用乐观并发控制,它不使用锁操作,假设多个事务可以频繁地完成,而不相互干扰。当多个DML事务同时在同一个表中执行时,BigQuery使用使用锁操作的悲观并发控制。为了确保隔离BigQuery使用快照隔离方法。

BigQuery有助于确保快照隔离的乐观并发控制(首先提交wins),其中查询在查询开始前读取最后提交的数据。这种方法保证了在相同DML语句中的每行、每次变异和跨行的一致性,但避免了死锁。在对同一个表进行多个DML更新的情况下,BigQuery切换到悲观并发控制。加载作业可以完全独立运行并附加到表中。但是,BigQuery尚未提供显式事务边界或会话。

它还在指南中说

因为BigQuery中还没有显式的事务边界,所以在BigQuery中也没有显式回滚的概念。解决方法是餐桌装饰工或使用截至…的时间

考虑到我们可以假设BigQuery有其特定的optimistic concurrency controlpessimistic concurrency control实现,这使得我们很难获得更深层次的信息。

我希望它能帮上忙

票数 7
EN

Stack Overflow用户

发布于 2022-09-22 15:37:08

添加到最上面的答案,从2021年中期BigQuery支持跨多个表的多语句事务。。链接的文章特别提到了基于MVCC的快照隔离。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60866909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档