Bigquery 分片与 Bigquery 分区
Posted
技术标签:
【中文标题】Bigquery 分片与 Bigquery 分区【英文标题】:Bigquery Shard Vs Bigquery Partition 【发布时间】:2016-09-15 15:26:33 【问题描述】:我有一张包含 340GB 数据的表,但我们只使用了最近一周的数据。因此,为了最大限度地减少将这些数据移动到分区表或分片表的成本计划。
我对分片表和分区做了一些实验。我创建了分区表并加载了两天的数据(两个分区)并创建了两个分片表(单个表)。我试图提取过去两天的数据。
全桌 - 27 秒 分区表 - 33 秒 分片表 - 91 秒
请告诉我哪种方式最好。根据实验结果,当我针对全表运行但全表会扫描时,速度很快。
谢谢,
【问题讨论】:
您能否提供您用于比较的两个查询?知道这两个工作 ID 也很有用。 (我不需要项目 ID)。 【参考方案1】:根据Partitioning versus Sharding 上的 GCP 官方文档,您应该使用分区表。
分区表的性能优于按日期分片的表。 当 您创建以日期命名的表,BigQuery 必须维护一份 每个以日期命名的表的架构和元数据。此外,当日期命名 使用表时,可能需要 BigQuery 来验证 每个查询的表。这种做法也增加了查询开销和 影响查询性能。推荐的最佳做法是使用 分区表而不是日期分片表。
【讨论】:
【参考方案2】:性能差异似乎是由于一些后台优化已在非分区表上运行,但尚未在分区表上运行(因为数据较新)。
【讨论】:
以上是关于Bigquery 分片与 Bigquery 分区的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery:将表插入到具有分片表的现有 Google 分析中