Sdílet prostřednictvím


klauzule CLUSTER BY (TABLE)

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 13.3 LTS a vyšší zaškrtnutí označeného ano pouze Delta Lake

Definuje dynamické, multidimenzionální shlukování pro relaci.

Azure Databricks doporučuje používat automatické shlukování pomocí tekutin a prediktivní optimalizaci pro všechny spravované tabulky Katalog Unity. Tyto funkce poskytují inteligentní optimalizaci rozložení dat na základě vzorů využití dat.

Tuto klauzuli můžete použít v těchto případech:

  • Vytvořte tabulku pomocí CREATE TABLE.

  • Upravte tabulku s ALTER TABLE tak, aby změnila sloupce pro seskupování.

    Pokud chcete seskupit řádky se změněnými sloupci clusteringu, musíte spustit OPTIMIZE. Všimněte si, že řádky seskupené podle předchozích seskupovacích sloupců nejsou ovlivněny.

    Není možné změnit klasifikační sloupce materiálových zobrazení nebo streamovaných tabulek pomocí ALTER TABLE.

  • Vytvoření materializovaného zobrazení pomocí CREATE MATERIALIZED VIEW.

  • Vytvořte streamovací tabulku pomocí CREATE STREAMING TABLE.

Aktualizované řádky se automaticky znovu neseskupí. Spuštěním OPTIMIZE znovu seskupíte aktualizované řádky.

Další informace o shlukování tekutin naleznete v tématu Použití shlukování tekutin pro tabulky.

Syntaxe

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

Parametry

  • column_name

    Určuje sloupce relace, podle kterých se data shlukují. Pořadí sloupců nezáleží. Pokud chcete využít výhod změny clusteringu, měli byste spustit OPTIMIZE.

  • AUTO

    Platí pro:označeno jako ano Databricks SQL označeno jako ano Databricks Runtime 15.4 a vyšší

    Přesměruje Delta Lake, aby automaticky určil a v průběhu času se přizpůsobil nejlepším sloupcům, podle kterých se má clusterovat. Další informace o shlukování tekutin naleznete v tématu Použití shlukování tekutin pro tabulky.

  • NONE

    Vypne clustering pro změněný vztah. Nově vložená nebo aktualizovaná data nebudou seskupena OPTIMIZE. Pokud nechcete při vytváření relace používat clustering, vyněžte CLUSTER BY klauzuli.

Příklady

Další příklady najdete v článku Použití clusteringu liquid pro tabulky.

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