我们正在使用一个日期分区表,该表具有5年(每天递增的负载)数据,并记录在数百万条记录中。为了提高性能,请考虑基于非日期字段(id)拆分表,因为所有查询将在该列(id)上包含where子句。并使用日期分区对每个拆分表进行分区,以便我们可以在具有日期范围的较小数据集上进行查询。我们将不会使用通配表,因为我们将知道ID,并计划将其附加到表并针对该特定表运行查询。需要知道这是否是追求提高性能和降低查询成本的好选择。
答案 0 :(得分:1)
我们根据id列拆分表,以创建多个表。每个拆分表都是按日期分区的列。除此之外,我们根据需要将其作为聚簇表放置在其他4个列上。在样本数据集上找到以下性能。旧表(UserInfo)有500,000多行。我们捕获的统计信息是针对给定的日期范围和ID,旧表(非拆分/合并表)和拆分表(基于ID拆分)的性能(根据处理的数据量和相同查询所花费的时间)
答案 1 :(得分:0)
这是不可能的。 BigQuery不支持非日期列上的分区。
有一个feature request。我建议subscribing继续接收有关其可用性的信息。