我在BigQuery中有很多表都是按日期划分的,包括几年的Google Analytics(分析)数据。最近有人告诉我,这是优化的旧方法,并且日期分区要快得多。
这是正确的吗?我一直在寻找提高此数据查询速度的方法,如果日期分区允许更快的查询,我应该将所有日期分片的GA表重建为日期分区吗?我应该两个都做吗?我希望看到什么样的性能影响,这真的值得付出努力吗?
答案 0 :(得分:0)
Google文档中的此页面相对彻底地回答了这一问题:https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding
最相关的部分:
已分区表的性能优于按日期分片的表。创建以日期命名的表时,BigQuery必须为每个以日期命名的表维护一个架构和元数据的副本。另外,当使用以日期命名的表时,可能需要BigQuery来验证每个查询表的权限。这种做法还会增加查询开销,并影响查询性能。推荐的最佳实践是使用分区表而不是日期分割表
您的性能提高将主要取决于您以前拥有的分片数量以及您在单个查询中始终访问的分片数量。