Сравнение проектирования данных Fabric и Azure Synapse Spark

В этой статье сравниваются Azure Synapse Spark и Fabric Spark в пулах Spark, конфигурациях, библиотеках, записных книжках и определениях заданий Spark (SJD).

Для обзора, сосредоточенного на Delta Lake и Lakehouse (включая форматы таблиц по умолчанию и параметры времени выполнения по умолчанию), подробности см. в таблицах Lakehouse и Delta Lake.

Категория Azure Synapse Spark Fabric Spark
Пулы Spark Кластер Spark
-
-
Начальный пул (предварительно разогретый) / Настраиваемый пул
V-Order
Высокая степень параллелизма
Конфигурации Spark Уровень пула
Уровень спецификации задания для Notebook или Spark
Уровень среды
Уровень задания Notebook или определения задания Spark
Библиотеки Spark Пакеты уровня рабочей области
Пакеты уровня пула
Встроенные пакеты
-
Библиотеки среды
Встроенные библиотеки
Ресурсы Записная книжка (Python, Scala, Spark SQL, R, .NET)
Определение задания Spark (Python, Scala, .NET)
Конвейеры Synapse
Действия конвейера (записная книжка, определение задания Spark)
Записная книжка (Python, Scala, Spark SQL, R)
Определение задания Spark (Python, Scala, R)
Конвейеры Data Factory
Действия конвейера (записная книжка, определение задания Spark)
Данные Основное хранилище (ADLS второго поколения)
Расположение данных (на основе кластера или региона)
Основное хранилище (OneLake)
Местоположение данных (на основе емкости или региона)
Метаданные Внутреннее хранилище метаданных Hive (HMS)
Внешний HMS (использование Azure SQL DB)
Внутренний HMS (lakehouse)
-
Связи Тип соединителя (подключенные службы)
Данные источники
Соединение источника данных идентификатор рабочей области
Тип соединителя (службы перемещения и трансформации данных)
Данные источники
-
Безопасность RBAC и контроль доступа
Storage ACL списки управления доступом (ADLS Gen2)
Приватные ссылки
Управляемая виртуальная сеть для сетевой изоляции
Идентификатор рабочей области Synapse
Защита от кражи данных (DEP)
Служебные теги
Key Vault (через mssparkutils/связанную службу)
RBAC и контроль доступа
OneLake RBAC
Частные ссылки
Управляемая виртуальная сеть (VNet)
Идентификация рабочей области
Правила брандмауэра IP-адресов рабочей области
Защита исходящего доступа
Теги служб
Key Vault (через notebookutils)
DevOps интеграция Azure DevOps
CI/CD (отсутствие встроенной поддержки)
интеграция Azure DevOps
конвейеры развертывания
Расширение CLI Fabric и Azure DevOps Pipelines
Опыт разработчика Интеграция интегрированной среды разработки (IntelliJ)
Пользовательский интерфейс Synapse Studio
Совместная работа (пространства для работы)
Livy API
API/SDK
mssparkutils
Интеграция интегрированной среды разработки (VS Code)
Пользовательский интерфейс Fabric
Совместная работа (рабочие области и общий доступ)
API Livy
API/SDK
notebookutils
Ведение журналов и мониторинг Помощник по Spark
Встроенные пулы мониторинга и задания (через Synapse Studio)
Сервер истории Spark
Prometheus/Grafana
Аналитика логов
Учетная запись хранилища
Event Hubs
Помощник по Spark
Встроенные пулы и задания мониторинга (через Центр мониторинга)
Сервер истории Spark
-
Log Analytics
Аккаунт хранения
Центры событий
Приложение метрик емкости
Непрерывность бизнес-процессов и аварийное восстановление (BCDR) BCDR (data) ADLS 2-го поколения BCDR (data) OneLake

Когда выбрать: используйте Fabric Spark для единой аналитики с хранилищем OneLake, встроенными конвейерами CI/CD и масштабированием, основанным на емкости. Используйте Azure Synapse Spark, если вам нужны пулы с ускорением GPU, внешнее хранилище метаданных Hive или JDBC.

Ключевые ограничения в Fabric

  • DMTS в записных книжках: службы перемещения и преобразования данных не могут использоваться в записных книжках или определениях заданий Spark
  • Managed identity for Key Vault: не поддерживается в записных книжках
  • Внешнее хранилище метаданных Hive: не поддерживается
  • Ускоряемые GPU пулы: недоступны
  • .NET для Spark (C#): не поддерживается

Дополнительные соображения по Fabric

Сравнение пула Spark

В следующей таблице сравниваются пулы Spark в Azure Synapse и Fabric Spark.

Параметр Spark Azure Synapse Spark Fabric Spark
Динамический пул (предварительно теплые экземпляры) - Да, стартовый пул
Настраиваемый пул Да Да
Версии Spark (среда выполнения) 2.4, 3.1, 3.2, 3.3, 3.4 3.4, 3.5, 4.0
Автомасштабирование Да Да
Динамическое выделение исполнителей Да, до 200 Да, на основе емкости
Настраиваемые размеры узлов Да, 3-200 Да, 1 на основе емкости
Минимальная конфигурация узла 3 узла 1 узел
Семейство размеров узла Оптимизированное использование памяти, ускорение на базе GPU Оптимизировано для памяти
Размер узла Small-XXXLarge Small-XXLarge
Автоматическая приостановка работы Да, настраиваемое минимальное время 5 минут Да, неконфигурируемо, 2 минуты
Высокая конкурентность Нет Да
V-Order Нет Да
Автоподбор параметров Spark Нет Да
Собственный движок выполнения Нет Да
Пределы параллелизма Исправлено Переменная на основе емкости
Несколько пулов Spark Да Да (среды)
Интеллектуальный кэш Да Да
Поддержка API/SDK Да Да

Когда выбирать: используйте пулы Spark Fabric для быстрого запуска (стартовых пулов), заданий с одним узлом, сеансов с высокой степенью параллелизма и оптимизации V-Order. Используйте Azure Synapse пулы, если требуется ускорение GPU или фиксированное масштабирование до 200 узлов.

Общие сведения о моделях пула Spark

Azure Synapse и Fabric используют принципиально разные модели пула:

  • Azure Synapse: пул Spark — это фиксированный вычислительный ресурс с максимальным числом узлов. Каждое задание (например, из записной книжки или определение задачи Spark) выделяет кластер в пуле. Пул определяет верхнюю границу узлов, доступных во всех запущенных артефактах.

  • Структура. Пул Spark — это шаблон конфигурации, а не фиксированный ресурс вычислений. Каждый артефакт подготавливает собственный кластер, но размер ограничен виртуальными ядрами емкости, а не свойством максимального размера пула. Высококонкурентные сеансы позволяют артефактам совместно использовать сеанс или кластер.

Аспект Azure Synapse Fabric
Что определяет общий объем вычислений? Максимальные узлы пула Емкость (vCores + аварийная мощность)
Что представляет пул? Фактическая граница вычислений Шаблон для создания кластера
Параллелизм ограничен Количество узлов пула Общая емкость vCores

Практический пример: сравнение конкурентности

В следующей таблице сравнивается количество параллельных заданий, выполняемых в разных конфигурациях, при условии, что размер кластера — 1 драйвер + 6 рабочих ролей (7 узлов, 28 виртуальных ядер на задание) с небольшими узлами (4 виртуальных ядер).

Единица измерения Пул из 24 узлов Synapse Fabric F16 (96 виртуальных ядер Spark) Fabric F32 (192 виртуальных ядра Spark)
Граница вычислений 24 узла 32 виртуальных ядер × 3 пиковые нагрузки = 96 виртуальных ядер 64 виртуальных ядер × 3 фазы ускорения = 192 виртуальных ядер
Максимальное число параллельных заданий 3 (использует 21 узлы) 3 (использует 84 виртуальных ядер) 6 (использует 168 виртуальных ядер)
Оставшаяся емкость 3 узла 12 виртуальных ядер 24 виртуальных ядра
Ограничение очереди 200 на пул 16 на единицу емкости 32 на единицу емкости

Дополнительные сведения о вместимости и параллелизме Fabric см. в разделе Ограничения параллелизма и очереди.

Версии среды выполнения Spark

Поддерживаемые версии Fabric Spark:

Fabric не поддерживает Spark 2.4, 3.1 или 3.2.

Настраиваемые размеры узлов

Azure Synapse кластеры Spark масштабируются до 200 узлов независимо от размера узла. В Fabric максимальное количество узлов зависит от размера узла и сконфигурированной емкости (SKU).

Преобразование емкости Fabric: 2 виртуальных ядра Spark = 1 единица емкости. Формула: общее количество виртуальных ядер в емкости ÷ виртуальных ядер на размер узла = максимальные доступные узлы.

Например, SKU F64 предоставляет 64 единиц емкости (128 виртуальных ядер Spark). В следующей таблице показаны ограничения узлов для F64:

Размер пула Spark Azure Synapse Spark Fabric Spark (пользовательский пул, SKU F64)
Малый (4 виртуальных ядер) Мин: 3, Макс: 200 Мин: 1, Макс: 32
Средний (8 vCPU) Мин: 3, Макс: 200 Мин: 1, Макс: 16
Большие (16 виртуальных ядер) Мин: 3, Макс: 200 Мин: 1, Макс: 8
X-Large (32 виртуальных ядер) Мин: 3, Макс: 200 Мин: 1, Макс: 4
XX-Large (64 виртуальных ядер) Мин: 3, Макс: 200 Мин: 1, Макс: 2

Дополнительные сведения см. в разделе "Вычисления Spark".

Размеры узлов

Пулы Spark Fabric поддерживают только семейство оптимизированных для памяти узлов. Пулы с ускорением GPU, доступные в Azure Synapse, не поддерживаются в Fabric.

Сравнение размера узла (XX-Large):

  • Azure Synapse: 432 ГБ памяти
  • Структура: 512 ГБ памяти, 64 виртуальных ядер

Размеры узлов от Small до X-Large обладают идентичными виртуальными ядрами и объёмом памяти как в Azure Synapse, так и в Fabric.

Поведение автопаузы

Сравнение параметров автоматической паузы:

  • Azure Synapse: настраиваемое время ожидания простоя, минимум 5 минут
  • Fabric: исправлена 2-минутная автопауза после завершения сеанса (не настраиваемое), время ожидания сеанса по умолчанию — 20 минут.

Высокая конкурентность

Fabric поддерживает режим высокой конкуренции для рабочих тетрадей, позволяя нескольким пользователям совместно использовать один сеанс Spark. Azure Synapse не поддерживает эту функцию.

Пределы параллелизма

Ограничения Azure Synapse Spark (фиксированные):

  • 50 параллельных заданий на пул, 200 заданий в очереди на пул
  • 250 активных заданий на пул, 1000 на рабочее пространство

Ограничения Fabric Spark (на основе SKU):

  • Одновременные задания зависят от SKU емкости: от 1 до 512 макс.
  • Динамическое регулирование на основе резервирования управляет пиковой загрузкой

Дополнительные сведения см. в разделе Ограничения и очереди в Microsoft Fabric Spark.

Несколько пулов Spark

В Fabric используйте среды для конфигурирования и выбора разных пулов Spark для каждого ноутбука или определения задания Spark.

Примечание.

Узнайте, как мигрировать Spark-пулы Azure Synapse из Azure Synapse в Fabric.

Сравнение конфигураций Spark

Конфигурации Spark применяются на двух уровнях:

  • Уровень среды: конфигурация по умолчанию для всех заданий Spark в среде
  • Встроенный уровень: конфигурация сеанса в записных книжках или определениях заданий Spark
Конфигурация Spark Azure Synapse Spark Fabric Spark
Уровень среды Да, пулы Да, среды
Встроенный Да Да
Импорт и экспорт Да Да (.yml из среды выполнения)
Поддержка API/SDK Да Да

Когда выбрать: обе платформы поддерживают среду и встроенные конфигурации. Fabric использует среды вместо конфигураций уровня пула.

  • Встроенный синтаксис: в Fabric используется spark.conf.set(<conf_name>, <conf_value>) для конфигураций на уровне сеанса. Для пакетных заданий используйте SparkConf.
  • Неизменяемые конфигурации. Некоторые конфигурации Spark нельзя изменить. Сообщение об ошибке: AnalysisException: Can't modify the value of a Spark config: <config_name>
  • V-Order: включен по умолчанию в среде Fabric; оптимизация времени записи для файлов Parquet. Смотрите V-Order.
  • Optimized Write: включен по умолчанию в Fabric; отключен по умолчанию в Azure Synapse.

Примечание.

Узнайте, как перенести настройки Spark из Azure Synapse в Fabric.

Сравнение библиотек Spark

Библиотеки Spark применяются на трех уровнях:

  • уровень Workspace: доступен только в Azure Synapse
  • Уровень среды: библиотеки, доступные в среде для всех блокнотов и определений заданий Spark.
  • Инлайн: библиотеки, специфичные для сеанса, устанавливаются при запуске записной книжки
Библиотека Spark Azure Synapse Spark Fabric Spark
Уровень рабочей области Да Нет
Уровень среды Да, пулы Да, среды
Встроенный Да Да
Импорт и экспорт Да Да
Поддержка API/SDK Да Да

Когда выбрать: обе платформы поддерживают среду и встроенные библиотеки. Структура не поддерживает пакеты уровня рабочей области.

  • Встроенные библиотеки: Среды выполнения Fabric и Azure Synapse используют общие ядра Spark, но различаются версиями библиотек. Для некоторых кодов может потребоваться перекомпиляция или пользовательские библиотеки. См. библиотеки среды выполнения Fabric.

Сравнение ноутбуков

Записные книжки и определения заданий Spark — это основные элементы кода для разработки заданий Apache Spark в Fabric. Существуют некоторые различия между записными книжками Azure Synapse Spark и Fabric Spark:

Функциональность блокнота Azure Synapse Spark Fabric Spark
Импорт и экспорт Да Да
Конфигурация сеанса Да. Пользовательский интерфейс и встроенный интерфейс Да. Пользовательский интерфейс (среда) и встроенный
IntelliSense Да Да
mssparkutils Да Да
Ресурсы ноутбука Нет Да
Совместная работа Нет Да
Высокая конкурентность Нет Да
.NET для Spark C# Да Нет
Поддержка работы конвейера Да Да
Встроенная поддержка запланированного запуска Нет Да
Поддержка API/SDK Да Да

В каких случаях выбрать: использование записных книжек Fabric для совместной работы, сеансов с высокой параллельностью, встроенного планирования и ресурсов записных книжек. Используйте записные книжки Azure Synapse, если требуется .NET для Spark (C#).

  • notebookutils.credentials: только getToken и getSecret поддерживаются в Fabric (подключения DMTS недоступны).
  • Ресурсы записной книжки: Структура предоставляет файловую систему, похожую на Unix, для управления файлами. Узнайте , как использовать записные книжки.
  • Высокая параллельность: альтернатива ThreadPoolExecutor в Azure Synapse. См. раздел "Настройка режима высокой параллелизма".
  • .NET для Spark: перенос рабочих нагрузок C#/F# на Python или Scala.
  • Связанные службы: замените библиотеки Spark для подключений к внешнему источнику данных.

Примечание.

Узнайте, как перенести ноутбуки из Azure Synapse в Fabric.

Сравнение определений заданий Spark

Важные рекомендации по определению задания Spark:

Возможности выполнения задач Spark Azure Synapse Spark Fabric Spark
PySpark Да Да
Scala Да Да
.NET для Spark C# Да Нет
SparkR Нет Да
Импорт и экспорт Да (пользовательский интерфейс) Нет
Поддержка работы конвейера Да Да
Встроенная поддержка запланированного запуска Нет Да
политика повторных попыток Нет Да
Поддержка API/SDK Да Да

Когда выбирать: использование определения заданий Spark Fabric для поддержки SparkR, встроенного планирования и политик повторных попыток. Используйте Azure Synapse, если требуется .NET для Spark (C#) или импорта и экспорта на основе пользовательского интерфейса.

  • Поддерживаемые файлы: .py, . R и .jar файлы с ссылочными файлами, аргументами командной строки и ссылками lakehouse.
  • Import/export: импорт и экспорт JSON на основе пользовательского интерфейса, доступный только в Azure Synapse.
  • Политики повторных попыток: включение неопределенных запусков для заданий структурированной потоковой передачи Spark.
  • .NET для Spark: перенос рабочих нагрузок C#/F# на Python или Scala.

Сравнение хранилища метаданных Hive (HMS)

Тип HMS Azure Synapse Spark Fabric Spark
Внутренние системы HMS Да Да (lakehouse)
Внешняя система HMS Да Нет

Когда выбрать: используйте Fabric, если внутренний HMS на основе озера соответствует вашим потребностям. Используйте Azure Synapse, если требуется внешнее хранилище метаданных Hive (Azure SQL DB) или доступ к каталогу API.

Примечание.

Узнайте, как перенести метаданные каталога Spark HMS в Azure Synapse в Fabric.