Бөлісу құралы:


Что такое автотюнинг для конфигураций Apache Spark в Fabric?

Autotune автоматически настраивает конфигурации Apache Spark, чтобы сократить время выполнения рабочей нагрузки и повысить производительность. Это помогает избежать ручной настройки, которая обычно требует повторных проб и ошибок. Autotune использует исторические данные выполнения из рабочих нагрузок для итеративного обнаружения и применения эффективных параметров для каждой рабочей нагрузки.

Примечание.

Настройка запросов Autotune в Microsoft Fabric сейчас доступна в предварительной версии. Он доступен во всех рабочих регионах, но он отключен по умолчанию. Включите его в конфигурации Spark среды или для одного сеанса в записной книжке или коде определения задания Spark.

Параметры конфигурации и требования по умолчанию

  • Поведение по умолчанию: автозапуск по умолчаниюотключен .
  • При отключении не требуется настройка. Если вы не включите autotune, Spark использует его стандартное поведение конфигурации.
  • Необходимая настройка для использования autotune: установите spark.ms.autotune.enabled=true один из вариантов:

Настройка запросов

Autotune настраивает эти три параметра Apache Spark для каждого запроса:

  • spark.sql.shuffle.partitions: задает количество секций для перемещения данных во время соединений или агрегирования. По умолчанию — 200.
  • spark.sql.autoBroadcastJoinThreshold: задает максимальный размер таблицы в байтах для трансляции на рабочие узлы во время соединения. По умолчанию — 10 MB.
  • spark.sql.files.maxPartitionBytes: задает максимальное количество байтов для упаковки в одну секцию при чтении файлов. Применяется к источникам файлов Parquet, JSON и ORC. По умолчанию — 128 MB.

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

  • Повторяющиеся запросы
  • Длительные запросы (более 15 секунд)
  • Запросы API SQL Apache Spark (не API RDD)

Вы можете использовать autotune с записными книжками, определениями заданий Spark и конвейерами. Преимущество зависит от сложности запроса и фигуры данных. При тестировании наибольшие улучшения наблюдаются в исследовательском анализе данных, таком как операции чтения, объединения, агрегации и сортировки.

Снимок экрана: время выполнения с включенной функцией autotune.

Как работает autotune

Autotune использует цикл итеративной оптимизации:

  1. Начните со значений конфигурации Spark по умолчанию.
  2. Создайте конфигурации кандидатов вокруг базового плана (центроид).
  3. Предсказать лучшего кандидата, используя модель, обученную на основе предыдущих запусков.
  4. Примените кандидата и выполните запрос.
  5. Результаты выполнения возвращаются обратно в модель.

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

Включите автотюнер

Autotune доступна во всех рабочих регионах, но она отключена по умолчанию. Чтобы включить его на уровне среды, задайте свойство spark.ms.autotune.enabled=true Spark в новой или существующей среде. Все ноутбуки и задания, использующие это окружение, наследуют настройки этого окружения.

Снимок экрана для включения автонастройки.

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

Примечание.

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

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

Включите autotune для одного сеанса

%%sql
SET spark.ms.autotune.enabled=TRUE

Отключение автозапуска для одного сеанса

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

%%sql 
SET spark.ms.autotune.enabled=FALSE 

Пример использования

При выполнении запроса Apache Spark autotune создает модель для этой фигуры запроса и изучает лучшие параметры с течением времени. Например, начните с этого запроса фильтра:

%%pyspark
df.filter(df.country == "country-A")

Autotune учится из этого запуска. Если позже изменить только значение фильтра, фигура запроса остается аналогичной:

%%pyspark
df.filter(df.country == "country-B")

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

Логи

Для каждого запроса autotune вычисляет рекомендуемые значения для трех поддерживаемых конфигураций Spark. Чтобы проверить рекомендации, проверьте журналы драйверов для записей, начинающихся с [Autotune].

Снимок экрана: журналы autotune в Центре мониторинга.

Распространенные состояния журнала включают:

Состояние Описание
AUTOTUNE_DISABLED Пропускается. Autotune отключен, поэтому сбор данных телеметрии и оптимизация не применяются.
QUERY_TUNING_DISABLED Пропускается. Настройка запроса отключена.
QUERY_PATTERN_NOT_MATCH Пропускается. Шаблон запросов не соответствует поддерживаемым типам запросов только для чтения.
QUERY_DURATION_TOO_SHORT Пропускается. Запрос выполнялся меньше 15 секунд, что недостаточно для эффективной настройки.
QUERY_TUNING_SUCCEED Успех. Были выполнены настройка запросов и применены оптимизированные конфигурации Spark.

Примечание о прозрачности

В соответствии со стандартом ответственного ИИ в этом разделе объясняется, как используется и проверяется автотюн.

Назначение автотюна

Autotune предназначен для повышения эффективности рабочей нагрузки Apache Spark для специалистов по данным. Оно:

  • Автоматически настраивает конфигурации Apache Spark для уменьшения времени выполнения.
  • Сокращает усилия по настройке вручную.
  • Использует данные исторической рабочей нагрузки для итеративного уточнения вариантов конфигурации.

Проверка автотюнинга

Autotune проходит обширную проверку, чтобы обеспечить эффективность и безопасность:

  • Использует строгие тесты в различных рабочих нагрузках Spark для проверки эффективности алгоритма настройки.
  • Тесты по стандартным методам оптимизации Spark для демонстрации преимуществ производительности.
  • Включает в себя реальные примеры, чтобы показать практическую ценность.
  • Следует строгим стандартам безопасности и конфиденциальности для защиты данных пользователей.

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