次の方法で共有


CLUSTER BY 句 (TABLE)

適用対象:check marked yes Databricks SQL Databricks Runtime 13.3 LTS 以上 Delta Lake のみ

多次元的かつ流動的な関係のクラスタリングを定義します。

Azure Databricks では、すべての Unity カタログ マネージド テーブルに対して自動液体クラスタリングと予測最適化を使用することをお勧めします。 これらの機能は、データの使用パターンに基づいてデータ レイアウトをインテリジェントに最適化します。

この句は、次の場合に使用できます。

  • CREATE TABLE を使ってテーブルを作成します。
  • ALTER TABLEを使用してテーブルを変更し、クラスタリング列を変更します。 クラスタリング列が変更された行をクラスター化するには、 OPTIMIZEを実行する必要があります。 前のクラスタリング列によってクラスター化された行は影響を受けないことに注意してください。
  • CREATE MATERIALIZED VIEWを使用して具体化されたビューを作成します。
  • CREATE STREAMING TABLEを使用してストリーミング テーブルを作成します。

更新された行は自動的に再クラスター化されません。 OPTIMIZEを実行して、更新された行を再クラスター化します。

液体クラスタリングの詳細については、「テーブルに液体クラスタリングを使用する」を参照してください。

構文

CLUSTER BY { ( column_name [, ...] ) |
             AUTO |
             NONE }

パラメーター

  • column_name

    データのクラスター化に使用するリレーションシップの列を指定します。 列の順序は関係ありません。 クラスタリングを変更するメリットを得るために、 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;