CLUSTER BY 子句 (TABLE)

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 13.3 LTS 及更高版本 勾选“是” 仅 Delta Lake

定义一个关系的流动性、多维度聚类。

Azure Databricks 建议对所有 Unity 目录托管表使用自动液体聚类分析和预测优化。 这些功能基于数据使用模式提供数据布局的智能优化。

可以在以下情况下使用此子句:

更新后的行不会自动重新聚类。 运行 OPTIMIZE 以重新聚类更新后的行。

有关 liquid 聚类分析的详细信息,请参阅将 liquid 聚类分析用于增量表

语法

CLUSTER BY { ( column_name [, ...] ) |
             AUTO |
             NONE }

参数

  • column_name

    指定用于对数据进行聚类的关系表列。 列顺序无关紧要。 若要受益于更改群集,应运行 OPTIMIZE

  • AUTO

    适用对象: Databricks SQL 勾选“是” Databricks Runtime 15.4 及更高版本check marked yes

    指向 Delta Lake,以自动确定并随着时间的推移优化用于聚类分析的最佳列。 有关液体聚类的详细信息,请参阅 对 Delta 表使用液体聚类

  • NONE

    关闭要更改的关系的聚类分析。 新插入或更新的数据不会由 OPTIMIZE 聚类。 若要在创建关系时不使用聚类分析,请省略子 CLUSTER BY 句。

示例

可以在将 liquid 聚类分析用于增量表中找到更多示例。

-- Create a table with a clustering column
> CREATE TABLE t(a int, b string) CLUSTER BY (a);

-- The clustering of an existing Delta table to add a second dimension
> ALTER TABLE t CLUSTER BY (a, b);

-- Recluster the table
> OPTIMIZE t;

-- Remove the clustering
> ALTER TABLE t CLUSTER BY NONE;