我们是不是可以检查 bigquery 中的表是不是处于锁定状态或正在执行 DML 操作
Posted
技术标签:
【中文标题】我们是不是可以检查 bigquery 中的表是不是处于锁定状态或正在执行 DML 操作【英文标题】:Can we check if table in bigquery is in locked or DML operation is being performed我们是否可以检查 bigquery 中的表是否处于锁定状态或正在执行 DML 操作 【发布时间】:2019-05-21 17:02:46 【问题描述】:有一个 BQ 表,其中安排了多个数据加载/更新/删除作业。由于这是自动作业,因此其中许多由于并发更新问题而失败。 我需要知道我们是否在 BigQuery 中有一项规定来检查表是否已被 DML 操作锁定,我们是否可以对查询进行序列化以便没有作业失败
【问题讨论】:
您能否解释一下是谁在生成错误消息并提供 excat 错误本身。还添加更多详细信息如何触发自动 使用气流自动更新、删除和插入查询。它抛出以下错误:- 由于并发更新,无法序列化对表 my_table 的访问。 【参考方案1】:您可以使用客户端代码生成的作业 ID 来跟踪作业状态,并仅在该作业完成后开始下一个查询。 This 和 this 描述了该过程。
或者,您可以尝试exponential backoff 重试查询一定次数,以防止由于锁定表而导致查询自动失败。
【讨论】:
以上是关于我们是不是可以检查 bigquery 中的表是不是处于锁定状态或正在执行 DML 操作的主要内容,如果未能解决你的问题,请参考以下文章