Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Фиксации через каталог переносят координацию фиксаций из файловой системы в Unity Catalog, делая каталог единым источником достоверных данных о состоянии таблиц Delta Lake и Apache Iceberg. Это позволяет выполнять транзакции с несколькими таблицами, ускорить планирование запросов и управлять доступом во всех операциях таблицы.
Традиционные транзакции Delta Lake координируют фиксацию на уровне отдельных таблиц. Каждая таблица управляет собственным журналом транзакций и обнаружением конфликтов независимо. Перенос координации коммитов на уровень каталога позволяет организациям единообразно управлять всем доступом к Lakehouse через Unity Catalog. Он также позволяет каталогу Unity координировать фиксации в нескольких таблицах в пределах одной транзакционной границы, сохраняя ACID-гарантии Delta Lake.
Преимущества
Фиксации каталога предоставляют следующие возможности:
Транзакции, охватывающие несколько таблиц: выполнение нескольких SQL-инструкций в нескольких таблицах как одного атомарного коммита. Все изменения либо успешны вместе, либо терпят неудачу вместе. См. транзакции.
Important
Транзакции, записываемые в управляемые таблицы Iceberg каталога Unity, находятся в закрытой предварительной версии. Чтобы присоединиться к этой предварительной версии, отправьте форму регистрации на предварительный просмотр управляемых таблиц Iceberg.
Управляемый доступ: операции чтения и записи координируются с помощью каталога Unity, так что обработчики видят последнее зафиксированное состояние, и применяются политики управления.
Быстрое планирование запросов и запись: каталог Unity сообщает клиенту Delta метаданные уровня таблицы непосредственно при доступе к таблице, пропуская облачное хранилище и удаляя основной источник задержки метаданных.
Принудительные ограничения: каталог Unity проверяет или отклоняет изменения схемы и ограничения, предотвращая несовместимые обновления, которые могут нарушить целостность данных или подчиненные рабочие нагрузки.
Внешний доступ: Безопасное записывание в управляемые таблицы каталога Unity из внешних движков. Каталог Unity координирует фиксации данных, чтобы предотвратить повреждение данных и конфликты одновременности. См. как получить доступ к данным Databricks с помощью внешних систем.
Important
Эта функция доступна в бета-версии. Администраторы рабочей области могут управлять доступом к этой функции на странице "Предварительные версии ". См. статью "Управление предварительными версиями Azure Databricks".
Requirements
- Таблицы должны быть управляемыми таблицами Unity Catalog (Delta или Iceberg), включая потоковые таблицы, либо материализованными представлениями.
- Databricks Runtime 16.4 и выше требуется для чтения, записи или создания управляемых таблиц с включёнными каталожными коммитами.
- Databricks Runtime 18.0 и выше требуется для включения или отключения каталожных коммитов на существующих управляемых таблицах.
- Для чтения из потоковых таблиц или материализованных представлений, а также для записи в них при включённых фиксациях каталога требуется Databricks Runtime 17.3 или выше.
- В Spark Declarative Pipelines для чтения из потоковых таблиц или материализованных представлений с включенными каталожными коммитами, записи в них, их создания или обновления требуются бессерверные вычисления или классические вычисления с Databricks Runtime 17.3 и выше.
- Чтобы отключить фиксацию изменений в каталоге для существующих потоковых таблиц или материализованных представлений, требуется Databricks Runtime 18 LTS или более поздней версии.
Включение фиксаций каталога
Включите фиксацию изменений в каталоге для новых или существующих управляемых таблиц, потоковых таблиц и материализованных представлений.
Включить коммиты каталога для новых управляемых таблиц
Используйте свойство delta.feature.catalogManaged таблицы при создании управляемой таблицы:
CREATE TABLE sales_data (
sale_id BIGINT,
amount DECIMAL(10,2),
sale_date DATE
)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Включить коммиты каталога для существующих управляемых таблиц
Используйте ALTER TABLE, чтобы добавить коммиты каталога в существующую управляемую таблицу:
ALTER TABLE sales_data SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Important
Включение фиксаций каталога для существующей таблицы обеспечивает синхронизацию состояния таблицы с каталогом. Эта операция может занять несколько минут в таблицах с большим объемом операций записи.
Включить фиксацию изменений в каталоге для новых или существующих потоковых таблиц или материализованных представлений
Добавьте свойство delta.feature.catalogManaged таблицы в таблицу потоковой передачи или в определение материализованного представления, а затем запустите обновление. Для существующего объекта обновите его исходное определение. Функция ALTER TABLE ... SET TBLPROPERTIES не поддерживается.
Следующий пример позволяет делать каталожные коммиты для новой или существующей таблицы потоков:
CREATE OR REFRESH STREAMING TABLE streaming_sales_data
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported')
AS SELECT * FROM STREAM sales_data;
Для материализированного представления используйте то же свойство таблицы в определении CREATE OR REFRESH MATERIALIZED VIEW .
Проверьте, включены ли фиксации каталога
Чтобы проверить, включена ли фиксация изменений каталога в таблице:
DESCRIBE DETAIL sales_data;
Если этот параметр включен, catalogManaged отображается в столбце tableFeatures .
Отключить коммиты каталога
Используйте Databricks Runtime 18.0 и выше, чтобы отключить каталожные коммиты в существующей управляемой таблице.
Для существующей потоковой таблицы или материализованного представления используйте Databricks Runtime 18 LTS или более поздней версии.
См. Управление функцией удаления таблицы Delta Lake и понижение протокола таблицы.
Warning
Не отменяйте операции обновления или понижения при выполнении инструкций ALTER или DROP. Прерывание может оставить таблицу в состоянии частичного обновления или отката, что заблокирует все последующие операции чтения и записи. Чтобы вернуться, выполните соответствующую команду еще раз вместо отмены. Обратитесь в службу поддержки Databricks, если таблица будет заблокирована.
Limitations
- Вы не можете включить или отключить коммиты каталога в существующих управляемых таблицах с помощью
CREATE OR REPLACE TABLEилиREPLACE TABLE. ИспользуйтеCREATE TABLEсо свойствомdelta.feature.catalogManaged, чтобы включить эту функцию при создании управляемой таблицы, илиALTER TABLE, чтобы включить или отключить её для существующей управляемой таблицы. - Каталожные коммиты несовместимы с внешним доступом к данным в потоковых таблицах или материализованных представлениях. Чтобы использовать коммиты каталога, необходимо сначала отключить внешний доступ. См. раздел "Включение доступа к внешним данным" для потоковых таблиц и материализованных представлений.
- Таблицы, для которых включены коммиты каталога, предоставляются через OpenSharing с использованием предварительно подписанных URL-адресов вместо облачных токенов.
- Однопользовательские кластеры не могут получать доступ к потоковым таблицам с включёнными коммитами каталога.