为啥在执行成功的 bigquery 插入后将其存储在时态表中?

Posted

技术标签:

【中文标题】为啥在执行成功的 bigquery 插入后将其存储在时态表中?【英文标题】:why after execute a successful bigquery insert it is stored in a temporal table?为什么在执行成功的 bigquery 插入后将其存储在时态表中? 【发布时间】:2019-03-10 22:08:21 【问题描述】:

您好,我将一些行推入 bigquery 表中,如下所示:

errors = client.insert_rows("course-big-query-python.api_data_set_course_33.my_table_aut33",[string_tuple], selected_fields = schema2)
assert errors == []

但是,当我在可视化界面验证结果时,我发现实际表大小为 0,

我验证了 Streaming buffer 的统计信息有表成功插入:

我还执行了对表的查询,结果显示在临时表中,如下所示:

所以我很感谢支持在相应的地方插入表而不是临时表

【问题讨论】:

这是预期行为:cloud.google.com/bigquery/…。您的数据最终会自动合并到常规表中。 【参考方案1】:

要在 BigQuery 中加载数据,您可以流式传输或批处理。

如果您选择流式传输,数据将直接进入时间空间,直到合并到表中。

您可以在此处找到有关流式插入如何工作的详细说明:

https://cloud.google.com/blog/products/gcp/life-of-a-bigquery-streaming-insert

如果您想批处理而不是流,请使用 jobs.load 而不是 insert_row

【讨论】:

以上是关于为啥在执行成功的 bigquery 插入后将其存储在时态表中?的主要内容,如果未能解决你的问题,请参考以下文章

将数据插入调整到 BigQuery

将 csv 文件加载到 BIGquery 中并在插入数据时添加日期列

为啥我们不能在一个批处理文件中执行 BigQuery 的多个语句?

BigQuery - 插入大于 1MB 的行

Bigquery - 安排存储过程不再工作

为啥使用 Dataflow 写入 Bigquery 非常慢?