CLUSTER BY
子句 (TABLE)
適用於:僅限 Databricks SQL Databricks Runtime 13.3 LTS 和更新版本 Delta Lake
定義 Delta Lake 數據表的液體、多維度群集。
您可以在下列情況下使用這個子句:
- 使用 CREATE TABLE 建立數據表
- 使用 ALTER TABLE 改變資料表以變更叢集數據行。 若要使用已變更的叢集數據行來叢集數據列,您必須執行 OPTIMIZE。 請注意,先前叢集數據行所叢集的數據列不會受到影響。
更新的數據列不會自動重新叢集。 執行 OPTIMIZE 以重新叢集更新的數據列。
如需液體群集的詳細資訊,請參閱 使用差異數據表的液體群集
語法
CLUSTER BY { ( column_name [, ...] ] ) |
NONE }
參數
-
指定要用來叢集數據之數據表的數據行。 數據行順序並不重要。 若要受益於改變叢集,您應該執行 OPTIMIZE。
NONE
關閉變更數據表的叢集。 新插入或更新的數據將不會由 OPTIMIZE叢集。 若要在建立數據表時不使用叢集,請省略
CLUSTER BY
子句。
範例
您可以在使用差異資料表的液體群集中找到更多範例。
-- Create a table with a clustering column
> CREATE TABLE t(a int, b string) USING delta 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;