Bigquery碎片与Bigquery分区

时间:2016-09-15 15:26:33

标签: google-bigquery

我有一张包含340GB数据的表,但我们只使用最后一周的数据。因此,最小化将此数据移动到分区表或分片表的成本计划。

我已经完成了一些shard表和分区的实验。我创建了分区表并加载了两天的数据(两个分区)并创建了两个分片表(单个表)。我试着提取最后两天的数据。

全桌 - 27秒 分区表 - 33秒 碎片表 - 91秒

请告诉我哪种方式最好。基于实验结果,当我针对全表运行但是全表将扫描时给出快速。

谢谢,

2 个答案:

答案 0 :(得分:1)

根据Partitioning versus Sharding上的GCP官方文档,您应该使用分区表。

  

分区表的性能优于按日期分片的表。   您创建以日期命名的表时,BigQuery必须维护该表的副本   每个以日期命名的表的架构和元数据。另外,当命名时   使用表,可能需要BigQuery来验证对   每个查询表。这种做法还会增加查询开销,   影响查询性能。推荐的最佳做法是使用   分区表而不是日期分割表。

答案 1 :(得分:0)

性能上的差异似乎是由于某些后台优化已在非分区表上运行,但尚未在分区表上运行(因为数据较新)。