Google bigquery BigQuery何时刷新流输出缓冲区
我知道这个问题不久前被以不同的形式提出。但现在BQ允许在分区表上使用DML,更重要的是了解何时刷新流缓冲区,以便我们可以在表上执行DML以进行维护 这一点现在非常重要,因为Google bigquery BigQuery何时刷新流输出缓冲区,google-bigquery,Google Bigquery,我知道这个问题不久前被以不同的形式提出。但现在BQ允许在分区表上使用DML,更重要的是了解何时刷新流缓冲区,以便我们可以在表上执行DML以进行维护 这一点现在非常重要,因为 我有1500张分区的桌子 每张桌子至少有200张 分区 现在我必须更新所有的表,因为我们正在对GDPR执行某种哈希 如果我不能运行DML,那么 我必须通过连接一个参考表来重述200*1500分区 如果我可以运行DML,那么我只需要运行1500条udpate语句 我已停止流式处理,并已等待了90分钟以上,但仍然得到相同的错
- 我有1500张分区的桌子李>
- 每张桌子至少有200张 分区
我已停止流式处理,并已等待了90分钟以上,但仍然得到相同的错误,我无法运行DML,因为表有流式处理缓冲区。如果您能以自己的经验给予回复,我们将不胜感激 答案是“视情况而定”,主要取决于流到缓冲区的数据的大小,但也取决于BQ端的算法调整。到目前为止,在数据刷新之前,还没有确定的时间可以计算。而且没有手动调用缓冲区刷新的机制。因此,显然BigQuery现在允许使用流式缓冲区更新分区表的旧分区。但不是在流缓冲区本身上 例如:
update
`dataset.table_name`
set column = 'value'
where _PARTITIONTIME = '2018-05-01'
工作得很漂亮
但是
无法工作并失败,出现以下错误:
表数据集上的UPDATE或DELETE语句。表\u name
将影响流式缓冲区中的行,这是不受支持的
无法区分两个代码段之间的差异。第一个代码段在分区“20180501”上将列设置为“value”,而第二个代码段尝试在流式缓冲区中将列设置为“value”。
update
`dataset.table_name`
set column = 'value'
where _PARTITIONTIME is null