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


Среда выполнения Apache Spark в Fabric

Среда выполнения Microsoft Fabric — это интегрированная с Azure платформа на основе Apache Spark, которая обеспечивает выполнение и управление проектированием и обработкой и анализом данных. Он объединяет ключевые компоненты как из внутренних, так и из источников с открытым кодом, предоставляя клиентам комплексное решение. Для простоты мы ссылаемся на среду выполнения Microsoft Fabric, на базе Apache Spark как среду выполнения Fabric.

Основные компоненты среды выполнения Fabric:

  • Apache Spark — мощная распределенная библиотека распределенных вычислений с открытым кодом, которая позволяет выполнять крупномасштабные задачи обработки и анализа данных. Apache Spark предоставляет универсальную и высокопроизводительную платформу для разработки и обработки и анализа данных.

  • Delta Lake — слой хранения с открытым исходным кодом, который предоставляет транзакции ACID и другие функции надежности данных в Apache Spark. Интегрированная в среду выполнения Fabric Delta Lake улучшает возможности обработки данных и обеспечивает согласованность данных в нескольких параллельных операциях.

  • Модуль машинного выполнения — это преобразующее улучшение рабочих нагрузок Apache Spark, что значительно повышает производительность путем непосредственного выполнения запросов Spark в инфраструктуре Lakehouse. Интегрированная система без изменений в коде и позволяет избежать блокировки поставщика, поддерживая форматы Parquet и Delta в API Apache Spark в среде выполнения 1.3 (Spark 3.5). Этот механизм повышает скорость запросов до четырех раз быстрее, чем традиционная OSS Spark, как показано в тестовом тесте TPC-DS 1TB, снижении эксплуатационных затрат и повышении эффективности в различных задачах обработки данных, включая прием данных, ETL, аналитику и интерактивные запросы. Построенная на Meta Velox и Intel Apache Gluten, эта технология оптимизирует использование ресурсов при работе с различными сценариями обработки данных.

  • Пакеты уровня по умолчанию для Java/Scala, Python и R — пакеты, поддерживающие различные языки программирования и среды. Эти пакеты устанавливаются и настраиваются автоматически, позволяя разработчикам применять предпочитаемые языки программирования для задач обработки данных.

  • Среда выполнения Microsoft Fabric основана на надежной операционной системе с открытым исходным кодом, обеспечивая совместимость с различными конфигурациями оборудования и требованиями к системе.

Ниже вы найдете комплексное сравнение ключевых компонентов, включая версии Apache Spark, поддерживаемые операционные системы, Java, Scala, Python, Delta Lake и R для сред выполнения на основе Apache Spark на платформе Microsoft Fabric.

Совет

Всегда используйте последнюю общедоступную версию среды выполнения (GA) для рабочей рабочей нагрузки, которая в настоящее время является средой выполнения 1.3.

Компонент Рантайм 1.2 Среда выполнения 1.3 Среда выполнения 2.0
этап выпуска EOSA ГА Экспериментальный (предварительная версия)
Версия Apache Spark 3.4.1 3.5.5 4.0.0
Операционная система Mariner 2.0 Mariner 2.0 Маринр 3.0
Версия Java 11 11 двадцать один
Версия Scala 2.12.17 2.12.17 2.13.16
Версия Python 3,10 3.11 3.12.11
Версия Delta Lake 2.4.0 3.2 4.0.0

Посетите среду выполнения 1.2, среду выполнения 1.3 или среду выполнения 2.0 , чтобы изучить сведения, новые функции, улучшения и сценарии миграции для конкретной версии среды выполнения.

Оптимизация структуры

В Microsoft Fabric как подсистема Spark, так и реализации Delta Lake включают оптимизацию и функции, зависящие от платформы. Эти функции предназначены для использования собственных интеграции на платформе. Важно отметить, что все эти функции можно отключить для достижения стандартных функций Spark и Delta Lake. Среда выполнения Fabric для Apache Spark включает:

  • Полная версия Apache Spark с открытым исходным кодом.
  • Коллекция почти 100 встроенных и уникальных улучшений производительности запросов. Эти улучшения включают такие функции, как кэширование секций (включение кэша секций Файловой системы для уменьшения вызовов хранилища метаданных) и перекрестное присоединение к проекции скалярного подзапроса.
  • Встроенный интеллектуальный кэш.

В среде выполнения Fabric для Apache Spark и Delta Lake существуют собственные возможности записи, которые служат двум ключевым целям:

  • Они предлагают разницу в производительности для написания рабочих нагрузок, оптимизируя процесс написания.
  • Они по умолчанию выполняют оптимизацию V-Order файлов Delta Parquet. Оптимизация delta Lake V-Order имеет решающее значение для обеспечения высокой производительности чтения во всех ядрах Fabric. Чтобы получить более глубокое представление о том, как он работает и как управлять им, ознакомьтесь с выделенной статьей по оптимизации таблиц Delta Lake и V-Order.

Поддержка нескольких сред выполнения

Fabric поддерживает несколько сред выполнения, предлагая пользователям гибкость для простого переключения между ними, минимизируя риск несовместимости или нарушений.

По умолчанию все новые рабочие области используют последнюю GA версию среды выполнения, являющуюся в данный момент Версией 1.3.

Чтобы изменить версию среды выполнения на уровне рабочей области, перейдите к параметрам рабочей области >Data Engineering/Science>параметрах Spark. На вкладке среды выберите нужную версию среды выполнения из доступных параметров. Нажмите кнопку Сохранить, чтобы подтвердить выбор.

Снимок экрана: выбор версии среды выполнения для параметров рабочей области.

После внесения этого изменения все системные элементы в рабочей области, включая Lakehouses, SJD и записные книжки, будут работать с использованием новой выбранной версии среды выполнения на уровне рабочей области, начиная со следующего сеанса Spark. Если вы используете записную книжку с существующим сеансом для задания или любого действия, связанного с lakehouse, то сеанс Spark продолжается как есть. Однако начиная с следующего сеанса или задания будет применена выбранная версия среды выполнения.

Кроме того, чтобы изменить среду выполнения на уровне элемента Environment, создайте новый элемент среды или откройте уже существующую, в раскрывающемся списке среды выполнения выберите нужную версию среды выполнения из доступных параметров, затем выберите Save и сохраните Publish ваши изменения. Затем вы можете использовать этот Environment элемент с вашим Notebook или Spark Job Definition.

Снимок экрана, показывающий, где выбрать версию среды выполнения для элемента «Среда».

Последствия изменений среды выполнения в параметрах Spark

Как правило, мы стремимся перенести все параметры Spark. Однако если мы определим, что параметр Spark не совместим с средой выполнения B, мы создадим предупреждение и воздержаемся от реализации параметра.

Изменение среды выполнения параметров Spark.

Последствия изменений среды выполнения при управлении библиотеками

Как правило, наш подход заключается в переносе всех библиотек из среды выполнения A в среду выполнения B, включая общедоступные и пользовательские среды выполнения. Если версии Python и R остаются неизменными, библиотеки должны работать должным образом. Однако для Jars существует значительная вероятность того, что они могут не работать из-за изменений зависимостей, а также других факторов, таких как изменения в Scala, Java, Spark и операционной системе.

Пользователь отвечает за обновление или замену библиотек, которые не работают с средой выполнения B. Если возникает конфликт, то есть среда выполнения B включает библиотеку, изначально определенную в среде выполнения A, наша система управления библиотекой пытается создать необходимую зависимость для среды выполнения B на основе параметров пользователя. Однако процесс сборки прерывается, если возникает конфликт. В журнале ошибок пользователи могут видеть, какие библиотеки вызывают конфликты и вносить изменения в их версии или спецификации.

Изменение среды выполнения управления библиотеками.

Обновление протокола Delta Lake

Функции Delta Lake всегда являются обратно совместимыми, гарантируя, что таблицы, созданные в более низкой версии Delta Lake, могут легко взаимодействовать с более высокими версиями. Однако, если некоторые функции включены (например, используя метод delta.upgradeTableProtocol(minReaderVersion, minWriterVersion)), совместимость с более низкими версиями Delta Lake может быть скомпрометирована. В таких случаях важно изменить рабочие нагрузки, ссылающиеся на обновленные таблицы, чтобы выровнять версию Delta Lake, которая поддерживает совместимость.

Каждая таблица Delta связана со спецификацией протокола, определяя поддерживаемые функции. Приложения, взаимодействующие с таблицей, либо для чтения или записи, полагаются на эту спецификацию протокола, чтобы определить, совместимы ли они с набором функций таблицы. Если приложению не хватает возможности для обработки функции, указанной как поддерживаемая в протоколе таблицы, оно не сможет прочитать из этой таблицы или записать в нее данные.

Спецификация протокола разделена на два отдельных компонента: протокол read и протокол write. Дополнительные сведения см. на странице "Как Delta Lake управляет совместимостью функций?".

GIF-файл, показывающий немедленное предупреждение при использовании метода upgradeTableProtocol.

Пользователи могут выполнять команду delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) в среде PySpark и в Spark SQL и Scala. Эта команда позволяет им инициировать обновление таблицы Delta.

Важно отметить, что при выполнении этого обновления пользователи получают предупреждение, указывающее, что обновление версии протокола Delta является неисключимым процессом. Это означает, что после выполнения обновления его нельзя отменить.

Обновления версий протокола могут повлиять на совместимость существующих средств чтения и записи таблиц Delta Lake. Поэтому рекомендуется продолжать с осторожностью и обновлять версию протокола только при необходимости, например при внедрении новых функций в Delta Lake.

Это важно

Дополнительные сведения о версиях и функциях протокола, совместимых во всех интерфейсах Microsoft Fabric, см. в статье о взаимодействии с форматом таблицы Delta Lake.

Снимок экрана: предупреждение при обновлении протокола delta lake.

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