Коммиты реестра

Фиксации через каталог переносят координацию фиксаций из файловой системы в 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-адресов вместо облачных токенов.
  • Однопользовательские кластеры не могут получать доступ к потоковым таблицам с включёнными коммитами каталога.

Дополнительные ресурсы