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

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