BigQuery:加入集群字段

Lea*_*bad 8 sql performance google-bigquery

我正在尝试使用聚集表来优化我们的 BigQuery 模型。

我正在测试这些场景:

  1. 聚簇表连接聚簇表(按簇字段连接)
  2. 非聚簇表连接 非聚簇表(通过与场景 1 相同的字段进行连接)

在不应用任何条件的情况下,场景 1 和 2 具有相同的成本(处理的时间和字节数)。 当我通过聚集字段 1 应用条件时,速度提高了 4 倍,成本也降低了 4 倍。

聚集字段只有在查询中使用条件时才有用?而不是加入?在这种情况下,如果我在没有任何条件的情况下执行连接,无论有没有集群,性能都是相同的

如何改进 BigQuery 中两个表之间的联接?

编辑 2021-05-31

添加两个作业的查询执行计划:

  1. 簇状

  2. 非聚类

小智 2

文档中,我想说,当您在连接期间使用另一列进行比较时,集群将被简单地忽略。

现在,为了优化联接,您可以尝试在联接之前减少数据。例如,尝试过滤表,或预先聚合它们以尽可能减少数据。最后,还要注意连接上表的顺序。将它们按照从最大到最小的顺序排列。