适用于:
Databricks SQL
Databricks Runtime 13.3 LTS 及更高版本
仅 Delta Lake
定义一个关系的流动性、多维度聚类。
Azure Databricks 建议对所有 Unity 目录托管表使用自动液体聚类分析和预测优化。 这些功能基于数据使用模式提供数据布局的智能优化。
可以在以下情况下使用此子句:
使用 CREATE TABLE 创建表。
使用 ALTER TABLE 更改表以更改聚类列。
若要使用更改后的聚类列对行进行聚类,则必须运行 OPTIMIZE。 请注意,根据之前的聚类分析列进行聚类的行不受影响。
不能更改
ALTER TABLE具体化视图或流媒体表的簇列。使用 CREATE MATERIALIZED VIEW 创建具体化视图。
使用命令 CREATE STREAMING TABLE 创建流式处理表。
更新后的行不会自动重新聚类。 运行 OPTIMIZE 以重新群集更新的行。
有关液体聚类分析的详细信息,请参阅 对表使用液体聚类分析。
语法
CLUSTER BY { ( column_name [, ...] ) |
AUTO |
NONE }
参数
-
指定用于对数据进行聚类的关系表列。 列顺序无关紧要。 若要受益于更改群集,应运行 OPTIMIZE。
AUTO适用对象: Databricks SQL 勾选“是” Databricks Runtime 15.4 及更高版本check marked yes
指向 Delta Lake,以自动确定并随着时间的推移优化用于聚类分析的最佳列。 有关液体聚类分析的详细信息,请参阅 对表使用液体聚类分析。
NONE关闭要更改的关系的聚类分析。 新插入或更新的数据不会由 OPTIMIZE 聚类。 若要在创建关系时不使用聚类分析,请省略子
CLUSTER BY句。
示例
可以在 对表使用液体聚类分析中找到更多示例。
-- 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;