2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Fabric の Spark について

Last updated at Posted at 2025-09-17

Microsoft Fabric の Data Engineering や Data Science ワークロードは Spark を基盤としています。特に小規模な Capacity を利用する場合、Spark の動作に制限がかかることがあるため、以下にそのポイントを整理しました。

Spark 実行環境:Starter Pool と Custom Pool

  • Starter Pool:Fabric ワークスペース作成時に自動で構成され、常時起動状態のクラスタです。数秒〜十数秒で Spark セッションを開始できます。
  • Custom Pool:ユーザーが任意のノードサイズで作成可能。Starter Pool が使えない環境(例:プライベートリンクや Managed VNet を有効化した場合)ではこちらを利用します。

プライベートリンクや Managed VNet など、高度なネットワーク構成を有効化したワークスペース利用時は Starter Pool 非対応です。

Spark Pool のノードサイズ

Size vCore Memory
Small 4 32 GB
Medium 8 64 GB
Large 16 128 GB
X-Large 32 256 GB
XX-Large 64 512 GB

Starter Pool は Medium 固定、Custom Pool は上記から選択可能です。

なお、Custom Pool は [ワークスペースの設定] → [データ エンジニアリング/サイエンス] → [Spark の設定] を開き、Starter Pool のプルダウンを開いて [新しいプール] をクリックすると作成できます。

image.png

Starter Pool の構成

Starter Pool は、Fabric Capacity の SKU (サイズ) によらず、以下の構成となっています。
構成の確認、変更はワークスペースの設定画面から、[データ エンジニアリング/サイエンス] を開き、[Spark の設定] で行います。

image.png

Starter pool の設定 既定値
ノード ファミリ Memory Optimized
ノード サイズ Medium
ノード数 1-10
自動スケーリング オン
Executor の動的割り当て オン

Spark Pool については、他のドキュメントで異なる記載がある部分がありますが、こちらを正としてください。

容量ごとの Spark の制限

  • 1 Capacity Unit (CU) = 2 Spark vCore
  • Spark はバーストにより、購入した vCore の最大3倍まで使用可能
  • 同時実行数(コンカレンシー)を増やすには、より大きな Capacity SKU が必要

ジョブがすべての Spark 仮想コアを同時に使用して、上記の制限に達すると、次のエラーが表示されます。

HTTP Response code 430: This Spark job can't be run because you have hit a Spark compute or API rate limit. To run this Spark job, cancel an active Spark job through the Monitoring hub, or choose a larger capacity SKU or try again later.

(HTTP 430: Spark ジョブが制限に達しました。現在のジョブをキャンセルするか、より大きな SKU を選択してください。)

容量サイズ (SKU) 別 Spark の制限一覧

Fabric の容量 SKU 同等の Power BI SKU Spark 仮想コア バースト係数を使用した最大 Spark 仮想コア数 キューの制限
F2 - 4 20 4
F4 - 8 24 4
F8 - 16 48 8
F16 - 32 96 16
F32 - 64 192 32
F64 P1 128 384 64
F128 P2 256 768 128
F256 P3 512 1536 256
F512 P4 1024 3072 512
F1024 P5 2048 6144 1024
F2048 - 4096 12288 2048
試用版 P1 128 128 NA

上記の表は、後述する自動スケーリング課金では無効です。

F4 の場合、8 仮想コアが上限のため、Medium サイズの Spark Pool 1セッションで上限に達してしまいます。
起動の速い Starter Pool (ノードサイズが Medium で固定) で複数セッションを同時に実行するには、F8 以上が必要となります。

自動スケーリング課金 (サーバーレス)

「自動スケーリング」には2種類ありますが、ここでは後者の Capacity の自動スケーリング課金を指します。

  • Spark プールの自動スケーリング
    アクティビティの量に基づいてコンピューティング リソース (Spark プールのノード数) を自動的にスケールアップおよびスケールダウンすること。
  • Capacity の自動スケーリング課金
    Capacity に対する設定で、Spark ワークロードの処理に関する CU 消費を当該 Capacity から分離します。Spark ワークロードのみ、Databricks や Synapse Analytics のようなサーバーレスな課金体系になります。

自動スケーリング課金は容量単位での設定であり、Fabric 容量からバーストしたりフォールバックしたりすることはありません。 純粋にサーバーレスで従量課金制です。 自動スケーリングの課金を有効にし、上限を設定すると、実行したジョブによって消費された CU に対してのみ課金されます

コスト効率 – Spark ジョブ ランタイムに対してのみ支払います。
独立したスケーリング – Spark ワークロードは、他の容量ベースの操作に影響を与えずに実行されます。
エンタープライズ対応 – Azure クォータ管理と統合して、柔軟性をスケーリングします。

Power BI の閲覧ユーザーのために F64 を利用している場合、Capacity の使用状況に余裕があるのであれば自動スケーリング課金にする必要はあまりないかもしれません。ただし、既に Capacity の使用率が高い状態である場合や、Spark ワークロードが他のワークロードに影響することを避けたい場合には、Spark ワークロードを Capacity から分離し、サーバーレスの課金体系で利用できるのでお勧めです。

Capacity を「予約」で購入している場合は、別課金となるため注意。

Capacity における Spark に関する設定

前述の通り、Spark プールの設定はワークスペースごとに行うのが基本ですが、容量管理者が Capacity (に属するワークスペース) に対して各種設定を行うことが可能です。

Spark の設定

[管理ポータル] → [容量の設定] → (容量を選択) → [詳細] → [データ エンジニアリング/サイエンスの設定] → [開く Spark の設定] と進みます。

image.png

  • カスタマイズされたワークスペース プール
    この設定がオフになっていると、ワークスペース管理者は Custom Pool を作成できません。

  • ワークスペースのスターター プールを無効にする
    無効にすると、スターター プールを表示しなくなります。 代わりに、容量管理者によって明示的に作成および管理されるカスタム プールを使用する必要があります。

  • ジョブ バーストを許可する
    このスイッチを使用して、 スループットまたはコンカレンシーを最適化します。(この設定は、バーストを使用できない Capacity の自動スケーリング課金では無効です。)

    • 有効 (既定): スループット重視。1 つの Spark ジョブで、完全なバースト制限 (最大 3× Spark 仮想コア) を使用できます。
    • 無効: コンカレンシー重視。個々の Spark ジョブは、基本容量の割り当てで制限され、マルチユーザー コンカレンシー (複数ユーザーによる同時実行) を維持し、独占を回避します。複数人で利用する開発環境用の Capacity の場合は、バーストを無効にすると良いでしょう。

Apache Spark の自動スケーリング課金

前述した自動スケーリング課金を設定します。有効にすると、Spark ジョブは共有容量を消費しなくなり、Spark ワークロードを個別にスケーリングし、コストを最適化する柔軟性が得られます。

image.png

スライダーを使用して、Spark ジョブに割り当てる最大容量ユニット (CU) を設定できます。

スライダーの上限は、Azure サブスクリプションに対して承認されたクォータに基づいており、使用しているサブスクリプションの種類にも基づいています。
リソースの使用量が定義済みのクォータ制限に近づいた場合に、通知をトリガーすることができます。

自動スケーリング課金を有効にした後は、Spark のワークロードがファブリック容量を必要としなくなった分、その容量を縮小できます

Fabric における Spark ワークロードをうまくコントロールするための一助になれば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?