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

Predictive I/O — это набор оптимизаций Azure Databricks, которые ускоряют чтение и обновление данных:

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

Прогнозный ввод-вывод является эксклюзивным для модуля Photon в Azure Databricks. См. статью " Что такое Фотон?".

Когда применяется упреждающий ввод-вывод

Predictive I/O работает автоматически. Вы не включаете его для отдельных запросов. Преимущества:

Предиктивный ввод/вывод также вытесняет индексы фильтра Bloom. См. индексы фильтров Блум (устаревшие).

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

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

Внимание

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

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

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

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

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

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

Примечание.

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

См. векторы удаления в Databricks.

Внимание

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

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

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

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

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

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

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

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

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

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

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

Внимание

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

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