CLUSTER BY 句 (TABLE)

適用対象:check marked yes 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) 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;