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


ALTER TABLE ... PARTITION

Область применения:флажок Databricks SQL флажок Databricks Runtime

Добавляет, удаляет, переименовывает или восстанавливает секции таблицы.

Управление секциями не поддерживается для таблиц Delta Lake.

Синтаксис

ALTER TABLE table_name
   { ADD PARTITION clause |
     DROP PARTITION clause |
     PARTITION SET LOCATION clause |
     RENAME PARTITION clause |
     RECOVER PARTITIONS clause }

Предложение ADD PARTITION

Добавляет в таблицу одну или несколько секций.

Управление секциями не поддерживается для таблиц Delta Lake.

Синтаксис

ADD [IF NOT EXISTS] { PARTITION clause [ LOCATION path ] } [...]

Параметры

  • IF NOT EXISTS

    Необязательное условие, направляющее Azure Databricks игнорировать оператор, если раздел уже существует.

  • предложение PARTITION

    Раздел, который нужно добавить. Ключи секции должны соответствовать секционированию таблицы и быть связаны со значениями. Если секция уже существует, возникает ошибка, если не указано IF NOT EXISTS.

  • LOCATION path

    path должен быть STRING литералом, представляющим необязательное расположение, указывающее на секцию.

    Если расположение не указано, оно будет определено на основе расположения таблицы и ключей разделов.

    Если в расположении есть файлы, которые заполняют раздел, они должны быть совместимы как с data_source таблицы, так и с ее параметрами.

Предложение DROP PARTITION

Удаляет одну или несколько секций из таблицы, при необходимости удаляя все файлы в расположениях секций.

Управление секциями не поддерживается для таблиц Delta Lake.

Синтаксис

DROP [ IF EXISTS ] PARTITION clause [, ...] [PURGE]

Параметры

  • IF EXISTS

    Если указан параметр IF EXISTS, Azure Databricks будет игнорировать попытку удаления несуществующих секций. В противном случае удаление несуществующих секций создает ошибку.

  • предложение PARTITION

    Указывает раздел, который нужно удалить. Если раздел был лишь частично идентифицирован, часть разделов удаляется.

  • PURGE

    Если задано, каталог таблиц должен удалить данные раздела, пропуская папку корзины, даже если для каталога предусмотрена такая настройка. Этот параметр применим только для управляемых таблиц. Он действует только при соблюдении следующих условий:

    файловая система поддерживает папку корзины; Каталог настроен на перемещение удаленного раздела в папку Корзина. В AWS S3 папка корзины отсутствует, поэтому это предложение не применяется.

    Нет необходимости удалять файлы вручную после удаления секций.

Предложение RENAME PARTITION

Заменяет ключи раздела.

Управление секциями не поддерживается для таблиц Delta Lake.

Синтаксис

from_partition_clause RENAME TO to_partition_clause

Параметры

  • from_partition_clause

    Определение раздела, которое необходимо переименовать.

  • to_partition_clause

    Новое определение для этого раздела. Раздел с теми же ключами не должен уже существовать.

Предложение RECOVER PARTITIONS

Это предложение не относится к таблицам Delta Lake.

Указывает Azure Databricks сканировать расположение таблицы и добавлять все файлы в таблицу, которые были добавлены непосредственно в файловую систему.

Управление секциями не поддерживается для таблиц Delta Lake.

Синтаксис

RECOVER PARTITIONS

Параметры

нет

предложение PARTITIONSET LOCATION

Перемещает местоположение раздела.

Управление секциями не поддерживается для таблиц Delta Lake.

Синтаксис

PARTITION clause SET LOCATION path

Параметры

  • предложение PARTITION

    Определяет раздел, для которого будет изменено расположение.

  • LOCATION path

    path должен быть литералом STRING . Указывает новое расположение для раздела.

    Файлы в исходном расположении не будут перемещаться в новое расположение.

Примеры

См. примеры ALTER TABLE.