列中的 BigQuery 日期分区

Posted

技术标签:

【中文标题】列中的 BigQuery 日期分区【英文标题】:BigQuery date partition from column 【发布时间】:2017-03-05 11:20:54 【问题描述】:

我试图了解如何从包含多天数据的 csv 文件中加载日期分区表。我想我正在寻找一个类似的特性关系数据库提供它们在特定列上的分区,该列负责自动将记录加载到正确的分区中。

似乎使用 bigquery 动态分配分区的唯一方法是使用分区装饰器,这需要我从 CSV 顺序加载每条记录(因为每一行的日期可能不同)或首先编写一个 etl按天将 csv 拆分为单独的文件。

我错过了什么吗?

【问题讨论】:

【参考方案1】:

现在 Google 推出了按字段分区的功能。您可以使用任何日期或日期时间类型的字段进行分区

【讨论】:

【参考方案2】:

目前 BigQuery 不支持对特定列进行分区,但这是 vote here 和 here 的一个非常需要的功能。

正如您所说,在分区中加载数据的唯一方法是使用分区装饰器。为此,您可以将您的 CSV 处理成数天,然后使用每个分区的单独加载作业将每天加载到它自己的分区中。

或者您加载完整的未分区 CSV,然后稍后通过单独的查询为分区创建脚本 -> 将结果写入专用分区,如 in details here 所述。

【讨论】:

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

如何在 BigQuery 的标准 SQL 中解析具有不同日期字符串的列中的值

通过 CLI 将存储桶中的 AVRO 加载到具有日期分区的 BigQuery 中

BigQuery、日期分区表和装饰器

BigQuery 中的分区如何工作?

多日期数据加载到 BigQuery 分区表中

BigQuery 日期分区视图