Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Эта документация выведена из обращения и может больше не обновляться. Продукты, службы или технологии, упомянутые в этом контенте, больше не поддерживаются. См. Управление функцией удаления таблицы Delta Lake и понижение протокола таблицы.
В этой статье описано поведение общедоступной предварительной версии для удаления функций таблицы Delta Lake, доступных начиная с Databricks Runtime 14.3 LTS. Databricks рекомендует использовать общедоступную функцию в Databricks Runtime 16.3 и выше, которая заменяет устаревшее поведение. См. Управление функцией удаления таблицы Delta Lake и понижение протокола таблицы.
Azure Databricks обеспечивает ограниченную поддержку удаления функций таблицы. Удаление функции таблицы включает следующие этапы:
- Отключите свойства таблицы, использующие функцию таблицы.
- Удалите все следы функции таблицы из файлов данных, поддерживающих таблицу.
- Удалите записи транзакций, использующие функцию таблицы из журнала транзакций.
- Понизить протокол таблицы.
Это важно
Все DROP FEATURE
операции конфликтуют со всеми параллельными операциями записи.
Потоковое чтение завершается сбоем при обнаружении коммита, который изменяет метаданные таблицы. Чтобы сохранить поток, необходимо перезапустить его. Рекомендуемые методы см. в разделе "Производственные соображения для структурированной потоковой передачи".
Как удалить функцию разностной таблицы?
Чтобы удалить возможность таблицы Delta, выполните команду ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY]
. См. ALTER TABLE.
Необходимо использовать Databricks Runtime 14.3 LTS или более поздней версии и обладать MODIFY
привилегиями для целевой таблицы Delta.
Какие функции таблицы Delta можно удалить?
Вы можете удалить следующие функции таблицы Delta:
-
checkConstraints
. См. Ограничения в Azure Databricks. -
collations-preview
. См. поддержку сортировки для Delta Lake. -
columnMapping
. См. как переименовывать и удалять столбцы с использованием сопоставления столбцов в Delta Lake. -
deletionVectors
. См. раздел " Что такое векторы удаления?". -
typeWidening-preview
. См. расширение типа. -
v2Checkpoint
. См. Совместимость для таблиц с жидкой кластеризацией.
Вы не можете опустить другие функции таблицы Delta .
Это важно
Некоторые функции Delta Lake позволяют использовать несколько функций таблицы. Некоторые функции таблицы зависят от других функций таблицы и могут блокировать удаление зависимых функций таблицы. Поскольку некоторые функции таблицы не могут быть удалены, это означает, что активирование некоторых функций Delta Lake невозможно откатить.
Databricks рекомендует всегда тестировать зависимые рабочие нагрузки и системы для совместимости с новыми функциями, прежде чем включать функции, которые обновляют протоколы чтения или записи для рабочих данных.
Включение функций таблицы для удаления устаревших функций
Примечание.
В этом разделе описывается шаблон, который требуется только в Databricks Runtime 16.0 и ниже.
Для команды DROP FEATURE
требуются версии протокола, поддерживающие чтение и запись функции таблицы. Функции delta, такие как columnMapping
и checkConstraints
поддерживаются в более ранних версиях протокола. В зависимости от других функций, включенных в таблице, может потребоваться обновить версии протокола, прежде чем удалить эти функции.
Для обновления версий средства чтения таблиц и записи можно использовать следующую команду, которая позволяет удалить сопоставление столбцов и снизить уровень протокола:
ALTER TABLE <table-name> SET TBLPROPERTIES (
'delta.minReaderVersion' = '3',
'delta.minWriterVersion' = '7'
)
Каким образом удаляются особенности таблицы Delta?
Поскольку функции таблицы Delta влияют на способ чтения и записи таблицы, они должны полностью отсутствовать в журнале транзакций для полного удаления. Особенности удаления компонентов зависят от функции, но в следующем разделе представлен общий обзор.
Отключение функции осуществляется в два этапа и требует времени на завершение.
Шаг 1. Подготовка к удалению функции таблицы
На первом шаге необходимо подготовиться к удалению функции таблицы. Ниже описано, что происходит на этом шаге:
- Выполните команду
DROP FEATURE
. - Параметры таблицы, которые специально включают функцию таблицы, имеют значения, установленные для отключения этой функции.
- Свойства таблицы, управляющие поведением, связанными с удаленной функцией, имеют параметры по умолчанию, заданные до появления функции.
- При необходимости файлы данных и метаданных перезаписываются, учитывая обновленные свойства таблицы.
- Команда завершает работу и возвращает сообщение об ошибке, информирующее о том, что необходимо ждать 24 часов, чтобы продолжить удаление компонентов.
После первого отключения функции можно продолжить запись в целевую таблицу перед завершением понижения уровня протокола, но не удается использовать функцию таблицы, которая вы удаляете.
Примечание.
Если вы покидаете таблицу в этом состоянии, операции с таблицей не используют функцию таблицы, но протокол по-прежнему поддерживает функцию таблицы. Пока не завершите окончательный шаг понижения, таблица не может читаться клиентами Delta, которые не понимают функцию таблицы.
Шаг 2. Понижение уровня протокола и удаление функции таблицы
На втором шаге вы сокращаете и удаляете всю историю транзакций, связанную с функцией. Это позволяет удалить функцию таблицы и снизить уровень протокола.
- По истечении не менее 24 часов повторите команду
DROP FEATURE
с использованием параметраTRUNCATE HISTORY
. - Клиент подтверждает, что нет транзакций в пределах указанного порога хранения, использующих функцию таблицы, а затем сокращает историю таблицы до этого порога.
- Протокол понижен, отключена поддержка таблиц.
- Если функции таблицы, присутствующих в таблице, могут быть представлены устаревшей версией протокола,
minReaderVersion
иminWriterVersion
для таблицы будут понижены до самой низкой версии, которая поддерживает именно все остальные функции, используемые в таблице Delta.
Это важно
При выполнении ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY
удаляются все данные журнала транзакций старше 24 часов. После удаления функции Delta-таблицы у вас нет доступа к истории таблиц или возможности путешествия во времени.
См. сведения о совместимости функций Delta Lake и протоколах.