この記事では、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#): サポートされていません
ファブリックに関するその他の考慮事項
- ワークロード レベルの RBAC: Fabric では、4 つのワークスペース ロールがサポートされています。 詳細については、「 ワークスペースのロール」を参照してください。
- CI/CD: Fabric API/SDK と デプロイ パイプラインを使用します。
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 Synapse と Fabric の両方で同じ仮想コアとメモリが使用されます。
自動一時停止の動作
自動一時停止設定の比較:
- 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 では
getTokenとgetSecretのみがサポートされます (DMTS 接続は使用できません)。 - ノートブック リソース: Fabric には、ファイルを管理するための Unix に似たファイル システムが用意されています。 ノートブックの使用方法を参照してください。
- 高いコンカレンシー: Azure Synapse での ThreadPoolExecutor の代替。 高コンカレンシー モードの構成を参照してください。
- Spark 用 .NET: C#/F# ワークロードを Python または Scala に移行します。
- リンクされたサービス: 外部データ ソース接続用の Spark ライブラリに置き換えます。
Note
ノートブックを Azure Synapse から Fabric に移行する方法について説明します。
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 に移行します。
Note
Spark ジョブ定義を Azure Synapse から Fabric に移行する方法について説明します。
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 に移行する方法に関するセクションを参照してください。
関連するコンテンツ
- 詳細については、Spark プール、構成、ライブラリ、ノートブック、および Spark ジョブ定義の移行オプションを参照してください
- データとパイプラインの移行
- Hive メタストア メタデータの移行