需要关于基于非日期列以及日期分区在bigquery中拆分表的建议

时间:2019-05-20 05:56:25

标签: google-bigquery

我们正在使用一个日期分区表,该表具有5年(每天递增的负载)数据,并记录在数百万条记录中。为了提高性能,请考虑基于非日期字段(id)拆分表,因为所有查询将在该列(id)上包含where子句。并使用日期分区对每个拆分表进行分区,以便我们可以在具有日期范围的较小数据集上进行查询。我们将不会使用通配表,因为我们将知道ID,并计划将其附加到表并针对该特定表运行查询。需要知道这是否是追求提高性能和降低查询成本的好选择。

2 个答案:

答案 0 :(得分:1)

我们根据id列拆分表,以创建多个表。每个拆分表都是按日期分区的列。除此之外,我们根据需要将其作为聚簇表放置在其他4个列上。在样本数据集上找到以下性能。旧表(UserInfo)有500,000多行。我们捕获的统计信息是针对给定的日期范围和ID,旧表(非拆分/合并表)和拆分表(基于ID拆分)的性能(根据处理的数据量和相同查询所花费的时间)

enter image description here

答案 1 :(得分:0)

这是不可能的。 BigQuery不支持非日期列上的分区。

有一个feature request。我建议subscribing继续接收有关其可用性的信息。