BigQuery:一个查询作业可以在一个表上运行,而另一个查询作业可以操纵该表吗?

时间:2018-11-13 06:43:43

标签: google-bigquery

我通过覆盖整个表来定期更新表。但是,我也经常在该表上运行SELECT查询。我的问题是,如果我当前正在运行覆盖表的查询,并且在更新/覆盖表的同时尝试在表上运行SELECT查询,该怎么办?相反,我正在从该表中进行选择,但是覆盖该表的常规作业会同时开始。是否有任何时间点无法读取表/只能部分读取表或无法覆盖表?我需要100%确保SELECT查询将始终正常运行。

1 个答案:

答案 0 :(得分:1)

您始终可以在表上运行SELECT语句,并且该语句永远不会反映部分修改的状态。从表中SELECT进行访问也不会阻止运行对其进行修改的查询。如果使用DML修改表,请note the limitations from the documentation

  

仅允许以下DML语句组合在表上同时运行:

     
      
  • 更新和插入
  •   
  • 删除并插入
  •   
  • 插入和插入
  •   
     

否则,DML语句之一将被中止。例如,如果针对该表同时执行两个UPDATE语句,则其中只有一个会成功。