关于大查询中流缓冲区的澄清

Dul*_*han 1 google-bigquery

出于学习目的,我刚刚开始在 GCP 中发现 Big Query。所以我创建了两个表并尝试使用 python API 插入、删除和更新查询。

我可以使用以下查询随时更新名为 table_1 的表

UPDATE *****.*****.table_1 SET col_1 = 'value_1', col_2 = 'value_2' WHERE col3 = 'value_3'
Run Code Online (Sandbox Code Playgroud)

它返回This statement modified 2 rows in ****:****.Projects.

但是当我尝试使用查询以相同的方式更新名为 table_2 的表时,它会返回

UPDATE or DELETE statement over table ***.***.table_2 would affect rows in the streaming buffer, which is not supported
Run Code Online (Sandbox Code Playgroud)

所以我创建了表并以相同的方式执行操作,我的问题是为什么我只针对 table_2 收到此错误

谢谢

小智 6

流式数据在首次流式插入表后的几秒钟内即可用于实时分析,但最多可能需要 90 分钟才能用于复制/导出以及 UPDATE 或 DELETE 等其他操作。您可能需要等待最多 90 分钟,以便所有缓冲区都保留在集群上。您可以检查名为 \xe2\x80\x98streamingBuffer\xe2\x80\x99 的部分的 \xe2\x80\x98tables.get\xe2\x80\x99 响应,以检查表是否具有流缓冲区。\n如果您如果使用加载作业来创建表,您将不会有流缓冲区,但可能您向其中传输了一些值。

\n

您还可以参阅此文档 [1] 了解更多信息\n[1] https://cloud.google.com/bigquery/streaming-data-into-bigquery

\n