Bigquery 分片与 Bigquery 分区

use*_*374 6 google-bigquery

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

我对分片表和分区做了一些实验。我创建了分区表并加载了两天的数据(两个分区)并创建了两个分片表(单个表)。我试图提取最近两天的数据。

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

请让我知道哪种方式最好。根据实验结果,当我针对全表运行时会给出快速但全表会扫描的结果。

谢谢,

vdo*_*lez 5

从关于分区与分片的GCP 官方文档中,您应该使用分区表。

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


Pav*_*ara 0

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