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

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

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

Внимание

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

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

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

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

Операция Description
OPTIMIZE(1) Активирует добавочную кластеризацию для включенных таблиц. См. статью Использование "жидкой" кластеризации для таблиц Delta.

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

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

(2) Прогнозная оптимизация с ANALYZE общедоступной предварительной версией. Она включает в себя интеллектуальную коллекцию стастичных объектов во время записи. Используйте эту форму для регистрации в общедоступной предварительной версии. Во время начальной общедоступной предварительной версии ANALYZE команды могут выполняться в таблицах размером до 1 ТБ данных и 500 столбцов или меньше.

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

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

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

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

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

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

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

  • Рабочая область 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 предоставляет системную таблицу для отслеживания истории операций прогнозной оптимизации. См . справочник по системной таблице прогнозной оптимизации.

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

Ограничения

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

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

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

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