共用方式為


CLUSTER BY 子句 (TABLE)

適用於:核取記號為「是」僅限 Databricks SQL 核取記號為「是」 Databricks Runtime 13.3 LTS 和更新版本 核取記號為「是」 Delta Lake

定義 Delta Lake 數據表的液體、多維度群集。

您可以在下列情況下使用這個子句:

  • 使用 CREATE TABLE 建立數據表
  • 變更具有 ALTER TABLE 的數據表,以變更叢集數據行。 若要對具有已變更叢集欄位的資料列進行叢集,您必須執行 OPTIMIZE。 請注意,先前叢集數據行所叢集的數據列不會受到影響。

更新的數據列不會自動重新叢集。 執行 OPTIMIZE 以重新叢集更新的數據列。。

如需液體群集的詳細資訊,請參閱 Delta 表的液體群集

語法

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

參數

  • column_name

    指定用來叢集數據的表格列。 數據行順序並不重要。 若要受益於更改叢集配置,您應該執行 OPTIMIZE

  • NONE

    關閉已被更改數據表的叢集功能。 新插入或更新的數據不會由 OPTIMIZE叢集。 若要在建立數據表時不使用叢集,請省略 CLUSTER BY 子句。

範例

您可以在 使用液體叢集於 Delta 表格中找到更多範例。

-- 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;