按日期时间 Google BigQuery 分区

Posted

技术标签:

【中文标题】按日期时间 Google BigQuery 分区【英文标题】:Partition by datetime Google BigQuery 【发布时间】:2019-03-06 09:31:23 【问题描述】:

情况: 我想在 Google BigQuery 表上加载 ~5B 记录。我有一个名为“date_time”的字段,它描述了记录日期时间(从 2012 年到今天)。我希望在此字段上对 BigQuery 表进行分区。

并发症: 我正在将所有记录流式传输到 BigQuery 表,BigQuery 似乎只接受该分区的最近 12 个月记录。

问题: 我已阅读说明 (https://cloud.google.com/bigquery/docs/partitioned-tables),但我仍然不明白如何以允许对我的“日期时间”字段进行分区/索引的方式流式传输数据。

【问题讨论】:

【参考方案1】:

当前的流媒体限制在这个link中定义

您可以流式传输过去 1 年到未来 6 个月之间的数据。此范围之外的数据将被拒绝。数据流式传输时,将过去 7 天到未来 3 天之间的数据放入流式缓冲区,然后提取到相应的分区。此窗口之外的数据(但在 1 年 6 个月范围内)被放置在 UNPARTITIONED 分区中。当有足够的未分区数据时,将其加载到相应的分区中。

正如@Felipe 在answer 中所建议的,您应该将数据流式传输到非分区表并使用复制/加载操作将其移动到分区表

注意:您只需为流式插入付费,因此这种解决方法不涉及额外费用

【讨论】:

以上是关于按日期时间 Google BigQuery 分区的主要内容,如果未能解决你的问题,请参考以下文章

Google Bigquery:复制日期分区表所需的分区规范

为啥 Google BigQuery 在使用视图时没有正确使用分区日期

Google BigQuery - 将通配符表查询与日期分区表一起使用?

有没有办法在 BigQuery 表上创建自定义日分区?

BigQuery 日期分区视图

适用于 BigQuery 的最佳 Google Cloud Storage