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

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

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

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

Примечание.

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

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

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

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

Действия по согласию на участие

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