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


Прогнозная оптимизация для управляемых таблиц каталога Unity

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

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

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

  • Определяет таблицы, которые требуют обслуживания, и ставит эти операции в очередь для последующего выполнения.
  • Собирает статистику при записи данных в управляемую таблицу.

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

Databricks рекомендует использовать автоматическую кластеризацию жидкости и прогнозную оптимизацию для всех управляемых таблиц каталога Unity. Эти функции обеспечивают интеллектуальную оптимизацию макета данных на основе шаблонов использования данных. См. Использование кластеризации жидкости для таблиц Delta.

Внимание

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

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

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

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

Операция Описание
OPTIMIZE (1) Активирует добавочную кластеризацию для включенных таблиц. См. Использование кластеризации жидкости для таблиц Delta.
Повышает производительность запросов, оптимизируя размеры файлов. См. раздел Оптимизация макета файла данных.
VACUUM Сокращает затраты на хранилище путем удаления файлов данных, на которые больше не ссылается таблица. См. Удаление неиспользуемых файлов данных с помощью вакуума.
ANALYZE Активирует добавочное обновление статистики для повышения производительности запросов. См. ANALYZE TABLE.

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

Если включена автоматическая кластеризация жидкости, прогнозная оптимизация может выбрать новые ключи кластеризации перед кластеризированием данных. См. Использование кластеризации жидкости для таблиц Delta.

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

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

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

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

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

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

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

  • Рабочая область Azure Databricks должна находиться в плане "Премиум" в регионе, поддерживающем прогнозную оптимизацию. См. функции с ограниченной региональной доступностью.
  • При включении прогнозной оптимизации необходимо использовать хранилища SQL или Databricks Runtime 12.2 LTS или более поздней версии.
  • Поддерживаются только управляемые таблицы каталога Unity.

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

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

Примечание.

Если учетная запись была создана после 11 ноября 2024 г., прогнозная оптимизация включена по умолчанию для вашей учетной записи.

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

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

Примечание.

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

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

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

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

Примечание.

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

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

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

Примечание.

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

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

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

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

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

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

DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

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

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

Если системная таблица помечает операции как завершившиеся сбоем с FAILED: PRIVATE_LINK_SETUP_ERROR, возможно, вы неправильно настроили частную связь для бессерверных вычислений. См. Настройка частного подключения в бессерверных вычислениях.

Ограничения

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

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

Для таблиц с длительностью хранения удаленных файлов (delta.deletedFileRetentionDuration), настроенной ниже значения по умолчанию 7 дней, прогнозная оптимизация запускается VACUUM с длительностью хранения, указанной как 7 дней. См. Настройка хранения данных для запросов путешествий во времени.

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