次の方法で共有


Fabric Data Engineering と Azure Synapse Spark の比較

この記事では、Spark プール、構成、ライブラリ、ノートブック、および Spark ジョブ定義 (SJD) 間で Azure Synapse Spark と Fabric Spark を比較します。

カテゴリ Azure Synapse Spark ファブリック スパーク
Spark プール Spark プール
-
-
スターター プール (事前ウォーミング済み) / カスタム プール
V-Order
高コンカレンシー
Spark の構成 プール レベル
ノートブックまたは Spark ジョブ定義レベル
環境レベル
ノートブックまたは Spark ジョブ定義レベル
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)
データ所在地 (容量/リージョン ベース)
Metadata 内部 Hive メタストア (HMS)
外部 HMS (Azure SQL DB を使用)
内部 HMS (Lakehouse)
-
つながり コネクタの種類 (リンクされたサービス)
データ ソース
データ ソース接続 (ワークスペース ID を使用)
コネクタの種類 (データ移動および変換サービス)
データ ソース
-
セキュリティ RBAC とアクセス制御
ストレージ ACL (ADLS Gen2)
プライベート リンク
ネットワーク分離のためのマネージド仮想ネットワーク (VNet)
Synapse ワークスペース ID
データ流出防止 (DEP)
サービス タグ
Key Vault (mssparkutils/リンクされたサービスを経由)
RBAC とアクセス制御
OneLake RBAC
プライベート リンク
マネージド仮想ネットワーク (VNet)
ワークスペース ID
-
サービス タグ
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アドバイザー
組み込みの監視プールとジョブ (Synapse Studio を経由)
Spark History Server
Prometheus/Grafana
ログ解析
ストレージ アカウント
Event Hubs
Spark Advisor
組み込みの監視プールとジョブ (監視ハブを経由)
Spark History Server
-
Log Analytics
ストレージ アカウント
Event Hubs
事業継続とディザスター リカバリー (BCDR) BCDR (データ) ADLS Gen2 BCDR (データ) OneLake

選択するタイミング: OneLake ストレージ、組み込みの CI/CD パイプライン、容量ベースのスケーリングを使用した統合分析には、Fabric Spark を使用します。 GPU 高速プール、外部 Hive メタストア、または JDBC 接続が必要な場合は、Azure Synapse Spark を使用します。

Fabric の主な制限事項

  • ノートブックの DMTS: データ移動および変換サービスは、ノートブックまたは Spark ジョブ定義では使用できません
  • Key Vault のマネージド ID: ノートブックではサポートされていません
  • 外部 Hive メタストア: サポートされていません
  • GPU アクセラレータ プール: 利用できません
  • .NET for Spark (C#): サポートされていません

ファブリックに関するその他の考慮事項

Spark プールの比較

次の表は、Azure Synapse Spark プールと Fabric Spark プールの比較です。

Spark の設定 Azure Synapse Spark ファブリック スパーク
ライブ プール (事前にウォームされたインスタンス) - はい、スターター プール
カスタム プール はい はい
Spark のバージョン (ランタイム) 2.4、3.1、3.2、3.3、3.4 3.4, 3.5, 4.0
自動スケール はい はい
Executor の動的割り当て はい、最大 200 はい、容量に基づいた数
調整可能なノード サイズ はい、3 から 200 まで はい、1 から容量に基づいた数まで
最小ノード構成 3 ノード 1 ノード
ノード サイズ ファミリ メモリ最適化、GPU アクセラレーション メモリ最適化
ノード サイズ Small から XXXLarge まで Small から XXLarge まで
自動一時停止 はい、カスタマイズ可能で最小 5 分 はい、カスタマイズ不可で 2 分
高コンカレンシー いいえ はい
V-Order いいえ はい
Spark Autotune いいえ はい
ネイティブ実行エンジン いいえ はい
コンカレンシーの制限 固定 容量に基づいて可変
複数の Spark プール はい はい (環境)
インテリジェント キャッシュ はい はい
API/SDK のサポート はい はい
  • ランタイム: Fabric では、Spark 3.3 以前のバージョンはサポートされていません。 Fabric Spark では、ランタイム 1.2 内の Delta 2.4 を使用した Spark 3.4、ランタイム 1.3 内の Delta 3.1 の Spark 3.5、ランタイム 2.0 内のデルタ 4.0 の Spark 4.0 がサポートされます。

選択するタイミング: 高速スタートアップ (スターター プール)、単一ノード ジョブ、高コンカレンシー セッション、V オーダー最適化に Fabric Spark プールを使用します。 GPU アクセラレーションが必要な場合や、最大 200 ノードまで固定スケーリングする必要がある場合は、Azure Synapse プールを使用します。

Spark ランタイムのバージョン

Fabric Spark でサポートされているバージョン:

Fabric では、Spark 2.4、3.1、または 3.2 はサポートされていません。

調整可能なノード サイズ

Azure Synapse Spark プールは、ノード サイズに関係なく最大 200 ノードにスケールアップします。 Fabric では、ノードの最大数はノード サイズとプロビジョニングされた容量 (SKU) によって異なります。

ファブリック容量変換: 2 Spark 仮想コア = 1 容量ユニット。 数式: 容量内の仮想コアの合計÷ノードあたりの仮想コア サイズ = 使用可能な最大ノード数。

たとえば、SKU F64 には 64 個の容量ユニット (128 個の Spark 仮想コア) が用意されています。 次の表に、F64 のノード制限を示します。

Spark プール サイズ Azure Synapse Spark Fabric Spark (カスタム プール、SKU F64)
Small (4 vCores) 最小: 3、最大: 200 最小: 1、最大: 32
Medium (8 仮想コア) 最小: 3、最大: 200 最小: 1、最大: 16
Large (16 仮想コア) 最小: 3、最大: 200 最小: 1、最大: 8
X-Large (32 仮想コア) 最小: 3、最大: 200 最小: 1、最大: 4
XX-Large (64 仮想コア) 最小: 3、最大: 200 最小: 1、最大: 2

詳細については、Spark コンピューティングに関するページを参照してください。

ノードのサイズ

ファブリック Spark プールでは、 メモリ最適化ノード ファミリのみがサポートされます。 Azure Synapse で使用できる GPU アクセラレータ プールは、Fabric ではサポートされていません。

ノード サイズの比較 (XX-Large):

  • Azure Synapse: 432 GB メモリ
  • ファブリック: 512 GB のメモリ、64 個の仮想コア

ノード サイズが Small から X-Large の場合、 Azure SynapseFabric の両方で同じ仮想コアとメモリが使用されます。

自動一時停止の動作

自動一時停止設定の比較:

  • Azure Synapse: 構成可能なアイドル タイムアウト (最小 5 分)
  • ファブリック: セッションの有効期限が切れた後の 2 分間の自動一時停止を修正しました (構成できません)。既定のセッション タイムアウトは 20 分です

高コンカレンシー

Fabric では、ノートブックの 高コンカレンシー モード がサポートされており、複数のユーザーが 1 つの Spark セッションを共有できます。 Azure Synapse では、この機能はサポートされていません。

コンカレンシーの制限

Azure Synapse Spark の制限 (固定):

  • プールあたり 50 個の同時実行ジョブ、プールあたり 200 個のキューされたジョブ
  • プールあたり 250 個のアクティブ ジョブ、ワークスペースあたり 1,000 個

Fabric Spark の制限 (SKU ベース):

  • 同時実行ジョブは容量 SKU によって異なります。最大 1 ~ 512
  • 動的予約ベースのスロットリングにより、ピーク時の使用量が管理されます

詳細については、「Microsoft Fabric Spark のコンカレンシー制限とキューイング」を参照してください。

複数の Spark プール

Fabric では、 環境 を使用して、ノートブックまたは Spark ジョブ定義ごとに異なる Spark プールを構成して選択します。

Note

Azure Synapse Spark プールを Fabric に移行する方法に関するセクションを参照してください。

Spark 構成の比較

Spark 構成は、次の 2 つのレベルで適用されます。

  • 環境レベル: 環境内のすべての Spark ジョブの既定の構成
  • インライン レベル: ノートブックまたは Spark ジョブ定義でのセッションごとの構成
Spark の構成 Azure Synapse Spark ファブリック スパーク
環境レベル はい、プール はい、環境
インライン はい はい
インポート/エクスポート はい はい (環境からの .yml)
API/SDK のサポート はい はい

選択するタイミング: どちらのプラットフォームでも、環境とインライン構成がサポートされます。 ファブリックでは、プール レベルの構成ではなく環境が使用されます。

  • インライン構文: Fabric では、セッション レベルの構成に spark.conf.set(<conf_name>, <conf_value>) を使用します。 バッチ ジョブの場合は、SparkConf を使用します。
  • 変更できない構成: 一部の Spark 構成は変更できません。 エラー メッセージ: AnalysisException: Can't modify the value of a Spark config: <config_name>
  • V オーダー: Fabric で既定で有効になっています。Parquet ファイルの書き込み時間の最適化。 V オーダーを参照してください。
  • 最適化された書き込み: Fabric で既定で有効になっています。Azure Synapse では既定で無効になっています。

Note

Spark 構成を Azure Synapse から Fabric に移行する方法について説明します。

Spark ライブラリの比較

Spark ライブラリは、次の 3 つのレベルで適用されます。

  • ワークスペース レベル: Azure Synapse でのみ使用可能
  • 環境レベル: 環境内のすべてのノートブックと Spark ジョブ定義で使用できるライブラリ
  • インライン: ノートブックの起動時にインストールされるセッション固有のライブラリ
Spark ライブラリ Azure Synapse Spark ファブリック スパーク
ワークスペースレベル はい いいえ
環境レベル はい、プール はい、環境
インライン はい はい
インポート/エクスポート はい はい
API/SDK のサポート はい はい

選択するタイミング: どちらのプラットフォームでも、環境ライブラリとインライン ライブラリがサポートされます。 Fabric では、ワークスペース レベルのパッケージはサポートされていません。

  • 組み込みライブラリ: Fabric ランタイムと Azure Synapse ランタイムは共通の Spark コアを共有しますが、ライブラリのバージョンは異なります。 一部のコードでは、再コンパイルまたはカスタム ライブラリが必要になる場合があります。 ファブリック ランタイム ライブラリを参照してください。

Note

Azure Synapse Spark ライブラリを Fabric に移行する方法に関するセクションを参照してください。

ノートブックの比較

ノートブックと Spark ジョブ定義は、Fabric で Apache Spark ジョブを開発するための主要なコード項目です。 Azure Synapse Spark ノートブックFabric Spark ノートブックには、いくつかの違いがあります。

ノートブックの機能 Azure Synapse Spark ファブリック スパーク
インポート/エクスポート はい はい
セッションの構成 Yes. UI とインライン Yes. UI (環境) とインライン
IntelliSense はい はい
mssparkutils はい はい
Notebook のリソース いいえ はい
共同作業をする いいえ はい
高コンカレンシー いいえ はい
Spark 向け .NET C# はい いいえ
パイプライン アクティビティのサポート はい はい
組み込みのスケジュールされた実行のサポート いいえ はい
API/SDK のサポート はい はい

選択するタイミング: コラボレーション、コンカレンシーの高いセッション、組み込みのスケジュール設定、ノートブック リソースに Fabric ノートブックを使用します。 .NET for Spark (C#) が必要な場合は、Azure Synapse ノートブックを使用します。

  • notebookutils.credentials: Fabric では getTokengetSecret のみがサポートされます (DMTS 接続は使用できません)。
  • ノートブック リソース: Fabric には、ファイルを管理するための Unix に似たファイル システムが用意されています。 ノートブックの使用方法を参照してください。
  • 高いコンカレンシー: Azure Synapse での ThreadPoolExecutor の代替。 高コンカレンシー モードの構成を参照してください。
  • Spark 用 .NET: C#/F# ワークロードを Python または Scala に移行します。
  • リンクされたサービス: 外部データ ソース接続用の Spark ライブラリに置き換えます。

Spark ジョブ定義の比較

Spark ジョブ定義に関する重要な考慮事項は次のとおりです。

Spark ジョブの機能 Azure Synapse Spark ファブリック スパーク
PySpark はい はい
Scala はい はい
Spark 向け .NET C# はい いいえ
SparkR いいえ はい
インポート/エクスポート はい (UI) いいえ
パイプライン アクティビティのサポート はい はい
組み込みのスケジュールされた実行のサポート いいえ はい
再試行ポリシー いいえ はい
API/SDK のサポート はい はい

選択するタイミング: SparkR のサポート、組み込みのスケジュール設定、再試行ポリシーに Fabric Spark ジョブ定義を使用します。 .NET for Spark (C#) または UI ベースのインポート/エクスポートが必要な場合は、Azure Synapse を使用します。

  • サポートされているファイル: .py、.参照ファイル、コマンド ライン引数、および lakehouse 参照を含む R ファイルと.jar ファイル。
  • インポート/エクスポート: AZURE Synapse でのみ使用できる UI ベースの JSON インポート/エクスポート。
  • 再試行ポリシー: Spark 構造化ストリーミング ジョブに対して無期限の実行を有効にします。
  • Spark 用 .NET: C#/F# ワークロードを Python または Scala に移行します。

Hive メタストア (HMS) の比較

HMS の種類 Azure Synapse Spark ファブリック スパーク
内部 HMS はい はい (Lakehouse )
外部 HMS はい いいえ

選択するタイミング: Lakehouse ベースの内部 HMS がニーズを満たしている場合は、Fabric を使用します。 外部 Hive メタストア (Azure SQL DB) またはカタログ API アクセスが必要な場合は、Azure Synapse を使用します。

Note

Azure Synapse Spark カタログ HMS メタデータを Fabric に移行する方法に関するセクションを参照してください。