使用不同的基于分区的数据将批量数据加载到 BigQuery 分区表中

Load bulk data into BigQuery partitioned table with different partitions-based data

我想将 CSV 数据加载到 BigQuery 分区表中。我的 CSV 文件包含不同的分区数据。如何将整个 CSV 文件加载到 BigQuery 分区表中,以便特定的 csv 分区数据进入 BigQuery 中的相应分区。


目前,BigQuery 不支持基于数据中的字段进行分区!
因此,显然您不能加载整个 CSV 并期望它被分区。
希望这将很快改变 - 您可以跟踪相应的 feature request

与此同时,您的一些选择是:

  • 在 BigQuery 之外处理您的 csv 文件以将一个文件拆分为各个日期(每个日期一个 csv),然后将它们一一加载到(预先准备好的分区)表的各个分区中

  • 将整个 csv 按原样加载到 BigQuery 中,然后逐天处理/选择到(仍预先准备好的分区)表的各个分区中

取决于您的具体情况,一个或另一个选项可能对您更好 - 您自己决定。
从 BigQuery 成本的angular来看 - 第一个选项对我来说似乎更便宜


您可以将整个 CSV 数据加载到临时临时表中,然后使用

类型的查询

1
2
bq query --destination_table=table$20170115
 "SELECT * FROM temp WHERE part='2017-01-15'"

将适当的数据复制到它们的分区中。