按周/月//季度/年分区以突破分区限制?

2023-11-30

我有 32 年的数据想要放入分区表中。但是 BigQuery 说我超出了限制(4000 个分区)。

对于这样的查询:

CREATE TABLE `deleting.day_partition`
PARTITION BY FlightDate 
AS 
SELECT *
FROM `flights.original` 

我收到如下错误:

查询产生的分区过多,允许 2000 个,查询至少产生 11384 个分区

我怎样才能突破这个限制?


您可以按周/月/年分区,而不是按天分区。

就我而言,每年的数据包含大约 3GB 的数据,因此如果我按年分区,我将从集群中获得最大的好处。

为此,我将创建一个year日期列,并按其分区:

CREATE TABLE `fh-bigquery.flights.ontime_201903`
PARTITION BY FlightDate_year
CLUSTER BY Origin, Dest 
AS
SELECT *, DATE_TRUNC(FlightDate, YEAR) FlightDate_year
FROM `fh-bigquery.flights.raw_load_fixed`

请注意,我创建了额外的列DATE_TRUNC(FlightDate, YEAR) AS FlightDate_year正在进行中。

表统计:

enter image description here

由于表是聚集的,我将获得分区的好处即使我不使用分区列(年份)作为过滤器:

SELECT *
FROM `fh-bigquery.flights.ontime_201903`
WHERE FlightDate BETWEEN '2008-01-01' AND '2008-01-10'

Predicted cost: 83.4 GB
Actual cost: 3.2 GB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按周/月//季度/年分区以突破分区限制? 的相关文章

随机推荐