共用方式為


比較 Fabric 資料工程師 和 Azure Synapse Spark

本文比較了 Azure Synapse Spark 與 Fabric Spark 在 Spark 池、配置、函式庫、筆記本及 Spark 工作定義(SJD)上的差異。

類別 Azure Synapse Spark 織物火花
Spark 集區 Spark 集區
-
-
起始池(預熱) / 自訂池
V 順序
高並行
Spark 設定 集區層級
Notebook 或 Spark 工作定義層級
環境層級
NotebookSpark 工作定義層級
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 Gen2)
資料落地 (叢集/區域型)
主要儲存體 (OneLake)
資料落地 (容量/區域型)
中繼資料 內部 Hive 中繼存放區 (HMS)
外部 HMS (使用 Azure SQL DB)
內部 HMS (Lakehouse)
-
連線 連接器類型 (連結服務)
資料來源
資料來源連線。 使用工作區身分識別
連接器類型(資料移動與轉換服務)
資料來源
-
安全性 RBAC 和存取控制
儲存體 ACL (ADLS Gen2)
私人連結
為網路隔離而設的受管虛擬網路(VNet)
Synapse 工作區身分識別
資料外流保護 (DEP)
服務標籤
金鑰保存庫 (透過 mssparkutils/連結服務)
RBAC 和存取控制
OneLake RBAC
私人連結
受管理虛擬網路(VNet)
工作區身分識別
-
服務標籤
Key Vault (透過 Notebookutils
DevOps Azure DevOps 整合
CI/CD (無內建支援)
Azure DevOps 整合
部署管線
開發人員體驗 IDE 整合 (IntelliJ)
Synapse Studio UI
共同作業 (工作區)
Livy API
API/SDK
mssparkutils
IDE 整合 (VS Code)
Fabric UI
共同作業 (工作區與共用)
Livy API
API/SDK
notebookutils
記錄和監視 Spark Advisor
內建監視集區和工作 (透過 Synapse Studio)
Spark 歷程記錄伺服器
Prometheus/Grafana
記錄分析
儲存體帳戶
事件中樞
Spark 顧問
內建監視集區和工作 (透過 監視中樞)
Spark 歷程記錄伺服器
-
日誌分析
儲存體帳戶
事件中樞
業務持續性和災害復原 (BCDR) BCDR (資料) ADLS Gen2 BCDR (資料) OneLake

選擇的時機:使用 Fabric Spark 進行統一分析,搭配 OneLake 儲存、內建 CI/CD 管線及依據容量的擴展。 當你需要 GPU 加速池、外部 Hive Metastore 或 JDBC 連線時,使用 Azure Synapse Spark。

Fabric 的主要限制

  • 筆記本中的 DMTS:資料移動與轉換服務無法用於筆記本或 Spark 工作定義
  • 金鑰保險庫的受控身分識別:不支援在筆記本中使用
  • 外部蜂巢 Metastore:不支援
  • GPU 加速池:不可用
  • .NET for Spark(C#):不支援

更多布料相關考量

  • 工作負載層級 RBAC:Fabric 支援四個工作空間角色。 欲了解更多資訊,請參閱 工作空間中的角色
  • CI/CD:使用 Fabric API/SDK 及 部署流程

Spark 集區比較

以下資料表比較了 Azure Synapse Spark 和 Fabric Spark。

Spark 設定 Azure Synapse Spark 織物火花
活水池(預熱實例) - 是的,入門池
自訂集區 Yes Yes
Spark 版本 (執行階段) 2.4、3.1、3.2、3.3、3.4 3.4, 3.5, 4.0
Autoscale Yes Yes
執行程式動態配置 支援,最多 200 個 支援,容量型
可調整的節點大小 支援,3 - 200 支援,1 個容量型
最小節點組態 3 個節點 1 個節點
節點大小系列 記憶體最佳化,GPU 加速 記憶體最佳化
節點大小 Small-XXXLarge Small-XXLarge
自動暫停 支援,可自訂至少 5 分鐘 支援,不可自訂 2 分鐘
高並行 No Yes
V 順序 No Yes
Spark 自動調整 No Yes
原生執行引擎 No Yes
並行限制 已修正 容量型變數
多個 Spark 集區 Yes 支援 (環境)
智慧型快取 Yes Yes
API/SDK 支援 Yes Yes
  • 執行時間:Fabric 不支援 Spark 3.3 及更早版本。 Fabric Spark 在 執行時 1.2 中支援 Spark 3.4 搭配 Delta 2.4,Spark 3.5 在 執行時 1.3 中支援 Delta 3.1,以及在 執行時 2.0 中支援 Spark 4.0 與 Delta 4.0。

何時選擇:使用 Fabric Spark 池進行快速啟動(Starter Pools)、單節點任務、高並發會話及 V-Order 優化。 當你需要 GPU 加速或固定擴展到 200 節點時,可以使用 Azure Synapse 池。

Spark 執行時版本

支援 Fabric Spark 的版本:

Fabric 不支援 Spark 2.4、3.1 或 3.2。

可調整的節點大小

Azure Synapse Spark 池可擴展至 200 個節點,不論節點大小。 在 Fabric 中,節點的最大數量取決於節點大小與配置容量(SKU)。

織體容量轉換:2 Spark vCores = 1 容量單元。 公式:容量中的總 vCore 數 ÷ 每節點大小的 vCore 數 = 最大可用節點數。

例如,SKU F64 提供 64 個容量單元(128 個 Spark vCore )。 下表顯示 F64 的節點限制:

Spark 集區大小 Azure Synapse Spark Fabric Spark (自訂集區、SKU F64)
小型(4 個 vCorres) 最小:3,最大:200 最小:1,最大:32
中等(8 個 vCores) 最小:3,最大:200 最小:1,最大:16
大型(16 個 vCores) 最小:3,最大:200 最小:1,最大:8
X-Large(32 個 vCores) 最小:3,最大:200 最小:1,最大:4
XX-Large(64 個虛擬核心) 最小:3,最大:200 最小:1,最大:2

如需詳細資訊,請參閱 Spark 計算

節點大小

Fabric Spark pool 僅支援 記憶體優化(Memory Optimized node)節點家族。 Azure Synapse 中可用的 GPU 加速池在 Fabric 中不被支援。

節點大小比較(XX-Large):

  • Azure Synapse: 432 GB memory
  • Fabric:512 GB 記憶體,64 vCore

從 Small 到 X-Large 的節點大小在 Azure SynapseFabric 中,vCore 和記憶體都完全相同。

自動暫停行為

自動暫停設定比較:

  • Azure Synapse:可設定的閒置超時,最少 5 分鐘
  • Fabric:修復了會話結束後的 2 分鐘自動暫停(無法設定),預設會話逾時為 20 分鐘

高並行

Fabric 支援筆記本的高 並行模式 ,允許多個使用者共享單一 Spark 會話。 Azure Synapse 不支援這個功能。

並行限制

Azure Synapse Spark 限制(固定):

  • 每個池有 50 個並行工作,每個池有 200 個排隊工作
  • 每一個工作池最多有 250 個活躍任務,每一個工作空間最多有 1,000 個活躍任務。

Fabric Spark 限制(基於 SKU)

  • 同時工作的數量依容量 SKU 而異,範圍為 1 到 512。
  • 基於動態儲備的節流管理高峰使用量

如需詳細資訊,請參閱 Microsoft Fabric Spark 中的並行限制和佇列。

多個 Spark 集區

在 Fabric 中,使用 環境 來設定並為每個筆記本或 Spark 工作定義選擇不同的 Spark 池。

注意

了解如何將 Azure Synapse Spark 集區移轉至 Fabric

Spark 組態比較

火花配置適用於兩個層級:

  • 環境層級:環境中所有 Spark 作業的預設設定
  • 行內層級:筆記本或 Spark 作業定義中的每次會話配置
Spark 設定 Azure Synapse Spark 織物火花
環境層級 支援,集區 支援,環境
內嵌 Yes Yes
匯入/匯出 Yes 支援 (.yml 來自環境)
API/SDK 支援 Yes Yes

何時選擇:兩個平台都支援環境與線上配置。 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
  • 優化寫入:在 Fabric 中預設啟用;在 Azure Synapse 中預設被停用。

Spark 程式庫比較

Spark 函式庫在三個層級適用:

  • Workspace 層級:僅在 Azure Synapse 中可用
  • 環境層級:環境中的所有筆記本與 Spark 工作定義皆可存取的函式庫
  • Inline:筆記型電腦啟動時安裝的會話專用函式庫
Spark 程式庫 Azure Synapse Spark 織物火花
工作區層級 Yes No
環境層級 支援,集區 支援,環境
內嵌 Yes Yes
匯入/匯出 Yes Yes
API/SDK 支援 Yes Yes

何時選擇:兩個平台都支援環境與線上函式庫。 Fabric 不支援工作區層級的套件。

  • 內建函式庫:Fabric 與 Azure Synapse 執行時共用共用 Spark 核心,但函式庫版本有所不同。 有些程式碼可能需要重新編譯或自訂函式庫。 請參閱 Fabric 執行時函式庫

筆記本比較

Notebook 和 Spark 工作定義是在 Fabric 中開發 Apache Spark 工作的主要程式碼項目。 Azure Synapse Spark 筆記本Fabric Spark 筆記本之間有一些差異:

筆記本功能 Azure Synapse Spark 織物火花
匯入/匯出 Yes Yes
工作階段組態 是的。 使用者介面與內嵌介面 是的。 UI(環境)與內聯
IntelliSense Yes Yes
mssparkutils Yes Yes
筆記本資源 No Yes
共同作業 No Yes
高並行 No Yes
適用於 Spark C# 的 .NET Yes No
管線活動支援 Yes Yes
內建排程執行支援 No Yes
API/SDK 支援 Yes Yes

何時選擇:使用 Fabric 筆記本進行協作、高併發工作環境、內建排程功能及筆記本資源。 如果你需要 .NET for Spark(C#),可以用 Azure Synapse 筆記本。

  • notebookutils.credentials:在 Fabric 中僅支援getTokengetSecret(DMTS 連線不可用)。
  • 筆記本資源:Fabric 提供類 Unix 檔案系統用於管理檔案。 請參閱 如何使用筆記本
  • 高並發性:Azure Synapse 中 ThreadPoolExecutor 的替代方案。 請參見 「配置高並發模式」。
  • .NET for Spark:將 C#/F# 工作負載遷移到 Python 或 Scala
  • 連結服務:外部資料來源連線可替換為 Spark 函式庫。

Spark 工作定義比較

Spark 工作定義重要考量:

Spark 工作功能 Azure Synapse Spark 織物火花
PySpark Yes Yes
Scala Yes Yes
適用於 Spark C# 的 .NET Yes No
SparkR No Yes
匯入/匯出 支援 (UI) No
管線活動支援 Yes Yes
內建排程執行支援 No Yes
重試原則 No Yes
API/SDK 支援 Yes Yes

何時選擇:使用 Fabric Spark 工作定義來支援 SparkR、內建排程及重試政策。 如果你需要 .NET for Spark(C#)或基於 UI 的匯入/匯出,請使用 Azure Synapse。

  • 支援檔案:.py、。R 和 .jar 檔案,包含參考檔案、命令列參數和 lakehouse 參考。
  • 匯入/匯出:基於 UI 的 JSON 匯入/匯出僅在 Azure Synapse 中提供。
  • 重試政策:啟用 Spark 結構化串流工作的無限次執行。
  • .NET for Spark:將 C#/F# 工作負載遷移到 Python 或 Scala

Hive 中繼存放區 (HMS) 比較

HMS 類型 Azure Synapse Spark 織物火花
內部 HMS Yes 支援 (Lakehouse)
外部 HMS Yes No

選擇的條件:如果基於 Lakehouse 的內部 HMS 符合你的需求,請使用 Fabric。 如果你需要外部 Hive Metastore(Azure SQL DB)或 Catalog API 存取,請使用 Azure Synapse。