Поделиться через


предложение CLUSTER BY (TABLE)

Область применения:флажок Databricks SQL флажок Databricks Runtime 13.3 LTS и выше флажок Delta Lake

Определяет ликвидную многомерную кластеризацию для отношения.

Azure Databricks рекомендует использовать автоматическую кластеризацию жидкости и прогнозную оптимизацию для всех управляемых таблиц каталога Unity. Эти функции обеспечивают интеллектуальную оптимизацию макета данных на основе шаблонов использования данных.

Это предложение можно использовать при выполнении указанных ниже условий.

  • Создайте таблицу с помощью CREATE TABLE.
  • Измените таблицу с ALTER TABLE, чтобы изменить столбцы кластеризации. Для кластеризации строк с измененными столбцами кластеризации необходимо запустить OPTIMIZE. Обратите внимание, что строки, кластеризованные предыдущими столбцами кластеризации, не затрагиваются.
  • Создание материализованного представления с помощью CREATE MATERIALIZED VIEW.
  • Создайте потоковую таблицу с помощью CREATE STREAMING TABLE.

Обновленные строки не будут автоматически кластеризованы. Запустите OPTIMIZE для перекластеризации обновленных строк.

Дополнительные сведения о кластеризации с жидкостью см. в разделе "Использование кластеризации жидкости" для таблиц

Синтаксис

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

Параметры

  • название_столбца

    Указывает столбцы связи, с помощью которой кластеризованы данные. Порядок столбцов не имеет значения. Чтобы воспользоваться изменениями в кластеризации, следует запустить OPTIMIZE.

  • AUTO

    Применяется к:отмечено да Databricks SQL отмечено да Databricks Runtime 15.4 и выше

    Указывает Delta Lake автоматически определять и со временем адаптироваться к наиболее подходящим столбцам для кластеризации. Для получения дополнительной информации о жидкой кластеризации см. раздел "Использование жидкой кластеризации для таблиц".

  • NONE

    Отключает кластеризацию для изменяемого отношения. Недавно вставленные или обновленные данные не будут кластеризованы по OPTIMIZE. Чтобы не использовать кластеризацию при создании отношения, опустите CLUSTER BY предложение.

Примеры

Дополнительные примеры можно найти в разделе "Использование жидкой кластеризации для таблиц".

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