Что такое autotune для конфигураций Apache Spark в Fabric?
Autotune автоматически настраивает конфигурацию Apache Spark для ускорения выполнения рабочей нагрузки и оптимизации общей производительности. Autotune экономит время и ресурсы по сравнению с ручной настройкой, которая требует больших усилий, ресурсов, времени и экспериментирования. Autotune использует исторические данные выполнения из рабочих нагрузок для итеративного обнаружения и применения наиболее эффективных конфигураций для определенной рабочей нагрузки.
Примечание.
Функция настройки запросов autotune в Microsoft Fabric в настоящее время находится в предварительной версии. Autotune доступна во всех рабочих регионах, но по умолчанию отключена. Его можно активировать с помощью параметра конфигурации Spark в среде или в рамках одного сеанса, включив соответствующий параметр Spark в записную книжку Spark или код определения задания Spark.
Настройка запросов
Autotune настраивает три параметра Apache Spark для каждого запроса отдельно:
spark.sql.shuffle.partitions
— задает количество секций для перетасовки данных во время объединения или агрегирования. Значение по умолчанию — 200.spark.sql.autoBroadcastJoinThreshold
— задает максимальный размер таблицы в байтах, который передается всем рабочим узлам при выполнении операции соединения. Значение по умолчанию — 10 МБ.spark.sql.files.maxPartitionBytes
— определяет максимальное количество байтов для упаковки в одну секцию при чтении файлов. Работает для источников на основе файлов Parquet, JSON и ORC. Значение по умолчанию — 128 МБ.
Совет
Настройка запроса Autotune проверяет отдельные запросы и создает отдельную модель машинного обучения для каждого запроса. Он специально предназначен для:
- Повторяющиеся запросы
- Длительные запросы (те, у которых более 15 секунд выполнения)
- Запросы API SQL Apache Spark (исключая те, которые записываются в API RDD, которые очень редки), но мы оптимизируем все запросы независимо от языка (Scala, PySpark, R, Spark SQL)
Эта функция совместима с записными книжками, определениями заданий Apache Spark и конвейерами. Преимущества зависят от сложности запроса, используемых методов и структуры. Обширное тестирование показало, что наибольшие преимущества реализованы с помощью запросов, связанных с анализом поисковых данных, такими как чтение данных, выполнение соединений, агрегирования и сортировка.
Интуиция на основе искусственного интеллекта за 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 легко интегрируется с автомасштабированием независимо от его конфигурации.
Вы можете включить автоматическую настройку в рамках одного сеанса, включив соответствующий параметр Spark в записную книжку Spark или код определения задания Spark.
%%sql
SET spark.ms.autotune.enabled=TRUE
Вы можете управлять autotune с помощью параметров Spark для соответствующей записной книжки Spark или кода определения задания Spark. Чтобы отключить Autotune, выполните следующие команды в качестве первой ячейки (записной книжки) или строки кода (SJD).
%%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].
В журналах можно найти различные типы записей. Ниже приведены ключевые:
Состояние | 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.
- Соблюдение строгих стандартов безопасности и конфиденциальности для защиты данных пользователей.
Пользовательские данные используются исключительно для повышения производительности рабочей нагрузки с надежной защитой, чтобы предотвратить неправильное использование или воздействие конфиденциальной информации.