BigQuery表按月分区

时间:2017-01-11 07:39:45

标签: google-bigquery

我找不到与此有关的任何文件。 time_partitioning_type = DAY是在BigQuery中对表进行分区的唯一方法吗?此参数可以采用除日期之外的任何其他值吗?

3 个答案:

答案 0 :(得分:3)

不幸的是没有。 BigQuery 目前仅支持日期分区表。

https://cloud.google.com/bigquery/docs/partitioned-tables

  

BigQuery提供日期分区表,这意味着该表被划分为每个日期的单独分区

答案 1 :(得分:2)

请注意,即使您按天粒度进行分区,您仍然可以使用_PARTITIONTIME上的相应过滤器编写查询,以便在几个月内运行。例如,

#standardSQL
SELECT * FROM MyDatePartitionedTable
WHERE DATE_TRUNC(EXTRACT(DATE FROM _PARTITIONTIME), MONTH) = '2017-01-01';

这将从今年1月开始选择所有行。

答案 2 :(得分:2)

看起来这样可行:

#standardSQL
 CREATE OR REPLACE TABLE `My_Partition_Table`
 PARTITION BY event_month
 OPTIONS (
    description="this is a table partitioned by month"
  ) AS
  SELECT
   DATE_TRUNC(DATE(some_event_timestamp), month) as event_month,
   *
  FROM `TableThatNeedsPartitioning`