Udostępnij za pomocą


CLUSTER BY, klauzula (TABLE)

Dotyczy:zaznacz pole wyboru oznaczone jako takdatabricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 13.3 LTS i nowsze zaznacz pole wyboru oznaczone jako tak tylko usługa Delta Lake

Definiuje płynne, wielowymiarowe klastrowanie dla relacji.

Usługa Azure Databricks zaleca używanie automatycznego klastrowania i optymalizacji predykcyjnej dla wszystkich tabel zarządzanych przez Unity Catalog. Te funkcje zapewniają inteligentną optymalizację układu danych na podstawie wzorców użycia danych.

Tej klauzuli można użyć, gdy:

  • Utwórz tabelę przy użyciu CREATE TABLE.

  • Zmień tabelę przy użyciu ALTER TABLE, aby zmienić kolumny klastrowania.

    Aby klastrować wiersze ze zmienionymi kolumnami klastrowania, należy uruchomić OPTIMIZE. Należy pamiętać, że nie ma to wpływu na wiersze klastrowane według poprzednich kolumn klastrowania.

    Nie można zmienić kolumn klastrowania zmaterializowanych widoków ani tabel przesyłania strumieniowego za pomocą polecenia ALTER TABLE.

  • Utwórz zmaterializowany widok przy użyciu polecenia CREATE MATERIALIZED VIEW.

  • Utwórz tabelę przesyłania strumieniowego przy użyciu CREATE STREAMING TABLE.

Zaktualizowane wiersze nie są automatycznie ponownie klasterowane. Uruchom polecenie OPTIMIZE , aby ponownie klastrować zaktualizowane wiersze.

Aby uzyskać więcej informacji na temat klastrowania płynów, zobacz Korzystanie z klastrowania płynnego dla tabel.

Składnia

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

Parametry

  • nazwa_kolumny

    Określa kolumny relacji, według której mają być klastrowane dane. Kolejność kolumn nie ma znaczenia. Aby skorzystać ze zmiany klastrowania, należy uruchomić OPTIMIZE.

  • AUTO

    Dotyczy:zaznaczone jako tak Databricks SQL zaznaczone jako tak Databricks Runtime 15.4 lub nowsza

    Kieruje Delta Lake do automatycznego określenia i z czasem dostosowania się do najlepszych kolumn do klastrowania. Aby uzyskać więcej informacji na temat klastrowania płynów, zobacz Korzystanie z klastrowania płynnego dla tabel.

  • NONE

    Wyłącza klastrowanie dla zmienianej relacji. Nowo wstawione lub zaktualizowane dane nie będą klastrowane przez OPTIMIZE. Aby nie używać klastrowania podczas tworzenia relacji, pomiń klauzulę CLUSTER BY .

Przykłady

Więcej przykładów można znaleźć w temacie Use liquid clustering for tables (Używanie klastrowania liquid dla tabel).

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