Freigeben ü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 flüssige, mehrdimensionale Clustering für eine Beziehung.

Azure Databricks empfiehlt die Verwendung der automatischen Flüssigclustering- und prädiktiven Optimierung für alle verwalteten Unity-Katalogtabellen. Diese Features bieten eine intelligente Optimierung des Datenlayouts basierend auf Ihren Datennutzungsmustern.

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.

    Sie können die Clusterspalten von materialisierten Ansichten oder Streamingtabellen mit ALTER TABLE nicht ändern.

  • Erstellen einer materialisierten Ansicht mithilfe von 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 neu zu clustern.

Weitere Informationen zum Flüssigclustering finden Sie unter Verwenden von Flüssigclustering für Tabellen.

Syntax

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

Parameter

  • Spaltenname

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

  • AUTO

    Gilt für:mit Häkchen markiert ja Databricks SQL mit Häkchen markiert ja Databricks Runtime 15.4 und höher

    Weist Delta Lake an, automatisch die besten Spalten zum Gruppieren zu bestimmen und sich im Laufe der Zeit daran anzupassen. Weitere Informationen zum Flüssigclustering finden Sie unter Verwenden von Flüssigclustering für Tabellen.

  • NONE

    Deaktiviert das Clustering für die zu ändernde Beziehung. Neu eingefügte oder aktualisierte Daten werden nicht durch OPTIMIZEgruppiert. Wenn Sie beim Erstellen einer Beziehung kein Clustering verwenden möchten, lassen Sie die CLUSTER BY Klausel weg.

Beispiele

Weitere Beispiele finden Sie unter Verwenden von Flüssigclustering für 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;