Fabric Data Engineering と Azure Synapse Spark の比較

Fabric Data Engineering と Azure Synapse Spark の間のこの比較では、主な機能の概要に加えて、Spark プール、構成、ライブラリ、ノートブック、Spark ジョブ定義などのさまざまなカテゴリにわたる詳細な分析が提供されます。

次の表は、さまざまなカテゴリにわたる Azure Synapse Spark と Fabric Spark の比較です。

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

考慮事項と制限:

  • DMTS 統合: ノートブックと Spark ジョブ定義を介して DMTS を使用することはできません。

  • ワークロード レベルの RBAC: Fabric では、4 つの異なるワークスペース ロールがサポートされます。 詳細については、「Microsoft Fabric のワークスペースのロール」を参照してください。

  • マネージドID: 現在、Fabric は、ノートブックで Azure KeyVault 用のワークスペース ID またはマネージド ID を使用したノートブックと Spark ジョブ定義の実行をサポートしていません。

  • CI/CD: Fabric API/SDK とデプロイ パイプラインを使用できます。

  • Livy API および Spark ジョブの送信と管理の方法: Livy API は、ロードマップに含まれていますが、Fabric ではまだ公開されていません。 Fabric UI でノートブックと Spark ジョブ定義を作成する必要があります。

  • Spark ログとメトリック: Azure Synapse では、Log Analytics、BLOB、Event Hubs などの独自のストレージに Spark ログとメトリックを出力できます。 また、API からワークスペースの Spark アプリケーションの一覧を取得することもできます。 現時点では、この 2 つの機能は Fabric では利用できません。

  • その他の考慮事項:

    • JDBC: JDBC 接続のサポートは、現在 Fabric では使用できません。

Spark プールの比較

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

Spark の設定 Azure Synapse Spark Fabric Spark
ライブ プール (事前ウォーミングされたインスタンス) - はい、スターター プール
カスタム プール はい はい
Spark のバージョン (ランタイム) 2.4、3.1、3.2、3.3、3.4 3.3, 3.4, 3.5
自動スケール はい はい
Executor の動的割り当て はい、最大 200 はい、容量に基づいた数
調整可能なノード サイズ はい、3 から 200 まで はい、1 から容量に基づいた数まで
最小ノード構成 3 ノード 1 ノード
ノード サイズ ファミリ メモリ最適化、GPU アクセラレーション メモリ最適化
ノード サイズ Small から XXXLarge まで Small から XXLarge まで
自動一時停止 はい、カスタマイズ可能で最小 5 分 はい、カスタマイズ不可で 2 分
高コンカレンシー いいえ はい
V-Order いいえ はい
Spark Autotune いいえ はい
ネイティブ実行エンジン いいえ はい
コンカレンシーの制限 固定 容量に基づいて可変
複数の Spark プール はい はい (環境)
インテリジェント キャッシュ はい はい
API/SDK のサポート はい はい
  • ランタイム: Fabric は、Spark 2.4、3.1、3.2 バージョンをサポートしていません。 Fabric Spark では、Runtime 1.1 内の Delta 2.2 を使用した Spark 3.3 、Runtime 1.2 内の Delta 2.4 を使用した Spark 3.4、および Runtime 1.3 内の Delta 3.0 を使用した 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
    Large 最小: 3、最大: 200 最小: 1、最大: 8
    X-Large 最小: 3、最大: 200 最小: 1、最大: 4
    極大 最小: 3、最大: 200 最小: 1、最大: 2
  • 調整可能なノード サイズ: Azure Synapse Spark では、最大 200 個のノードを使用できます。 Fabric では、カスタム Spark プールに含めることができるノードの数は、ノード サイズと Fabric の容量によって異なります。 容量は、Azure で使用できるコンピューティング能力の量の尺度です。 1 つの考え方として、2個の Spark 仮想コア (Spark のコンピューティング能力の単位) が 1 容量ユニットに等しいということがあります。 たとえば、Fabric の容量 SKU F64 には 64 容量ユニットがあり、これは 128 個の Spark 仮想コアに相当します。 そのため、小さいノード サイズを選択した場合は、プール内に最大 32 個のノードを含めることができます (128/4 = 32)。 つまり、容量内の仮想コアの合計数/ノード サイズあたりの仮想コア数 = 使用可能なノードの合計数です。 詳細については、Spark コンピューティングに関するページを参照してください。

  • ノード サイズ ファミリ: 現時点では、Fabric Spark プールではメモリ最適化ノード サイズ ファミリのみがサポートされています。 Azure Synapse で GPU アクセラレーション SKU Spark プールを使用している場合、それらを Fabric では使用できません。

  • ノード サイズ: xxlarge ノード サイズに Azure Synapse では 432 GB のメモリが付属し、同じノード サイズに Fabric では 64 個の仮想コアを含む 512 GB のメモリが付属します。 残りのノード サイズ (small から xlarge まで) には、Azure SynapseFabric の両方で同じ仮想コア数とメモリ量が付属します。

  • 自動一時停止: 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 で環境を作成して構成し、使用する」を参照してください。

Note

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

Spark 構成の比較

Spark 構成は、さまざまなレベルで適用できます。

  • 環境レベル: これらの構成は、環境内のすべての Spark ジョブのデフォルトの構成として使用されます。
  • インライン レベル: ノートブックと Spark ジョブ定義を使用して、Spark 構成をインラインで設定します。

Azure Synapse Spark と Fabric では両方のオプションがサポートされていますが、いくつかの考慮事項があります。

Spark の構成 Azure Synapse Spark Fabric Spark
環境レベル はい、プール はい、環境
インライン はい はい
インポート/エクスポート はい はい (環境からの .yml)
API/SDK のサポート はい はい
  • 環境レベル: 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-Order: V-Order は、Parquet ファイルに適用される書き込み時の最適化であり、Fabric Spark プールではデフォルトで有効になっています。
    • 最適化された書き込み: 最適化された書き込みは、Azure Synapse ではデフォルトで無効になっていますが、Fabric Spark ではデフォルトで有効になっています。

Note

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

Spark ライブラリの比較

Spark ライブラリは、次のようにさまざまなレベルで適用できます。

  • ワークスペース レベル: これらのライブラリをワークスペースにアップロードまたはインストールし、後でそれらを Azure Synapse 内の特定の Spark プールに割り当てることはできません。
  • 環境レベル: ライブラリを環境にアップロードまたはインストールできます。 環境レベルのライブラリは、環境で実行されているすべてのノートブックおよび Spark ジョブ定義で使用できます。
  • インライン: 環境レベルのライブラリに加えて、インライン ライブラリを指定することもできます。 たとえば、ノートブック セッションの開始時などです。

考慮事項:

Spark ライブラリ Azure Synapse Spark Fabric Spark
ワークスペースレベル はい いいえ
環境レベル はい、プール はい、環境
インライン はい はい
インポート/エクスポート はい はい
API/SDK のサポート はい はい
  • その他の考慮事項:
    • 組み込みのライブラリ: Fabric と Azure Synapse は、Spark の共通コアを共有していますが、ランタイム ライブラリのサポートが多少異なっている場合があります。 通常、コードの使用には互換性がありますが、いくつかの例外があります。 その場合、ユーザーによるコンパイル、カスタム ライブラリの追加、構文の調整が必要になることがあります。 組み込みの Fabric Spark ランタイム ライブラリについては、こちらを参照してください。

Note

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

ノートブックの比較

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

ノートブックの機能 Azure Synapse Spark Fabric Spark
インポート/エクスポート はい はい
セッションの構成 はい、UI とインライン はい、UI (環境) とインライン
IntelliSense はい はい
mssparkutils はい はい
Notebook のリソース いいえ はい
共同作業をする いいえ はい
高コンカレンシー いいえ はい
.NET for Spark C# はい いいえ
パイプライン アクティビティのサポート はい はい
組み込みのスケジュールされた実行のサポート いいえ はい
API/SDK のサポート はい はい
  • mssparkutils: DMTS 接続は Fabric ではまだサポートされていないため、現時点では、Fabric では mssparkutils.credentials 用に getTokengetSecret のみがサポートされています。

  • ノートブック リソース: Fabric ノートブックは、フォルダーとファイルの管理に役立つ Unix のようなファイル システムを提供します。 詳細については、「Microsoft Fabric ノートブックの使用方法」を参照してください。

  • 共同作業: Fabric ノートブックは、複数のユーザーによる同じノートブックの編集をサポートする共同作業項目です。 詳細については、「Microsoft Fabric ノートブックの使用方法」を参照してください。

  • 高コンカレンシー: Fabric では、高コンカレンシー セッションにノートブックを付加できます。 このオプションは、Azure Synapse で ThreadPoolExecutor を使用するユーザーのための代替手段です。 詳細については、Fabric ノートブックの高コンカレンシー モードを構成する方法に関するセクションを参照してください。

  • .NET for Spark C#: Fabric は、.NET Spark (C#) をサポートしていません。 ただし、C# または F# で記述された既存のワークロードを持つユーザーは、Python または Scala に移行することをお勧めします。

  • 組み込みのスケジュールされた実行のサポート: Fabric では、ノートブックのスケジュールされた実行がサポートされます。

  • その他の考慮事項:

    • 特定のバージョンの Spark でのみサポートされているノートブック内の機能を使用できます。 Spark 2.4 と 3.1 は、Fabric ではサポートされていません。
    • ノートブックまたは Spark ジョブで、異なるデータ ソース接続またはマウント ポイントを持つリンクされたサービスを使用している場合は、外部データ ソースとシンクへの接続を処理するための別の方法を使用するように Spark ジョブを変更する必要があります。 Spark コードを使用して、使用可能な Spark ライブラリを使用するデータ ソースに接続します。

Spark ジョブ定義の比較

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

Spark ジョブの機能 Azure Synapse Spark Fabric Spark
PySpark はい はい
Scala はい はい
.NET for Spark C# はい いいえ
SparkR いいえ はい
インポート/エクスポート はい (UI) いいえ
パイプライン アクティビティのサポート はい はい
組み込みのスケジュールされた実行のサポート いいえ はい
再試行ポリシー いいえ はい
API/SDK のサポート はい はい
  • Spark ジョブ: .py/.R/jar ファイルを取り込むことができます。 Fabric では、SparkR がサポートされます。 Spark ジョブ定義では、参照ファイル、コマンド ライン引数、Spark 構成、Lakehouse 参照がサポートされます。

  • インポート/エクスポート: Azure Synapse では、JSON ベースの Spark ジョブ定義を UI からインポート/エクスポートできます。 この機能は、Fabric ではまだ使用できません。

  • .NET for Spark C#: Fabric は、.NET Spark (C#) をサポートしていません。 ただし、C# または F# で記述された既存のワークロードを持つユーザーは、Python または Scala に移行することをお勧めします。

  • パイプライン アクティビティのサポート: Fabric のデータ パイプラインには、Spark ジョブ定義アクティビティがまだ含まれていません。 Spark ジョブを定期的に実行する場合は、スケジュールされた実行を使用できます。

  • 組み込みのスケジュールされた実行のサポート: Fabric では、Spark ジョブ定義のスケジュールされた実行がサポートされます。

  • 再試行ポリシー: このオプションにより、ユーザーは、Spark 構造化ストリーミング ジョブを無期限に実行できます。

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

Hive メタストア (HMS) の相違点と考慮事項は次のとおりです。

HMS の種類 Azure Synapse Spark Fabric Spark
内部 HMS はい はい (Lakehouse )
外部 HMS はい いいえ
  • 外部 HMS: Fabric は現在、カタログ API も、外部 Hive メタストア (HMS) へのアクセスもサポートしていません。

Note

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