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


Рекомендации по оптимизации в Azure Databricks

Azure Databricks предоставляет множество оптимизаций, поддерживая разнообразные рабочие нагрузки в гибридном решении "хранилище и озеро данных": от крупномасштабной обработки для извлечения, преобразования и загрузки данных до интерактивных нерегламентированных запросов. Многие из этих оптимизаций происходят автоматически. Вы получаете преимущества, просто используя Azure Databricks. Кроме того, для большинства функций среды выполнения Databricks требуется Delta Lake, используемый по умолчанию для создания таблиц в Azure Databricks.

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

Улучшения производительности Databricks Runtime

Примечание.

Применяйте последнюю версию Databricks Runtime для использования новейших улучшений производительности. Все описанные здесь расширения функциональности включены по умолчанию в Databricks Runtime 10.4 LTS и более поздних версий.

  • Кеширование дисков ускоряет повторяющиеся операции чтения файлов данных Parquet путем загрузки данных на тома дисков, подключенных к вычислительным кластерам.
  • Динамическое удаление файлов повышает производительность запросов, пропуская каталоги, которые не содержат файлы данных, соответствующие предикатам запросов.
  • Объединение с низким перемешиванием сокращает количество файлов данных, перезаписываемых операциями MERGE, и снижает потребность в повторной очистке кластеров ZORDER.
  • Apache Spark 3.0 представил адаптивное выполнение запросов, которое обеспечивает повышенную производительность для многих операций.

Рекомендации Databricks по повышению производительности

  • Вы можете клонировать таблицы в Azure Databricks, чтобы создавать полные или неполные копии наборов исходных данных.
  • Оптимизатор на основе затрат ускоряет производительность запросов за счет использования статистики таблицы.
  • С помощью Spark SQL можно взаимодействовать со строками JSON без синтаксического анализа строк.
  • Функции более высокого порядка обеспечивают встроенную оптимизированную производительность для многих операций, которые не имеют общих операторов Spark. Функции более высокого порядка обеспечивают преимущество производительности по сравнению с определяемыми пользователем функциями.
  • Azure Databricks предоставляет ряд встроенных операторов и специальный синтаксис для работы со сложными типами данных, включая массивы, структуры и строки JSON.
  • Параметры можно настроить вручную для соединений диапазона. См . статью "Оптимизация соединения диапазона".

Реакция на события согласия

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