CLUSTER BY-klausul (TABLE)

Gäller endast för:markerad ja Databricks SQL markerad ja Databricks Runtime 13.3 LTS och ovanför markerad ja Delta Lake

Definierar flytande, flerdimensionell klustring för en relation.

Azure Databricks rekommenderar att du använder automatisk flytande klustring och förutsägande optimering för alla hanterade Unity Catalog-tabeller. De här funktionerna ger intelligent optimering av datalayout baserat på dina dataanvändningsmönster.

Du kan använda den här satsen när du:

  • Skapa en tabell med CREATE TABLE.

  • Ändra en tabell med ALTER TABLE för att ändra klustringskolumnerna.

    Om du vill klustra rader med ändrade klustringskolumner måste du köra OPTIMIZE. Observera att rader som grupperats av tidigare klustringskolumner inte påverkas.

    Du kan inte ändra klustringskolumnerna för materialiserade vyer eller strömmande tabeller med ALTER TABLE.

  • Skapa en materialiserad vy med CREATE MATERIALIZED VIEW.

  • Skapa en strömmande tabell med CREATE STREAMING TABLE.

Uppdaterade rader grupperas inte automatiskt igen. Kör OPTIMIZE för att omklustera uppdaterade rader.

Mer information om flytande klustring finns i Använda flytande klustring för tabeller.

Syntax

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

Parameterar

  • kolumnnamn

    Anger kolumner i relationen som data ska klustras med. Kolumnordningen spelar ingen roll. Om du vill ha nytta av att ändra klustring bör du köra OPTIMIZE.

  • AUTO

    Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 15.4 och senare

    Instruerar Delta Lake att automatiskt bestämma och med tiden anpassa sig till de bästa kolumnerna att gruppera efter. Mer information om flytande klustring finns i Använda flytande klustring för tabeller.

  • NONE

    Inaktiverar klustring för den relation som ändras. Nyligen infogade eller uppdaterade data kommer inte att grupperas av OPTIMIZE. Om du inte vill använda klustring när du skapar en relation utelämnar du CLUSTER BY -satsen.

Exempel

Du hittar fler exempel i Använda flytande klustring för tabeller.

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