CLUSTER BY
子句(TABLE)
适用于: Databricks SQL
Databricks Runtime 13.3 LTS 及更高版本
仅 Delta Lake
定义 Delta Lake 表的液态多维聚类。
可以在以下情况下使用此子句:
- 使用 CREATE TABLE创建表。
- 更改具有 ALTER TABLE 的表以更改聚类分析列。 若要对具有已更改聚类列的行进行聚类,必须运行 OPTIMIZE。 请注意,按之前的聚类列聚类的行不受影响。
- 使用 CREATE MATERIALIZED VIEW创建视图。
- 使用 CREATE STREAMING TABLE创建流式处理表。
更新后的行不会自动重新聚类。 运行 OPTIMIZE 以重新整理更新的行。
有关液态聚类的详细信息,请参阅对 Delta 表使用液态聚类
语法
CLUSTER BY { ( column_name [, ...] ) |
NONE }
参数
-
指定作为聚类数据的依据的表的列。 列顺序无关紧要。 要从更改聚类中获益,您应该运行 OPTIMIZE。
NONE
为正在更改的表关闭聚类。 新插入或更新的数据不会被 OPTIMIZE聚类。 若要在创建表时不使用聚类,请忽略
CLUSTER BY
子句。
示例
可以在对 Delta 表使用 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;