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 }
パラメーター
-
データをクラスター化するテーブルの列を指定します。 列の順序は関係ありません。 クラスタリングを変更するメリットを得るには、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;