共用方式為


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

Fabric 資料工程師與 Azure Synapse Spark 之間的比較簡要介紹了主要功能,深入分析了各種類別,其中包括 Spark 集區、組態、程式庫、筆記本和 Spark 工作定義。

以下資料表比較了不同類別的 Azure Synapse Spark 和 Fabric Spark:

類別 Azure Synapse Spark Fabric Spark
Spark 集區 Spark 集區
-
-
入門集區 / 自訂集區
V 順序
高並行
Spark 設定 集區層級
Notebook 或 Spark 工作定義層級
環境層級
NotebookSpark 工作定義層級
Spark 程式庫 工作區層級套件
集區層級套件
內嵌套件
-
環境程式庫
內嵌程式庫
資源 筆記本 (Python、Scala、Spark SQL、R、.NET)
Spark 工作定義 (Python、Scala、.NET)
Synapse 資料管線
管線活動 (筆記本、SJD)
筆記本 (Python、Scala、Spark SQL、R)
Spark 工作定義 (Python、Scala、R)
Data Factory 資料管線
管線活動 (筆記本、SJD)
資料 主要儲存體 (ADLS Gen2)
資料落地 (叢集/區域型)
主要儲存體 (OneLake)
資料落地 (容量/區域型)
中繼資料 內部 Hive 中繼存放區 (HMS)
外部 HMS (使用 Azure SQL DB)
內部 HMS (Lakehouse)
-
連線 連接器類型 (連結服務)
資料來源
資料來源連線。 使用工作區身分識別
連接器類型 (DMTS)
資料來源
-
安全性 RBAC 和存取控制
儲存體 ACL (ADLS Gen2)
私人連結
受控 VNet (網路隔離)
Synapse 工作區身分識別
資料外流保護 (DEP)
服務標籤
金鑰保存庫 (透過 mssparkutils/連結服務)
RBAC 和存取控制
OneLake RBAC
私人連結
受控 VNet
工作區身分識別
-
服務標籤
金鑰保存庫 (透過 mssparkutils)
DevOps Azure DevOps 整合
CI/CD (無內建支援)
Azure DevOps 整合
部署管線
開發人員體驗 IDE 整合 (IntelliJ)
Synapse Studio UI
共同作業 (工作區)
Livy API
API/SDK
mssparkutils
IDE 整合 (VS Code)
Fabric UI
共同作業 (工作區與共用)
-
API/SDK
mssparkutils
記錄和監視 Spark Advisor
內建監視集區和工作 (透過 Synapse Studio)
Spark 歷程記錄伺服器
Prometheus/Grafana
記錄分析
儲存體帳戶
事件中樞
Spark Advisor
內建監視集區和工作 (透過 監視中樞)
Spark 歷程記錄伺服器
-
-
-
-
業務持續性和災害復原 (BCDR) BCDR (資料) ADLS Gen2 BCDR (資料) OneLake

考量與限制:

  • DMTS 整合:無法透過筆記本和 Spark 工作定義使用 DMTS。

  • 工作負載層級 RBAC:Fabric 支援四個不同的工作區角色。 如需詳細資訊,請參閱<Microsoft Fabric 工作區中的角色>。

  • 受控識別:Fabric 目前不支援在筆記本中使用 Azure KeyVault 的工作區身分識別或受控識別來執行筆記本和 Spark 工作定義。

  • CI/CD:可以使用 Fabric API/SDK 和部署管線

  • Livy API 以及如何提交和管理 Spark 工作:Livy API 位於藍圖中,但尚未在 Fabric 中公開。 必須使用 Fabric UI 建立筆記本和 Spark 工作定義。

  • Spark 記錄和計量:在 Azure Synapse 中,可以將 Spark 記錄和計量發出至自己的儲存體,例如記錄分析、Blob 和事件中樞。 也可以從 API 取得工作區的 Spark 應用程式清單。 目前,這兩項功能都無法在 Fabric 中使用。

  • 其他考量

    • JDBC:目前無法在 Fabric 中使用 JDBC 連線支援。

Spark 集區比較

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

Spark 設定 Azure Synapse Spark Fabric Spark
即時集區 (預熱執行個體) - 支援,入門集區
自訂集區 Yes Yes
Spark 版本 (執行階段) 2.4、3.1、3.2、3.3、3.4 3.3、3.4、3.5
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 2.4、3.1 和 3.2 版本。 Fabric Spark 支援在運行時間 1.1 內具有 Delta 2.2 的 Spark 3.3、運行時間 1.2 內具有差異 2.4 的 Spark 3.4 和運行時間 1.3 內具有 Delta 3.1 的 Spark 3.5

  • 自動縮放:在 Azure Synapse Spark 中,不論節點大小如何,集區都可以擴大至 200 個節點。 在 Fabric 中,節點數目上限受制於節點大小和佈建容量。 請參閱下列 F64 SKU 範例。

    Spark 集區大小 Azure Synapse Spark Fabric Spark (自訂集區、SKU F64)
    Small 最小:3,最大:200 最小:1,最大:32
    最小:3,最大:200 最小:1,最大:16
    大型 最小:3,最大:200 最小:1,最大:8
    X-Large 最小:3,最大:200 最小:1,最大:4
    XX-Large 最小:3,最大:200 最小:1,最大:2
  • 可調整的節點大小:在 Azure Synapse Spark 中,最多可以進入 200 個節點。 在 Fabric 中,在自訂 Spark 集區中能擁有的節點數取決於節點大小和 Fabric 容量。 容量是一項度量值,可衡量在 Azure 中可以使用的計算能力。 其中一種計算方法,兩個 Spark 虛擬核心 (Spark 的計算能力單位) 等於一個容量單位。 例如,Fabric 容量 SKU F64 具有 64 個容量單位,相當於 128 個 Spark 虛擬核心。 因此,如果選擇小型節點大小,集區中最多可以有 32 個節點 (128/4 = 32)。 然後,容量中的虛擬核心總數/每個節點大小的虛擬節點 = 可用節點總數。 如需詳細資訊,請參閱 Spark 計算

  • 節點大小系列:Fabric Spark 集區目前僅支援記憶體最佳化點大小系列。 如果在 Azure Synapse 中使用 GPU 加速的 SKU Spark 集區,則無法在 Fabric 中使用。

  • 節點大小:XX-Large 節點大小在 Azure Synapse 中隨附 432 GB 的記憶體,而相同節點大小在 Fabric 中有 512 GB,包括 64 個虛擬核心。 其餘節點大小 (小型到 X-Large) 在 Azure SynapseFabric 中都有相同的虛擬核心和記憶體。

  • 自動暫停:如果在 Azure Synapse Spark 中啟用該功能,Apache Spark 集區會在指定的閒置時間之後自動暫停。 此設定可在 Azure Synapse 中設定 (至少 5 分鐘),但工作階段過期後,自訂集區在 Fabric 中有 2 分鐘的不可自訂預設自動暫停持續時間。 Fabric 中的預設工作階段過期設定為 20 分鐘。

  • 高並行:Fabric 在筆記本中支援高並行。 如需詳細資訊,請參閱<Fabric Spark 中的高並行模式>。

  • 並行限制:就並行而言,對於每個 Spark 集區,Azure Synapse Spark 限制同時執行的工作數為 50 個,限制處於佇列狀態的工作數為 200 個。 對於作用中工作上限,每個 Spark 集區為 250 個,每個工作區為 1000 個。 在 Microsoft Fabric Spark 中,容量 SKU 會決定並行限制。 對範圍從 1 到 512 的最大並行工作,SKU 有不同的限制。 此外,Fabric Spark 具有動態保留型節流系統,可管理並行存取,並確保即使在尖峰使用時間期間也能順利運作。 如需詳細資訊,請參閱 Microsoft Fabric Spark 中的並行限制和佇列以及 Fabric 容量

  • 多個 Spark 集區:如果想擁有多個 Spark 集區,請使用 Fabric 環境依筆記本或 Spark 工作定義來選取集區。 如需詳細資訊,請參閱<在 Microsoft Fabric 中建立、設定及使用環境>。

注意

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

Spark 組態比較

Spark 組態可以在不同層級套用:

  • 環境層級:這些組態會用作環境中所有 Spark 工作的預設組態。
  • 內嵌層級:使用筆記本和 Spark 工作定義來設定內嵌 Spark 組態。

雖然 Azure Synapse Spark 和 Fabric 支援這兩個選項,但也有一些量:

Spark 設定 Azure Synapse Spark Fabric Spark
環境層級 支援,集區 支援,環境
內嵌 Yes Yes
匯入/匯出 Yes 支援 (.yml 來自環境)
API/SDK 支援 Yes Yes
  • 環境層級:在 Azure Synapse 中,可以定義多個 Spark 組態,並將其指派給不同的 Spark 集區。 可以使用環境來在 Fabric 中執行此動作。

  • 內嵌:在 Azure Synapse 中,筆記本和 Spark 工作都支援連結不同的 Spark 組態。 在 Fabric 中,使用 spark.conf.set(<conf_name>, <conf_value>) 設定來自訂工作階段層級組態。 對於批次工作,也可以透過 SparkConf 套用組態。

  • 匯入/匯出:Spark 組態的此選項可在 Fabric 環境中使用。

  • 其他考量

    • 固定 Spark 組態:某些 Spark 組態是固定的。 如果收到訊息 AnalysisException: Can't modify the value of a Spark config: <config_name>,則表示相關屬性是固定的。
    • FAIR 排程器:FAIR 排程器在高並行模式中使用。
    • V 順序V 順序 是針對 Fabric Spark 集區中預設啟用的 Parquet 檔案的寫入時間最佳化。
    • 優化寫入:Azure Synapse 中預設停用最佳化寫入,但會針對 Fabric Spark 預設啟用。

Spark 程式庫比較

可以在不同層級套用 Spark 程式庫:

  • 工作區層級:無法將這些程式庫上傳/安裝到工作區,並稍後將它們指派給 Azure Synapse 中的特定 Spark 集區。
  • 環境層級:可以將程式庫上傳/安裝至環境。 環境中執行的所有筆記本和 Spark 工作定義皆可使用環境層級程式庫。
  • 內嵌:除了環境層級的程式庫之外,也可以指定內嵌程式庫。 例如,在筆記本工作階段的開頭。

考量因素:

Spark 程式庫 Azure Synapse Spark Fabric Spark
工作區層級 No
環境層級 支援,集區 支援,環境
內嵌 Yes Yes
匯入/匯出 Yes Yes
API/SDK 支援 Yes Yes
  • 其他考量
    • 內建程式庫:Fabric 和 Azure Synapse 共用 Spark 的通用核心,但它們對執行階段程式庫的不同支援略有不同。 一般而言,使用程式代碼與某些例外相容。 在此情況下,使用者可能需要進行編譯、新增自訂程式庫,以及調整語法。 請參閱這裡,了解內建 Fabric Spark 執行階段程式庫。

筆記本比較

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

筆記本功能 Azure Synapse Spark Fabric Spark
匯入/匯出 Yes Yes
工作階段組態 支援,UI 和內嵌 支援,UI (環境) 和內嵌
IntelliSense Yes
mssparkutils Yes Yes
筆記本資源 No Yes
共同作業 No Yes
高並行 No Yes
適用於 Spark C# 的 .NET No
管線活動支援 Yes Yes
內建排程執行支援 No Yes
API/SDK 支援 Yes Yes
  • mssparkutils:因為 Fabric 尚未支援 DMTS 連線,因此目前在 mssparkutils.credentials Fabric 中僅支援 getTokengetSecret

  • 筆記本資源:Fabric 筆記本提供類似 Unix 的檔案系統,可協助管理資料夾和檔案。 如需詳細資訊,請參閱<如何使用 Microsoft Fabric 筆記本>。

  • 共同作業:Fabric 筆記本是一個共同作業項目,可支援多個使用者編輯同一個筆記本。 如需詳細資訊,請參閱<如何使用 Microsoft Fabric 筆記本>。

  • 高並行:在 Fabric 中,可以將筆記本連結至高並行工作階段。 對於在 Azure Synapse 中使用 ThreadPoolExecutor 的使用者,此選項是一個替代方案。 如需詳細資訊,請參閱<設定 Fabric 筆記本的高並行模式>。

  • 適用於 Spark C# 的 .NET:Fabric 不支援 .NET Spark (C#)。 不過,我們建議使用 C# 或 F# 撰寫的現有工作負載的使用者移轉至 Python 或 Scala

  • 內建排程執行支援:Fabric 支援筆記本的排程執行。

  • 其他考量

    • 可以使用筆記本內部的功能,這些功能僅支援特定版本的 Spark。 請記住,Fabric 不支援 Spark 2.4 和 3.1。
    • 如果筆記本或 Spark 工作將連結服務與不同的資料來源連線或掛接點搭配使用,應修改 Spark 工作,使用替代方法來處理與外部資料來源和接收器的連線。 借助 Spark 程式碼,使用可用的 Spark 程式庫連線到資料來源。

Spark 工作定義比較

Spark 工作定義重要考量:

Spark 工作功能 Azure Synapse Spark Fabric Spark
PySpark Yes Yes
Scala Yes Yes
適用於 Spark C# 的 .NET No
SparkR No Yes
匯入/匯出 支援 (UI) No
管線活動支援 Yes Yes
內建排程執行支援 No Yes
重試原則 No Yes
API/SDK 支援 Yes Yes
  • Spark 工作:可以自備 .py/.R/jar 檔案。 Fabric 支援 SparkR。 Spark 工作定義支援參考檔案、命令列引數、Spark 組態和 Lakehouse 參考。

  • 匯入/匯出:在 Azure Synapse 中,可以從 UI 匯入/匯出 JSON 型 Spark 工作定義。 Fabric 中尚未提供此功能。

  • 適用於 Spark C# 的 .NET:Fabric 不支援 .NET Spark (C#)。 不過,建議使用 C# 或 F# 撰寫的現有工作負載的使用者移轉至 Python 或 Scala

  • 內建排程執行支援:Fabric 支援 Spark 工作定義的排程執行

  • 重試原則:此選項允許用戶無限期地執行 Spark 結構化串流工作。

Hive 中繼存放區 (HMS) 比較

Hive 中繼存放區 (HMS) 差異和考量:

HMS 類型 Azure Synapse Spark Fabric Spark
內部 HMS Yes 支援 (Lakehouse)
外部 HMS No
  • 外部 HMS:Fabric 目前不支援目錄 API 和存取外部 Hive 中繼存放區 (HMS)。