大查询性能 - 有没有办法按多维分区(日期和客户)?一张大桌子和400张桌子

时间:2016-10-08 19:31:02

标签: google-bigquery google-cloud-platform

我们正在评估云仓库选项以构建分析解决方案。我们需要每天为每个客户(400多个)提供趋势分析,这两个维度的查询比例是相等的。我最初的想法是为每个客户创建一个Date分区表,因此对于每个客户的查询,我将扫描限制在特定的一天,并且对于所有客户的查询,我使用表通配符功能。

问题:

  1. 有没有办法按日期和客户进行分区,所以我可以将所有数据存储在一个表中,仍然限制数据扫描量?
  2. 如果#1为#,则查询400个表与一个表(相同数据量)的性能影响是什么

1 个答案:

答案 0 :(得分:1)

  1. 不支持按表中特定字段进行散列分区和分区,因此现在不可行。
  2. 如果使用通配符查询400个表并使用_TABLESUFFIX过滤客户,则查询将只读取匹配的表,您只需为这些表付费;如果您查询一个表,那么您可以使用_PARTITIONTIME过滤日期,并且您只需为匹配的分区付费。性能方面如果查询一个表,则会读取较少的元数据,但对于400个表应该不会太多。