適用於:
僅限 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 及以上版本指示 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;