第一階段:移民策略與規劃

本文是 Azure Synapse Spark 轉 Microsoft Fabric 遷移最佳實務系列中的第一階段(共四階段)。

在遷移任何筆記本、Spark 工作定義、池或湖泊元資料之前,先從這裡開始。 本文將協助您評估 Synapse Spark 遺產的範圍,選擇符合您風險承受度與交付時程的遷移方式,並了解影響規劃的 Fabric 差異。

完成此步驟後,你應該知道哪些需要移動、使用哪種遷移模式、主要相容性風險在哪裡,以及需要考慮哪些回滾或平行執行的限制。

在本文中,您將學會如何:

  • 評估你的 Synapse Spark 足跡。
  • 在升降檔、分階段現代化與平行運行之間選擇。
  • 考慮回滾與同步化限制。
  • 回顧 Synapse Spark 與 Fabric Spark 的主要特色與架構差異。

評估您的 Synapse Spark 使用範圍

Azure Synapse Analytics 涵蓋多種工作負載類型。 本指南重點介紹如何將 Spark 池、筆記本、Spark 工作定義、湖泊資料庫及 Hive Metastore 元資料遷移至 Fabric。 關於專用的 SQL 池、管線、Data Explorer 及安全遷移指引,請參考配套指南。

突觸工作量 Fabric 目的地 遷移工具/路徑
火花池 Fabric Spark(湖屋) Spark 移轉小幫手 (預覽版); 手動池/環境移轉
Notebooks 織物筆記本 Spark 移轉小幫手;Synapse 專用 API 的程式碼重構
Spark 作業定義 Fabric Spark 工作定義 Spark 移轉小幫手(推薦);如有需要,手動重現
湖泊資料庫 Fabric Lakehouse 目錄 Spark 移轉小幫手(透過捷徑處理 Delta 資料表);非 Delta 的 HMS 匯出/匯入
Hive Metastore Fabric Lakehouse 目錄 HMS 匯出/匯入筆記本檔案; OneLake 資料捷徑
連結服務 Fabric 系統連接 / 金鑰庫 建立 Fabric 連線;將秘密遷移至 金鑰保存庫;重構筆記本程式碼

執行 Fabric 評估工具

在規劃遷移前,先執行 Fabric 評估工具,產生一份完整的 Synapse 來源工作區報告。 該工具會掃描您的工作區,並彙整所有物件的摘要——Spark 池、筆記本、Spark 工作定義、湖泊資料庫、連結服務及其配置——讓您清楚了解遷移範圍。

  1. 下載這個工具。 Fabric評估工具可在Microsoft fabric工具箱GitHub倉庫中取得,地址為 microsoft/fabric-toolbox。

  2. 執行評估。 將工具指向你 Azure Synapse 工作空間。 它會掃描所有與 Spark 相關的項目,並產生包含物件數量、設定、相依性及潛在相容性問題的報告。

  3. 檢閱報告。 利用評估輸出了解遷移範圍:需要遷移多少筆記本、池、SJD 和資料庫,哪些連結服務正在使用,以及可能存在的阻擋因素(GPU 池、不支援的功能等)。

小提示

在規劃過程中就要早期使用評估工具。 報告能幫助你估算工作量、找出阻礙因素,並優先排序要先遷移哪些工作負載。 它同時也是遷移檢查清單第一階段的基準清單。

遷徙模式

根據你的組織限制、風險承受度及時程來選擇遷移模式。

升檔換檔模式

使用 移轉小幫手 一次性遷移所有 Spark 工作負載,且改動極少。 專注於盡快讓筆記本和工作在 Fabric 中執行——只重構那些會出問題的部分(連結服務、檔案路徑、不支援的 API)。 接受目前的架構 as-is。

在以下情況下使用升降檔:

  • 你的 Synapse 工作區將在固定期限內退役,你需要迅速行動。
  • 你的 Spark 工作負載已經架構完善(Delta 優先、程式碼乾淨、服務依賴較少)。
  • 你的工作空間空間規模對於一次性遷移來說是可管理的,團隊也能在一次衝刺內完成重構工作。
  • 下游消費者(Power BI、API)可以容忍短暫的切換窗口。

分階段現代化

依優先順序逐步遷移工作負載,邊做邊重新架構。 先從價值最高或風險最低的工作量開始。 在遷移每批次時,將 Spark 池整合到較少的環境,採用 Lakehouse 最佳實務(優先 Delta、BI 消費者使用 V-order)、啟用 NEE,並為 Direct Lake 重新設計。

在以下情況下使用分階段現代化:

  • 你有一個龐大或複雜的 Synapse 環境,擁有多個團隊和多樣化的工作負載,無法一次性遷移。
  • 你目前的架構有技術債需要解決(非 Delta 格式、掛載點相依、龐大的 Spark 池)。
  • 你在時間軸上有彈性,並且希望在遷移過程中提升效能和成本效益。
  • 不同的工作負載有不同的擁有者,需要獨立的遷移時程。

平行跑動模式

轉換期間同時執行兩個環境。 將新的 Spark 工作負載路由到 Fabric,而舊有的工作負載則繼續在 Synapse 上。 在切換前,先透過並排比較結果來驗證遷移的工作負載。 隨著信心逐漸建立,逐步解除Synapse的任務。

在以下情況下使用平行跑法:

  • 你的工作負載有嚴格的 SLA 或法規要求,要求在切換前需要延長驗證時間。
  • 你需要證明 Fabric 的效能達到或超越 Synapse,利益相關者才會批准系統退役。
  • 你的下游消費者(儀表板、API、機器學習模型)無法容忍轉換過程中的任何差異。
  • 你正在遷移生產管線,錯誤結果會帶來高商業影響(財務報告、合規)。

平行執行會帶來一個必須事先設計的資料同步問題。 請選擇以下圖案之一:

  • 共享儲存層: 透過 OneLake 捷徑,Synapse 和 Fabric 都能讀寫同一個 ADLS Gen2 儲存。 這樣兩個平台會維持在相同的 Delta 檔案上,但你必須避免寫入衝突,確保每次只允許一個平台對特定資料表進行寫入。
  • Write-once, read-both: 在轉換過程中,讓 Synapse 作為主要寫入者,並讓 Fabric 以快捷方式讀取相同的資料。 在您驗證 Fabric 中遷移的筆記本後,將寫入路徑切換到 Fabric,並將 Synapse 設為唯讀消費者,直至停用。 這是大多數遷徙最安全的選擇。
  • 雙重寫入: 除非你已經有自動化比較與對帳工具,否則避免同時在兩個環境下運行同一個 ETL。 雙重寫入往往會產生分歧、重複及操作負擔。

平行執行也會影響變更管理。 雖然 Synapse 仍是主動開發環境,但任何筆記本、Spark 工作定義、Spark 池設定或湖泊資料庫架構的變更,都不會自動反映在 Fabric 中。 你必須重新遷移受影響的資產,才能讓兩個環境保持一致。

  • Notebook 程式碼變更: 重複執行 Spark 移轉小幫手,或手動匯出並匯入更新後的筆記本。 重新套用任何Fabric特定的程式碼重構,包括 notebookutils、更新檔案路徑及金鑰保存庫 機密。
  • Spark 工作定義變更: 請透過 移轉小幫手 重新遷移,或在 Fabric 手動重新建立更新後的 Spark 工作定義。
  • Spark pool 設定變更: 更新對應的 Fabric 環境以符合修訂後的節點大小、自動縮放設定及函式庫。
  • Lake 資料庫架構變更: 重新執行 HMS 匯出/匯入筆記本,或手動建立或修改 Fabric 湖屋中受影響的資料表。

為了減少再次移轉的負擔,在遷移開始時,應在 Synapse 端設置變更凍結。 如果無法避免變更,記得保留變更日誌,這樣切換前可以在 Fabric 重播。

回滾考量

Synapse 遷移到 Fabric 是一種複製操作——它不會修改或刪除你的原始 Synapse 工作區。 你原本的 Spark 池、筆記本和資料在整個過程中都會保持不變。 這使得回滾過程變得簡單直接:

  • 如果遷移結果不理想,請繼續使用現有的 Synapse 工作區。 不需要還原任何變更。
  • 刪除已遷移的 Fabric 項目(筆記本、環境、Spark 工作定義),並在處理問題後重新嘗試。
  • OneLake 捷徑指向你現有的 ADLS Gen2 儲存空間——移除捷徑不會影響底層資料。
  • 在所有遷移工作負載在 Fabric 中驗證完畢且下游消費者都重新路由之前,不要停用你的 Synapse 工作空間。

小提示

從小處開始,快速證明可行性。 選擇一個具代表性的 Spark 工作負載,從資源池設定、Notebook 重構,到驗證進行端到端的遷移。 選擇一個能實踐你最常見模式(資料存取、連結服務、目錄操作)但風險足夠低,可以反覆嘗試的方法。 記錄遇到的步驟、問題與解決方案,以建立可重複的後續遷移流程。

功能對等與關鍵差異

了解 Synapse 與 Fabric 的架構差異對規劃至關重要。 以下表格突顯了計算架構與 Spark 能力的主要差異。

完整比較請參見比較 Fabric 與 Azure Synapse Spark:關鍵差異。

運算與架構

能力 Azure Synapse 織物
部署模型 PaaS(配置與管理資源) SaaS(基於容量,無基礎設施管理)
計算模型 火花池(節點式);至少需要 3 個節點 容量單元(CU)在所有工作負載間共享;Spark 池作為設定範本;支援單節點執行;Spark 的自動計量計費(按使用付費,類似 Synapse 模式)
火花引擎 突觸火花池(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」的差異分析

能力 突觸火花 Fabric 火花
Spark 版本 Spark 3.4(終止)、3.5(預覽)。 Spark 3.4(RT 1.2 生命週期結束)、3.5(RT 1.3 一般可用)、4.0(RT 2.0 預覽版)
查詢加速 沒有原生加速引擎 原生執行引擎(Velox/Gluten,在TPC-DS基準測試中性能最高可達 4 倍)
泳池模型 固定池,每個池最大節點數;至少三個節點 起始池(二級啟動,無需設定);針對特定節點大小與自訂函式庫的自訂池;支援單節點執行
安全性(網路) 受管理的虛擬網路;私有端點 受管理私有端點(MPE);外部存取政策(OAP);Customer-Managed 金鑰(CMK)
GPU 支援 可用的 GPU 加速池 不支援
高並行 不支援 支援:多本筆記本共用一次 Spark 會話
程式庫管理 池級與工作區級函式庫;手動上傳Wheel檔、JARs、tar.gz 基於環境的函式庫管理:公開訂閱(PyPI/Conda)+ 自訂上傳(輪式、JAR)。 要複製 Synapse 工作空間層級函式庫,請建立一個包含所需函式庫的環境,並將其設為工作區預設值。 工作空間中的所有筆記本和 SJD 都會自動繼承此設定。
V級 無法提供 在寫入過程中進行 Parquet 優化; Power BI Direct Lake 提升 40–60%; SQL 分析端點提升 ~10%; Spark 讀取並無效益; 15–33% 寫入開銷
優化寫入 預設為停用 預設啟用
預設表格格式 拼花地板(Delta 選配) Delta Lake(預設且為 Lakehouse 表格必備)
Hive Metastore 內建HMS;外部 HMS 透過 Azure SQL DB 或 MySQL(Spark 3.4 後已棄用) Fabric Lakehouse 目錄;透過匯出/匯入腳本進行 HMS 遷移
筆記本中的DMTS 支持 以筆記本形式支援;Spark 工作定義尚未支援
KV 的管理身份 支持 支援於筆記本與 Spark 工作定義中
mssparkutils 完整資料庫(FS、憑證、筆記本、環境、湖畔別墅) notebookutils(類似 API;方法名稱有些差異)