gpt4 book ai didi

google-bigquery - 在 BigQuery 中使用流缓冲区更新或删除表?

转载 作者:行者123 更新时间:2023-12-02 20:46:19 29 4
gpt4 key购买 nike

尝试从通过 GCP Console 创建并使用 GCP BigQuery Node.js 表插入功能更新的表中删除记录时,出现以下错误。

带有流缓冲区的表 stackdriver-360-150317:my_dataset.users 不支持 UPDATE 或 DELETE DML 语句

该表是在没有流式传输功能的情况下创建的。从我在文档 Tables that have been written to recently via BigQuery Streaming (tabledata.insertall) cannot be modified using UPDATE or DELETE statements 中读到的内容来看.

这是否意味着一旦使用此函数将记录插入到表中,就无法删除记录?到底有没有?如果是这样的话,是否意味着需要删除该表并从头开始重新创建?如果不是这样的话。您能否建议一个解决方法来避免此问题?

谢谢!

<小时/>

包括新的 SEO 错误消息:“表上的 UPDATE 或 DELETE 语句...将影响流缓冲区中的行,这是不受支持的” -- Fh

最佳答案

要检查表是否有流缓冲区,请检查 tables.get 响应中名为 streamingBuffer 的部分,或者当流式传输到分区表时,检查流缓冲区的 _PARTITIONTIME 伪列具有 NULL 值,因此即使使用简单的 WHERE 查询也可以进行检查。

Streamed data首次流式插入表后的几秒钟内即可用于实时分析,但最多可能需要 90 分钟才能用于复制/导出和其他操作。您可能需要等待最多 90 分钟,以便所有缓冲区都保留在集群上。您可以使用查询来查看流缓冲区是否为空或不像您提到的那样。

如果您使用加载作业来创建表,您将不会有流缓冲区,但可能您向其中传输了一些值。

<小时/>

请注意下面的答案,以处理具有持续流缓冲区的表。只需使用 WHERE 过滤出最新分钟的数据,您的查询就会起作用。 -- Fh

关于google-bigquery - 在 BigQuery 中使用流缓冲区更新或删除表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43085896/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com