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


Что такое прогнозный ввод-вывод?

Прогнозный ввод-вывод — это коллекция оптимизаций Azure Databricks, которые повышают производительность взаимодействия с данными. Возможности прогнозного ввода-вывода группируются в следующие категории:

  • Ускорение чтения сокращает время, необходимое для сканирования и чтения данных.
  • Ускорение обновлений сокращает объем данных, которые необходимо перезаписать во время обновлений, удалений и слияний.

Прогнозный ввод-вывод является эксклюзивным для модуля Photon в Azure Databricks.

Использование прогнозного ввода-вывода для ускорения операций чтения

Прогнозный ввод-вывод используется для ускорения сканирования и фильтрации данных для всех операций с поддерживаемыми типами вычислений.

Внимание

Прогнозные операции чтения ввода-вывода поддерживаются бессерверными и профессиональными типами хранилищ SQL, а также кластерами с ускорением Photon под управлением Databricks Runtime 11.3 LTS и более поздних версий.

Прогнозный ввод-вывод улучшает производительность сканирования, применяя методы глубокого обучения для выполнения следующих действий:

  • Определите наиболее эффективный шаблон доступа для чтения данных и сканирование только необходимых данных.
  • Исключите декодирование столбцов и строк, которые не требуются для создания результатов запроса.
  • Вычислите вероятности критериев поиска в выборочных запросах, соответствующих строке. При выполнении запросов мы используем эти вероятности для прогнозирования того, где будет происходить следующая строка сопоставления, и только считывает эти данные из облачного хранилища.

Использование прогнозного ввода-вывода для ускорения обновлений

Прогнозные операции ввода-вывода для обновлений используются автоматически для всех таблиц с векторами удаления, включенными с помощью следующих типов вычислений с поддержкой Photon:

  • Бессерверные хранилища SQL.
  • Склады PRO SQL.
  • Кластеры под управлением Databricks Runtime 14.0 и более поздних версий.

Примечание.

Поддержка прогнозных операций ввода-вывода для обновлений присутствует в Databricks Runtime 12.2 LTS и выше, но Databricks рекомендует использовать 14.0 и выше для оптимальной производительности.

См. раздел " Что такое векторы удаления?".

Внимание

Параметр администратора рабочей области определяет, включены ли векторы удаления для новых таблиц Delta. См. векторы автоматического включения удаления.

Вы можете включить поддержку векторов удаления в таблице Delta Lake, задав свойство таблицы Delta Lake. Векторы удаления можно включить во время создания таблицы или изменить существующую таблицу, как показано в следующих примерах:

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Предупреждение

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

Список клиентов, поддерживающих векторы удаления, см. в разделе "Совместимость с клиентами Delta".

В Databricks Runtime 14.1 и более поздних версиях можно удалить функцию таблицы векторов удаления, чтобы обеспечить совместимость с другими клиентами Delta. См. сведения о функциях таблицы Drop Delta.

Прогнозный ввод-вывод использует векторы удаления для ускорения обновлений путем уменьшения частоты полного перезаписи файлов во время изменения данных в таблицах Delta. Прогнозные операции ввода-вывода оптимизируют DELETE, MERGEа также UPDATE операции.

Вместо перезаписи всех записей в файле данных при обновлении или удалении любой записи прогнозный ввод-вывод использует векторы удаления для указания того, что записи были удалены из целевых файлов данных. Дополнительные файлы данных используются для указания обновлений.

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

Внимание

Прогнозные обновления ввода-вывода используют все ограничения с векторами удаления. В Databricks Runtime 12.2 LTS и больше существуют следующие ограничения:

  • Разностный общий доступ не поддерживается в таблицах с включенными векторами удаления.
  • Невозможно создать файл манифеста для таблицы с векторами удаления. Выполните REORG TABLE ... APPLY (PURGE) и убедитесь, что параллельные операции записи не выполняются для создания манифеста.
  • Невозможно добавочно создавать файлы манифеста для таблицы с включенными векторами удаления.