BigQuery何时刷新流式输出缓冲区

Pru*_*nna 6 google-bigquery

我知道这个问题是在不久前以另一种形式提出的。但是现在BQ允许在分区表上使用DML,因此了解何时刷新流缓冲区更重要,以便我们可以在表上执行DML进行维护。

现在,这非常重要,因为

  • 我有1500个分区表。
  • 每个表至少有200个分区。

现在,由于我们正在为GDPR执行某种哈希处理,因此我必须更新所有表。

如果我无法运行DML,则必须通过加入参考表来重新声明200 * 1500分区。

如果我可以运行DML,则只需要运行1500 udpate语句即可。

我已经停止了流传输,并且等待了90分钟以上,但由于该表具有流缓存,因此仍然出现无法运行DML的错误。如有您自己的经验,我们将不胜感激。

Pru*_*nna 1

显然,BigQuery 现在允许使用流缓冲区更新分区表的旧分区。但不在流缓冲区本身上。

例如 :

update 
  `dataset.table_name` 
set column = 'value' 
where _PARTITIONTIME = '2018-05-01' 
Run Code Online (Sandbox Code Playgroud)

做工精美。

update 
  `dataset.table_name` 
set column = 'value' 
where _PARTITIONTIME is null 
Run Code Online (Sandbox Code Playgroud)

不起作用并失败并出现以下错误:

对表的 UPDATE 或 DELETE 语句dataset.table_name会影响流缓冲区中的行,这是不支持的

  • 无法区分两个片段之间的区别 (9认同)