適用対象:
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;