按某些列对分区表进行预排序会减少用于分组依据的内存吗?

时间:2018-12-12 18:21:53

标签: google-bigquery

假设我们有一张桌子 CREATE TABLE dataset.user_activity_log ( partition_time DATE , user_id STRING , description STRING , activity_id int64 ) PARTITION BY partition_time OPTIONS( description="partitioned by partition_time" ) ; 我进行了设置,以便我每天都在其中插入数据, 按活动ID进行排序。

稍后,我想根据partition_time字段在一定时间范围内创建报告,并根据活动ID进行分组,将activity_id字段归类为帮助(可能不会用完)的内存)?

1 个答案:

答案 0 :(得分:3)

这称为"Clustered Tables"creating using DDL

摘要

PARTITION BY partition_time
 CLUSTER BY
   activity_id
 OPTIONS (

也请阅读:Optimizing BigQuery: Cluster your tables

您需要通过activity_id对表进行进一步的聚类。如果遇到内存错误,请在新问题中发布架构,表大小,查询和查询计划,您将获得优化提示。