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 分区表?