BigQuery 流式传输和分区:_PARTITIONTIME 何时真正评估?

Posted

技术标签:

【中文标题】BigQuery 流式传输和分区:_PARTITIONTIME 何时真正评估?【英文标题】:BigQuery streaming and partitions: when is _PARTITIONTIME really evaluated? 【发布时间】:2018-09-03 12:03:22 【问题描述】:

_PARTITIONTIME 表示将行插入 BigQuery 的时间(截断为当天)。

但是,当仔细观察流式传输机制 (https://cloud.google.com/blog/products/gcp/life-of-a-bigquery-streaming-insert) 时,我们可以看到将一行插入 BigQuery 时有 3 个不同的“插入时间”:

“流式摄取工作人员”接收行的时间 行存储到“流式缓冲区”的时间 该行是提取工人将其存储到最终(电容器)存储中的时间。

有人知道这 3 个时刻中的哪一个对应于 _PARTITIONTIME 吗?

【问题讨论】:

【参考方案1】:

当该行仍在流缓冲区中时,该行的 _PARTITIONTIME 为空;提取行后,提取时间为该行的_PARTITIONTIME。一个例外是当该行直接流入一个分区时,“table$20180101”。在这种情况下,_PARTITIONTIME 始终为“2018-01-01”。

【讨论】:

以上是关于BigQuery 流式传输和分区:_PARTITIONTIME 何时真正评估?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在保留缓存的同时流式传输到 BigQuery 分区表?

BigQuery 插入作业而不是流式传输

将超过 7 天的数据插入分区 BigQuery 表

流式传输到 BigQuery 表的数据何时可用于 Query 操作?

删除不在 BigQuery 流式缓冲区中的行

来自 Dataflow 的 BigQuery 流式插入 - 没有结果