Прогнозная оптимизация для Delta Lake

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

Прогнозная оптимизация удаляет необходимость вручную управлять операциями обслуживания для таблиц Delta в Azure Databricks.

При включенной прогнозной оптимизации Azure Databricks автоматически определяет таблицы, которые будут использовать операции обслуживания и запускать их для пользователя. Операции обслуживания выполняются только по мере необходимости, устраняя как ненужные запуски для операций обслуживания, так и нагрузку, связанную с отслеживанием и устранением неполадок производительности.

Какие операции выполняют прогнозную оптимизацию?

Прогнозная оптимизация выполняет следующие операции автоматически для включенных таблиц Delta:

Операция Description
OPTIMIZE Повышает производительность запросов, оптимизируя размеры файлов. См. статью Сжатие файлов данных путем оптимизации в Delta Lake.
VACUUM Сокращает затраты на хранилище путем удаления файлов данных, на которые больше не ссылается таблица. См. раздел "Удаление неиспользуемых файлов данных с помощью вакуума".

Примечание.

OPTIMIZE не выполняется ZORDER при выполнении с прогнозной оптимизацией.

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

Окно хранения для VACUUM команды определяется свойством delta.deletedFileRetentionDuration таблицы, которое по умолчанию составляет 7 дней. Это означает, что VACUUM файлы данных больше не ссылаются на версию таблицы Delta за последние 7 дней. Если вы хотите хранить данные дольше (например, для поддержки перемещения по времени в течение длительного времени), необходимо задать это свойство таблицы соответствующим образом, прежде чем включить прогнозную оптимизацию, как показано в следующем примере:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');

Где выполняется прогнозная оптимизация?

Прогнозная оптимизация определяет таблицы, которые будут использовать OPTIMIZE и операции и VACUUM очереди для выполнения с помощью вычислений заданий. Ваша учетная запись взимается за вычислительные ресурсы, связанные с этими рабочими нагрузками, с помощью номера SKU, относящийся к управляемым службам Databricks. См. цены на управляемые службы Databricks. Azure Databricks предоставляет системные таблицы для наблюдения за операциями прогнозной оптимизации, затратами и воздействием. См. статью "Использование системных таблиц для отслеживания прогнозной оптимизации".

Примечание.

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

Предварительные требования для прогнозной оптимизации

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

  • Рабочая область Azure Databricks должна находиться в плане "Премиум" в регионе, поддерживающем прогнозную оптимизацию. Ознакомьтесь с регионами Azure Databricks.

  • При включении прогнозной оптимизации необходимо использовать хранилища SQL или Databricks Runtime 12.2 LTS или более поздней версии.

  • Поддерживаются только управляемые таблицы каталога Unity.

  • Если для учетных записей хранения требуется частное подключение, необходимо настроить бессерверное частное подключение. См. раздел "Настройка частного подключения из бессерверных вычислений".

Включение прогнозной оптимизации

Необходимо включить прогнозную оптимизацию на уровне учетной записи.

Для включения или отключения прогнозной оптимизации на указанном уровне необходимо иметь следующие привилегии:

Объект каталога Unity Privilege
Учетная запись Администратор учетной записи
Каталог Владелец каталога
Схема Владелец схемы

Примечание.

При первом включении прогнозной оптимизации Azure Databricks автоматически создает субъект-службу в учетной записи Azure Databricks. Azure Databricks использует этот субъект-службу для выполнения запрошенных операций обслуживания. См. статью Управление субъектами-службами.

Включение прогнозной оптимизации для учетной записи

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

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

Примечание.

Хранилища метаданных в регионах, которые не поддерживают прогнозную оптимизацию, не включены.

Включение или отключение прогнозной оптимизации для каталога или схемы

Прогнозная оптимизация использует модель наследования. При включении каталога схемы наследуют свойство. Таблицы в включенной схеме наследуют прогнозную оптимизацию. Чтобы переопределить это поведение наследования, можно явно отключить прогнозную оптимизацию для каталога или схемы.

Примечание.

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

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

ALTER CATALOG [catalog_name] {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;

Проверьте, включена ли прогнозная оптимизация

Поле Predictive Optimization является свойством каталога Unity, которое содержит сведения о включенной прогнозной оптимизации. Если прогнозная оптимизация наследуется от родительского объекта, это указано в значении поля.

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

DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

Использование системных таблиц для отслеживания прогнозной оптимизации

Azure Databricks предоставляет системную таблицу для отслеживания истории операций прогнозной оптимизации. См . справочник по системной таблице прогнозной оптимизации.

Ограничения

Прогнозная оптимизация недоступна во всех регионах. Ознакомьтесь с регионами Azure Databricks.

Прогнозная оптимизация не выполняет OPTIMIZE команды в таблицах, использующих ликвидную кластеризация или Z-порядок.

Прогнозная оптимизация не выполняет операции обслуживания в следующих таблицах: