Прогнозная оптимизация для управляемых таблиц каталога 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');
Где выполняется прогнозная оптимизация?
Прогнозная оптимизация определяет таблицы, которые будут использовать ANALYZE
OPTIMIZE
операции и 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 использует этот субъект-службу для выполнения запрошенных операций обслуживания. См. статью Управление субъектами-службами.
Включение прогнозной оптимизации для учетной записи
Администратор учетной записи должен выполнить следующие действия, чтобы включить прогнозную оптимизацию для всех хранилищ метаданных в учетной записи:
- Доступ к консоли учетных записей.
- Перейдите к параметрам, а затем включите функцию.
- Выберите " Включена" рядом с прогнозной оптимизацией.
Примечание.
Хранилища метаданных в регионах, которые не поддерживают прогнозную оптимизацию, не включены.
Включение или отключение прогнозной оптимизации для каталога или схемы
Прогнозная оптимизация использует модель наследования. При включении каталога схемы наследуют свойство. Таблицы в включенной схеме наследуют прогнозную оптимизацию. Чтобы переопределить это поведение наследования, можно явно отключить прогнозную оптимизацию для каталога или схемы.
Примечание.
Вы можете отключить прогнозную оптимизацию на уровне каталога или схемы, прежде чем включить ее на уровне учетной записи. Если в учетной записи включена прогнозная оптимизация, она блокируется для таблиц в этих объектах.
Используйте следующий синтаксис, чтобы включить или отключить прогнозную оптимизацию:
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 дней. Сведения о настройке хранения данных для запросов на поездки по времени.
Прогнозная оптимизация не выполняет операции обслуживания в следующих таблицах:
- Таблицы, загруженные в рабочую область как получатели разностного общего доступа.
- Внешние таблицы.
- Материализованные представления. См. статью "Использование материализованных представлений" в Databricks SQL.
- Потоковая передача таблиц. См. сведения о загрузке данных с помощью потоковых таблиц в Databricks SQL.