Teilen über


CLUSTER BY-Klausel (TABLE)

Gilt für:Häkchen ja Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime 13.3 LTS und höher Häkchen gesetzt ja Nur Delta Lake

Definiert Liquid Clustering, das mehrdimensionale Clustering für eine Delta Lake-Tabelle.

Sie können diese Klausel in folgenden Fällen verwenden:

  • Erstellen Sie eine Tabelle mit CREATE TABLE.
  • Ändern Sie eine Tabelle mit ALTER TABLE, um die Clusterspalten zu ändern. Um Zeilen mit geänderten Clusterspalten zu clustern, müssen Sie OPTIMIZEausführen. Beachten Sie, dass Zeilen, die nach früheren Gruppierungsspalten gruppiert wurden, nicht betroffen sind.
  • Erstellen Sie eine Ansicht mit CREATE MATERIALIZED VIEW.
  • Erstellen Sie eine Streamingtabelle mit CREATE STREAMING TABLE.

Aktualisierte Zeilen werden nicht automatisch erneut gruppiert. Führen Sie OPTIMIZE aus, um aktualisierte Zeilen erneut zu clustern.

Weitere Informationen zu Liquid Clustering finden Sie unter Verwenden von Liquid Clustering für Delta-Tabellen.

Syntax

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

Parameter

  • column_name

    Gibt Spalten der Tabelle an, nach der die Daten gruppiert werden sollen. Die Spaltenreihenfolge spielt keine Rolle. Um von der Änderung des Clusterings zu profitieren, sollten Sie OPTIMIZEausführen.

  • NONE

    Deaktiviert das Gruppieren für die geänderte Tabelle. Neu eingefügte oder aktualisierte Daten werden nicht durch OPTIMIZEgruppiert. Wenn Sie beim Erstellen einer Tabelle kein Clustering anwenden möchten, lassen Sie die CLUSTER BY-Klausel weg.

Beispiele

Weitere Beispiele finden Sie unter Verwenden von Liquid Clustering für Delta-Tabellen.

-- 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;