共用方式為


比較網狀架構 資料工程師 和 Azure Synapse Spark

網狀架構 資料工程師 與 Azure Synapse Spark 之間的這項比較提供主要功能摘要,以及各種類別的深入分析,包括 Spark 集區、組態、連結庫、筆記本和 Spark 作業定義。

下表比較不同類別的 Azure Synapse Spark 和 Fabric Spark:

類別 Azure Synapse Spark 網狀架構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 數據管線
管線活動 (筆記本)
資料 主要記憶體 (ADLS Gen2)
資料落地(以叢集/區域為基礎)
主要記憶體 (OneLake
資料落地 (容量/區域型)
中繼資料 內部 Hive 中繼存放區 (HMS)
外部 HMS (使用 Azure SQL DB)
內部 HMS (湖屋
-
連線 連線 or 型態 (連結服務)
資料來源
數據源 conn。 使用工作區身分識別
連線 or 型態 (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
網狀架構UI
共同作業 (工作區和共用)
-
API/SDK
mssparkutils
記錄和監視 Spark Advisor
內建監視集區和作業(透過 Synapse Studio)
Spark 歷程記錄伺服器
Prometheus/Grafana
Log Analytics
儲存體 帳戶
事件中樞
Spark Advisor
內建監視集區和作業(透過 監視中樞
Spark 歷程記錄伺服器
-
-
-
-
業務持續性和災害復原 (BCDR) BCDR (資料) ADLS Gen2 BCDR (資料) OneLake

考慮和限制:

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

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

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

  • CI/CD:您可以使用網狀架構 API/SDK 和 部署管線

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

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

  • 其他考慮

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

Spark 集區比較

下表比較 Azure Synapse Spark 和 Fabric Spark 集區。

Spark 設定 Azure Synapse Spark 網狀架構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
並行限制 已修正 以容量為基礎的變數
多個Spark集區 Yes 是(環境)
智慧型快取 Yes Yes
API/SDK 支援 No
  • 運行時間:Fabric 不支援Spark 2.4、3.1和3.2版本。 Fabric Spark 支援在運行時間 1.1 內具有 Delta 2.2 的 Spark 3.3、在運行時間 1.2 內具有 Delta 2.4 的 Spark 3.4 和運行時間 1.3 內具有 Delta 3.0 的 Spark 3.5

  • 自動調整:在 Azure Synapse Spark 中,不論節點大小為何,集區都可以相應增加至 200 個節點。 在 Fabric 中,節點數目上限受限於節點大小和布建容量。 請參閱下列 F64 SKU 範例。

    Spark 集區大小 Azure Synapse Spark 網狀架構 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 集區中擁有的節點數目取決於您的節點大小和網狀架構容量。 容量是一項量值,可測量您可以在 Azure 中使用的運算能力。 其中一種方法是,兩個Spark虛擬核心(Spark的運算能力單位)等於一個容量單位。 例如,網狀架構容量 SKU F64 有 64 個容量單位,相當於 128 個 Spark 虛擬核心。 因此,如果您選擇小型節點大小,您的集區中最多可以有32個節點(128/4 = 32)。 然後,每個節點大小容量/虛擬核心中的虛擬核心總數 = 可用的節點總數。 如需詳細資訊,請參閱 Spark計算

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

  • 節點大小:xx 大型節點大小隨附 Azure Synapse 中 432 GB 的記憶體,而相同節點大小在網狀架構中有 512 GB,包括 64 個虛擬核心。 其餘節點大小(小型到 x-large)在 Azure Synapse 和 Fabric都有相同的虛擬核心和記憶體。

  • 自動暫停:如果您在 Azure Synapse Spark 中啟用它,Apache Spark 集區會在指定的空閒時間之後自動暫停。 此設定可在 Azure Synapse 中設定(至少 5 分鐘),但自定義集區在會話到期後,Fabric 的預設 自動暫停持續時間為 2 分鐘 。 默認會話到期日在 Fabric 中設定為 20 分鐘。

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

  • 並行限制:就並行而言,Azure Synapse Spark 每個 Spark 集區有 50 個同時執行的作業,而每個 Spark 集區 200 個佇列作業的限制。 作用中作業上限是每個Spark集區250個,每個工作區1000個。 在 Microsoft Fabric Spark 中,容量 SKU 會定義並行限制。 SKU 對範圍從 1 到 512 的最大並行作業有不同的限制。 此外,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 網狀架構Spark
環境層級 是,集區 是,環境
內嵌 Yes Yes
匯入/匯出 Yes 是(來自環境.yml)
API/SDK 支援 No
  • 環境層級:在 Azure Synapse 中,您可以定義多個 Spark 組態,並將其指派給不同的 Spark 集區。 您可以使用環境在 Fabric 中執行此動作。

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

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

  • 其他考慮

    • 不可變的Spark組態:某些Spark組態是不可變的。 如果您收到訊息 AnalysisException: Can't modify the value of a Spark config: <config_name>,有問題的 屬性是不可變的。
    • FAIR 排程器:FAIR 排程器用於 高併行模式
    • V 順序V 順序 會套用至網狀架構 Spark 集區中預設啟用的 parquet 檔案的寫入時間優化。
    • 優化寫入:Azure Synapse 中預設會停用優化寫入,但預設會針對 Fabric Spark 啟用。

Spark 連結庫比較

您可以在不同層級套用 Spark 連結庫:

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

考量:

Spark 連結庫 Azure Synapse Spark 網狀架構Spark
工作區層級 No
環境層級 是,集區 是,環境
內嵌 Yes Yes
匯入/匯出 Yes Yes
API/SDK 支援 No
  • 其他考慮
    • 內建連結庫:網狀架構和 Azure Synapse 共用 Spark 的通用核心,但它們在運行時間連結庫的不同支援方面可能稍有不同。 一般而言,使用程式代碼與某些例外狀況相容。 在此情況下,使用者可能需要編譯、新增自定義連結庫,以及調整語法。 請參閱這裡的內建 Fabric Spark 運行時間連結庫

筆記本比較

Notebook 和 Spark 作業定義是用於在 Fabric 中開發 Apache Spark 作業的主要程式碼專案。 Azure Synapse Spark Notebook 和 Fabric Spark Notebook 之間有一些差異:

筆記本功能 Azure Synapse Spark 網狀架構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 連線,因此目前在 getToken Fabric 中mssparkutils.credentials僅支援 和 getSecretmssparkutils.env 尚不支援。

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

  • 共同作業:Fabric 筆記本是一個共同作業專案,可支援多個用戶編輯相同的筆記本。 如需詳細資訊,請參閱 如何使用 Microsoft Fabric 筆記本

  • 高併行:在 Fabric 中,您可以將筆記本附加至高並行會話。 此選項是使用者在 Azure Synapse 中使用 ThreadPoolExecutor 的替代方案。 如需詳細資訊,請參閱 設定網狀架構筆記本的高並行模式。

  • 適用於 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 網狀架構Spark
PySpark Yes Yes
Scala Yes Yes
適用於 Spark C 的 .NET# No
SparkR No Yes
匯入/匯出 是(UI) No
管線活動支援 No
內建排程執行支援 No Yes
重試原則 No Yes
API/SDK 支援 Yes Yes
  • Spark 作業:您可以帶.py/。R/jar 檔案。 網狀架構支援SparkR。 Spark 作業定義支持參考檔案、命令行自變數、Spark 組態和 Lakehouse 參考。

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

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

  • 管線活動支援:Fabric 中的數據管線尚未包含Spark作業定義活動。 如果您想要定期執行 Spark 作業,可以使用排程的執行。

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

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

Hive 中繼存放區 (HMS) 比較

Hive MetaStore (HMS) 差異和考慮:

HMS 類型 Azure Synapse Spark 網狀架構Spark
內部 HMS Yes 是(湖屋)
外部 HMS No
  • 外部 HMS:網狀架構目前不支援目錄 API 和外部 Hive 中繼存放區 (HMS) 的存取權。