添加一行 SQL 以优化您的 BigQuery 表格

通过添加一行 SQL 优化您的 BigQuery 表格

聚类:一种将相似行分组并防止不必要数据处理的简单方法

在我之前的文章中,我解释了如何使用分区来优化SQL查询:

使用分区,卢克!一种简单有效的优化SQL查询的方法

如果您曾经编写过运行时间很长的SQL查询,那么这篇文章非常适合您

towardsdatascience.com

现在,我要写续集了!(爸爸笑话,有人要听吗?)

本文将介绍聚类:这是另一个在BigQuery中可以使用的强大优化技术。与分区类似,聚类可以帮助您编写更高效、更快速、更便宜的查询。如果您想发展SQL工具包并建立更高级的数据科学技能,这是一个非常好的起点。

什么是聚类表?

在BigQuery中,聚类表是一种将相似行在物理“块”中分组的表。

例如,想象一个名为user_signups的表,用于跟踪在一个虚构网站上注册帐户的所有人。它有四列:

  • registration_date: 用户创建帐户的日期
  • country: 用户所在的国家
  • tier: 用户的计划(“免费”或“付费”)
  • username: 用户的用户名

如果我们希望,可以按country对表进行聚类,以使来自同一国家的用户在表中彼此相邻:

Image by author

如您所见,表中的每个“块”都包含特定国家的用户。聚类表仍然包含相同的数据;只是以一种更高效的方式排序。

聚类加速我们的查询,因为这意味着BigQuery需要处理较少的数据

当您查询聚类表时,BigQuery首先会识别执行查询所需的相关块。这个预处理步骤称为块剪枝,它使您的查询更快、更便宜,因为BigQuery…