Microsoft Fabric の Apache Spark のコンカレンシー制限とキューイング

適用対象: Microsoft Fabric のデータ エンジニアリングとデータ サイエンス

Microsoft Fabric では、容量を介したコンピューティング ユニットの割り当てを許可します。これは、特定の時点で使用できる専用のリソース セットです。 容量では、アクティビティを実行したり、出力を生成したりするリソースの機能が定義されます。 アイテムが異なると、一定の時間に消費される容量が異なります。 Microsoft Fabric は、Fabric SKU と試用版を通じて容量を提供します。 詳細については、容量とは何かに関する記事を参照してください。

ユーザーは、Azure で Microsoft Fabric の容量を作成するとき、分析ワークロードのサイズに基づいて容量サイズを選びます。 Apache Spark では、ユーザーは SKU の一部として予約される容量ユニットごとに 2 つの Apache Spark 仮想コアを取得します。

1 つの容量ユニット = 2 つの Spark 仮想コア

容量を購入すると、管理者は Microsoft Fabric の容量内にワークスペースを作成できます。 容量に関連付けられている Spark 仮想コアは、これらのワークスペース内で作成されるノートブック、Apache Spark ジョブ定義、レイクハウスなど、Apache Spark ベースのすべての項目間で共有されます。

コンカレンシーの調整とキューイング

Fabric の Spark ではコアベースのスロットリングとキュー処理メカニズムが適用され、ユーザーは購入した Fabric の容量 SKU に基づいてジョブを送信できます。 キューイングのメカニズムは、使用可能なジョブ スロットをチェックし、容量が使用可能になると自動的にジョブを再試行する単純な FIFO ベースのキューです。 ユーザーがノートブックまたはレイクハウス ジョブ (テーブルへの読み込みなど) を送信するときに、購入したファブリック容量 SKU で使用可能なすべての Spark 仮想コアを使用して同時に実行されているジョブが原因で容量が最大使用率に達した場合、

HTTP 応答コード 430 メッセージで調整されます。この場合、この Spark ジョブは、Spark コンピューティングまたは API のレート制限に達したため、実行されません。 この Spark ジョブを実行するには、監視ハブを使用してアクティブな Spark ジョブを取り消すか、より大きな容量の SKU を選択するか、後でもう一度やり直してください。

キューを有効にすると、パイプラインとジョブ スケジューラーからトリガーされるノートブック ジョブと Spark ジョブ定義がキューに追加され、容量を解放すると自動的に再試行されます。 キューの有効期限は、ジョブの送信時刻から 24 時間に設定されます。 この期間を過ぎると、ジョブを再送信する必要があります。

Fabric の容量は、バースト機能を使用して有効になります。これにより、ワークロードの実行を高速化するために、購入した以上のコンピューティング コアを追加で消費できます。 Apache Spark ワークロードの場合、バースト機能により、ユーザーは購入した Spark 仮想コアの合計 3 倍のジョブを送信できます。

Note

バースト係数は、コンカレンシーに役立つ Spark 仮想コアの合計数のみを増やしますが、ジョブあたりの最大コア数は増えません。 ユーザーは、Fabric の容量が提供するよりも多くのコアを必要とするジョブを送信できません。

次のセクションでは、Microsoft Fabric 容量 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 - 2048 6144 1024
F2048 - 4096 12288 2048
試用版の容量 P1 128 128 NA

計算例: F64 SKU128 Spark 仮想コア が用意されています。 F64 SKU に適用されるバースト係数は 3 で、合計で 384 個の Spark 仮想コアが提供されます。 バースト係数はコンカレンシーに役立つためだけに適用され、1 つの Spark ジョブで使用可能な最大コア数は増加しません。 つまり、1 つのノートブックまたは Spark ジョブ定義またはレイクハウス ジョブで、最大 128 個の仮想コアのプール構成を使用でき、同じ構成の 3 つのジョブを同時に実行できます。 ノートブックがより小さいコンピューティング構成を使用している場合は、最大使用率が 384 SparkVcore の制限に達するまで同時に実行できます。

Note

ジョブのキューには 24 時間の有効期限があり、それを過ぎるとジョブは取り消され、ユーザーはジョブを実行するために再送信する必要があります。

Fabric の Spark の調整では、任意のジョブベースの制限が適用されず、調整は、購入された Fabric の容量 SKU に許可されているコア数のみに基づいて行われます。 既定では、ジョブの受付はオプティミスティック受付制御になり、ジョブは最小コア要件に基づいて許可されます。 オプティミスティック ジョブの受付について説明します (ジョブの受付と管理)。ワークスペースに対して既定のプール (スターター プール) オプションが選択されている場合、次の表に、コンカレンシー ジョブの最大制限を示します。

Fabric の容量 SKU に基づく既定のスターター プール構成の詳細については、「スターター プールの構成」を参照してください

ジョブ レベルのバースト

管理者は、容量全体で利用可能なバースト係数を設定した最大 Spark コア数を利用するための Apache Spark プールを構成できます。 たとえば、ワークスペースを F64 Fabric 容量に接続しているワークスペース管理者は、Spark プール (スターター プールまたはカスタム プール) を 384 Spark 仮想コアに構成できるようになりました。この場合、スターター プールの最大ノード数は 48 に設定できます。管理者は、最大ノード数が 6 の XX ラージ ノード サイズ プールを設定できます。