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


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

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

Примечание.

Функция настройки запросов autotune в Microsoft Fabric в настоящее время находится в предварительной версии.

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

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

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

Совет

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

  • Повторяющиеся запросы
  • Длительные запросы (те, у которых более 15 секунд выполнения)
  • Запросы API SQL Spark (исключая те, которые записываются в API удаленных рабочих машин, которые очень редки), но мы оптимизируем все запросы независимо от языка (Scala, PySpark, R, Spark SQL)

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

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

Интуиция на основе искусственного интеллекта за autotune

Функция autotune использует итеративный процесс для оптимизации производительности запросов. Она начинается с конфигурации по умолчанию и использует модель машинного обучения для оценки эффективности. Когда пользователь отправляет запрос, система извлекает сохраненные модели на основе предыдущих взаимодействий. Он создает потенциальные конфигурации вокруг параметра по умолчанию с именем centroid. Применяется лучший кандидат, прогнозируемый моделью. После выполнения запроса данные производительности отправляются в систему для уточнения модели.

Цикл обратной связи постепенно перемещает центроид в сторону оптимальных параметров. Он обновляет производительность с течением времени, минимизируя риск регрессии. Непрерывные обновления на основе запросов пользователей обеспечивают уточнение показателей производительности. Кроме того, процесс обновляет конфигурации центроидов , чтобы обеспечить переход модели к более эффективным параметрам. Это достигается путем оценки прошлых показателей производительности и их использования для руководства по будущим корректировкам. Он использует все точки данных для снижения влияния аномалий.

С точки зрения ответственного искусственного интеллекта функция Autotune включает механизмы прозрачности, предназначенные для получения информации об использовании данных и преимуществах. Безопасность и конфиденциальность соответствуют стандартам Майкрософт. Текущий мониторинг поддерживает производительность и целостность системы после запуска.

Включение autotune

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

Снимок экрана: включение автозапуска.

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

Примечание.

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

Вы можете управлять Autotune с помощью Spark Параметры для соответствующей записной книжки Spark или кода определения задания Spark. Чтобы отключить Autotune, выполните следующие команды в качестве первой ячейки (записной книжки) или строки кода (SJD).

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

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

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

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

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

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

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

Журналы

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

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

В журналах можно найти различные типы записей. Ниже приведены ключевые:

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

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

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

Назначение Autotune

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

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

Проверка Autotune

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

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

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