在Big Query中创建分区表

时间:2016-09-01 05:03:11

标签: sql google-bigquery bigdata

有人可以建议如何在Big Query中创建分区表吗? 示例:假设我在2016年的谷歌存储中有一个日志数据。我将所有数据存储在按年,月和日期划分的一个存储桶中。在这里,我想要按日期分区创建表。 在此先感谢

3 个答案:

答案 0 :(得分:2)

有两种选择:

选项1
您可以将每个每日文件加载到单独的表中,其名称为YourLogs_YYYYMMDD
查看有关如何Load Data from Cloud Storage

的详细信息

创建表后,您可以使用Table wildcard functions(旧版SQL)或使用Wildcard Table(Standar SQL)访问它们。有关更多示例,请参阅Querying Multiple Tables Using a Wildcard Table

选项2
您可以创建Date-Partitioned Table(只有一个表 - YourLogs) - 但您仍需要将每个每日文件加载到相应的分区中 - 请参阅Creating and Updating Date-Partitioned Tables

加载表格后,您可以轻松Query Date-Partitioned Tables

答案 1 :(得分:2)

分区表的文档在这里: https://cloud.google.com/bigquery/docs/creating-partitioned-tables

在这种情况下,您将创建一个分区表并使用数据填充分区。您可以运行从GCS读取的查询作业(并过滤特定日期的数据)并写入表的相应分区。例如,要加载2016年5月1日的数据,您需要将destination_table指定为表$ 20160501。

目前,您必须运行多个查询作业才能实现此过程。请注意,根据处理的字节,您将需要为每个查询作业付费。

请参阅此帖子了解更多详情:

Migrating from non-partitioned to Partitioned tables

答案 2 :(得分:2)

现在不允许为外部表创建分区。有一个功能请求:
https://issuetracker.google.com/issues/62993684
(如果你对此感兴趣,请投票支持!)

谷歌说他们正在考虑它。