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


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

Azure Databricks предоставляет множество оптимизаций, поддерживая разнообразные рабочие нагрузки в лейкхаусе: от крупномасштабных ETL-процессов до интерактивных нерегламентированных запросов. Многие из этих оптимизаций происходят автоматически. Вы получаете преимущества, просто используя 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 предоставляет гарантию изоляции сериализуемой записи по умолчанию. Изменение уровня изоляции на сериализуемый может снизить пропускную способность для параллельных операций, но может потребоваться при необходимости сериализуемости чтения.
  • Индексы фильтров блум можно использовать для снижения вероятности сканирования файлов данных, которые не содержат записей, соответствующих заданному условию.