Этап 1. Стратегия миграции и планирование

Эта статья является первой из четырех частей в серии лучших практик по миграции из Azure Synapse Spark в Microsoft Fabric.

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

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

В этой статье вы узнаете, как:

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

Оцените охват Synapse Spark

Azure Synapse Analytics включает несколько типов рабочих нагрузок. В этом руководстве основное внимание уделяется переносу пулов Spark, записных книжек, определений заданий Spark, баз данных озера и метаданных хранилища метаданных Hive в Microsoft Fabric. См. сопроводительные руководства для получения информации о выделенном пуле SQL, конвейере, Data Explorer и руководстве по миграции безопасности.

Рабочая нагрузка Synapse Fabric Назначение Средство миграции или путь
Пулы Spark Fabric Spark (Lakehouse) Spark Помощник по миграции (предварительный просмотр); ручной перенос пула или среды
Ноутбуки Записные книжки из ткани Ассистент миграции Spark; рефакторинг кода для API Synapse
Определения заданий Spark Определения заданий Spark в Fabric Рекомендуется использовать Assistant по миграции Spark; при необходимости - ручное восстановление.
Базы данных Lake каталог Fabric Lakehouse Spark Помощник по миграции (таблицы Delta с помощью ярлыков); Экспорт и импорт HMS для не-Delta
Хранилище метаданных Hive каталог Fabric Lakehouse Записные книжки экспорта и импорта HMS; Сочетания клавиш OneLake для данных
связанные службы Соединения Fabric / Key Vault Создайте подключения Fabric; перенесите секреты в Key Vault; отрефакторьте код записной книжки.

Запуск средства оценки Fabric

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

  1. Скачайте средство. Инструмент оценки Fabric доступен в репозитории GitHub Microsoft fabric-toolbox по адресу microsoft/fabric-toolbox.

  2. Запустите анализ. Направьте средство на рабочую область Azure Synapse. Он сканирует все связанные с Spark элементы и создает отчет с подсчетами объектов, конфигурациями, зависимостями и потенциальными проблемами совместимости.

  3. Просмотрите отчет. Используйте выходные данные оценки для понимания области миграции: сколько записных книжек, пулов, SJD и баз данных необходимо перенести, какие связанные службы используются, и какие потенциальные блокировщики существуют (пулы GPU, неподдерживаемые функции и другие).

Подсказка

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

Шаблоны миграции

Выберите шаблон миграции на основе ограничений организации, толерантности к рискам и сроков.

Шаблон переноса без изменений (lift-and-shift)

Перенос всех рабочих нагрузок Spark одновременно с помощью Помощник по миграции с минимальными изменениями. Сосредоточьтесь на быстром запуске ноутбуков и заданий в Fabric — исправляйте только те части, которые не работают (связанные службы, пути к файлам, неподдерживаемые API). Примите текущую архитектуру as-is.

Используйте лифт и смену, когда:

  • Ваш рабочий пространство Synapse будет выведено из эксплуатации в фиксированные сроки, поэтому вам нужно действовать быстро.
  • Рабочие нагрузки Spark уже хорошо спроектированы (Delta-first, чистый код, ограниченное число зависимостей от связанных служб).
  • Объем вашего рабочего процесса позволяет проведение миграции за один раз, и ваша команда может справиться с задачами по рефакторингу в одном спринте.
  • Конечные потребители (Power BI, API) могут допускать краткое окно переключения.

Поэтапная модернизация

Переносите рабочие нагрузки постепенно по приоритету, изменяя архитектуру по мере продвижения. Сначала начните с рабочих нагрузок с наивысшим или низким уровнем риска. При переносе каждого пакета консолидируйте пулы Spark в меньшее количество сред, внедряйте лучшие практики Lakehouse (Delta-first, V-Order для потребителей BI), включите NEE и оптимизируйте для использования с Direct Lake.

Используйте поэтапную модернизацию, когда:

  • У вас есть большая или сложная среда Synapse с несколькими командами и разнообразными рабочими нагрузками, которые невозможно перенести сразу.
  • В вашей текущей архитектуре есть технические задолженности, которые вы хотите устранить (форматы, не являющиеся Delta, зависимости от точек подключения, разрастание пулов Spark).
  • Вы имеете гибкость на временной шкале и хотите повысить производительность и эффективность затрат во время миграции.
  • Разные рабочие нагрузки имеют разных владельцев и нуждаются в независимых расписаниях миграции.

Шаблон параллельного выполнения

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

Используйте параллельный запуск, если:

  • Ваши рабочие нагрузки имеют строгие SLA (соглашения об уровне обслуживания) или нормативные требования, требующие расширенной проверки перед переходом.
  • Необходимо доказать, что производительность Fabric соответствует или превышает показатели Synapse, прежде чем заинтересованные лица одобрят вывод из эксплуатации.
  • Подчиненные потребители (панели мониторинга, API, модели машинного обучения) не могут допускать несоответствия во время перехода.
  • Вы переносите рабочие конвейеры, в которых неправильные результаты имеют высокий бизнес-эффект (финансовые отчеты, соответствие требованиям).

Параллельное выполнение представляет проблему синхронизации данных, которую необходимо разработать заранее. Выберите один из следующих шаблонов:

  • Общий слой хранения: Обеспечьте чтение и запись для Synapse и Fabric в тот же самый хранилище ADLS Gen2 через шорткаты OneLake. При этом обе платформы хранятся в одном и том же разностном файле, но необходимо предотвратить конфликты записи, гарантируя одновременную запись только одной платформы в заданную таблицу.
  • Write-once, read-both: Сохранить Synapse в качестве основного модуля записи во время перехода и позволить Fabric читать те же данные с помощью сочетаний клавиш. После проверки перенесенных записных книжек в Fabric измените путь записи на Fabric и установите Synapse как потребителя в режиме только для чтения до его вывода из эксплуатации. Это самый безопасный вариант для большинства миграций.
  • Двойная запись: Избегайте одновременного выполнения одного и того же ETL в обеих средах, если вы уже не создали автоматизированное средство сравнения и выверки. Двойная запись, как правило, создает расхождение, дублирование и операционные издержки.

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

  • Изменения кода Notebook: повторно запустите Spark Помощник по миграции либо вручную повторно экспортируйте и повторно импортируйте обновленные записные книжки. Повторно примените любой рефакторинг кода для Microsoft Fabric, включая notebookutils, обновления путей к файлам и секреты хранилища Key Vault.
  • Изменения в определении задания Spark: Повторно выполните миграцию через ассистент миграции или вручную создайте обновленные определения задания Spark в Fabric.
  • Изменения конфигурации пула Spark: обновите соответствующую среду Fabric, чтобы она соответствовала размеру узлов, параметрам автомасштабирования и библиотекам.
  • Изменения схемы базы данных в озере: повторно запустите блокноты экспорта/импорта HMS или вручную создайте или измените затрагиваемые таблицы в озере данных Fabric.

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

Рекомендации по откату

Миграция Synapse в Fabric — это операция копирования, которая не изменяет или не удаляет исходную рабочую область Synapse. Исходные пулы Spark, записные книжки и данные остаются неизменными во время процесса. Это делает откат простым:

  • Если результаты миграции неудовлетворительны, продолжайте использовать существующую рабочую область Synapse. Никаких изменений не требуется отменить.
  • Удалите перенесенные артефакты Fabric (блокноты, окружения, определения заданий Spark) и повторите попытку после устранения проблем.
  • Ярлыки OneLake указывают на ваше существующее хранилище ADLS Gen2 — удаление этих ярлыков не влияет на исходные данные.
  • Не отключайте рабочую область Synapse, пока все перенесенные рабочие нагрузки в Fabric не будут проверены и все потребители на нижнем уровне не будут перенаправлены.

Подсказка

Начните с малого и быстро докажите жизнеспособность. Выберите представительную рабочую нагрузку Spark и перенесите ее на всех этапах — от настройки пула через рефакторинг записной книжки до валидации. Выберите то, что выполняет наиболее распространенные шаблоны (доступ к данным, связанные службы, операции каталога), но достаточно безопасно для итерации. Задокументируйте шаги, обнаруженные проблемы и решения для создания повторяемого процесса для последующей миграции.

Паритет функциональности и основные различия

Понимание архитектурных различий между Synapse и Fabric крайне важно для планирования. В следующих таблицах выделены основные различия в архитектуре вычислений и возможностях Spark.

Полное сравнение см. в разделе Compare Fabric и Azure Synapse Spark: основные различия.

Вычисления и архитектура

Функциональность Azure Synapse Microsoft Fabric
Модель развертывания PaaS (настройка ресурсов и управление ими) SaaS (на основе емкости, без управления инфраструктурой)
Модель вычислений Пулы Spark (на основе узлов); требуется минимум 3 узла Единицы емкости (CU) совместно используются для всех рабочих нагрузок; Пулы Spark в виде шаблонов конфигурации; Поддерживается выполнение с одним узлом; Автомасштабирование выставления счетов для Spark (оплата за использование, аналогично модели Synapse)
Подсистема Spark Пулы Synapse Spark (Spark 3.4, 3.5); Поддерживаемые пулы GPU Fabric Spark (Среда выполнения 1.2/1.3/2.0: Spark 3.4–4.0); поддержка GPU не поддерживается; работает на оборудовании последнего поколения для повышения производительности.
Масштабирование Автомасштабирование узлов для Spark (минимум 3 узла) Автоматическое масштабирование узлов для Spark (минимальная конфигурация из одного узла); масштабирование в зависимости от нагрузки.
Запуск сеанса Пул-ориентированный; инициализация с нуля для новых кластеров Начальные пулы (запуск на уровне секунд); Настраиваемые динамические пулы; Режим высокой параллелизма
Модель затрат Час на узел (Spark); приостановка и возобновление Два варианта: (1) Fabric Spark использует модель общего потребления на основе единицы емкости (CU) или (2) Автомасштабирование выставления счетов для Spark — оплата по мере использования режима Spark

Spark: Synapse Spark и Fabric Spark

Функциональность Synapse Spark Fabric Spark
Версии Spark Spark 3.4 (EOL), 3.5 (предварительная версия). Spark 3.4 (RT 1.2 EOL), 3.5 (RT 1.3 GA), 4.0 (RT 2.0 Preview)
Ускорение запросов Нет собственного механизма ускорения Нативный движок выполнения (Velox/Gluten, до 4 раз быстрее на TPC-DS)
Модель пула Фиксированные пулы с максимальным числом узлов на пул; минимум 3 узла Начальные пулы (запуск на уровне секунд, конфигурация не требуется); Настраиваемые пулы для определенных размеров узлов и пользовательских библиотек; Поддерживается выполнение с одним узлом
Безопасность (сеть) Управляемая виртуальная сеть; Частные конечные точки Управляемые частные конечные точки (MPE); Политики исходящего доступа (OAP); ключи, управляемые клиентом (CMK)
Поддержка GPU Доступные пулы с ускорением GPU Не поддерживаются
Высокая степень параллелизма Не поддерживаются Поддерживается: несколько ноутбуков совместно используют один сеанс Spark
Управление библиотеками Библиотеки уровня пула и рабочей области; ручная отправка колес, JARs, tar.gz Управление библиотеками на основе среды: общедоступные потоки (PyPI/Conda) + кастомные загрузки (wheels, JAR). Чтобы реплицировать библиотеки уровня рабочей области Synapse, создайте среду с необходимыми библиотеками и задайте ее в качестве рабочей области по умолчанию. Все записные книжки и SJD в рабочей области автоматически наследуют его.
V-Order Недоступно Оптимизация Parquet во время записи; 40–60% улучшения для Power BI Direct Lake и ~10% для конечной точки аналитики SQL; нет улучшения производительности при чтении с помощью Spark; 15–33% нагрузка на запись.
Оптимизация записи Отключено по умолчанию Включен по умолчанию
Формат таблицы по умолчанию Parquet (Delta - необязательно) Delta Lake (по умолчанию и требуется для таблиц Lakehouse)
Хранилище метаданных Hive Встроенный HMS; внешний HMS через Azure SQL DB или MySQL (устаревший после Spark 3.4) каталог Fabric Lakehouse; Миграция HMS с помощью скриптов экспорта и импорта
DMTS в ноутбуках Поддерживается Поддерживается в записных книжках; пока не поддерживается в определениях заданий Spark
Управляемое удостоверение для KV Поддерживается Поддерживается в записных книжках и определениях заданий Spark
mssparkutils Полная библиотека (fs, учетные данные, записная книжка, env, lakehouse) notebookutils (аналогичный API; некоторые различия в именах методов)