为啥在执行成功的 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 插入后将其存储在时态表中?的主要内容,如果未能解决你的问题,请参考以下文章
将 csv 文件加载到 BIGquery 中并在插入数据时添加日期列