Microsoft Fabric では、 定義済みの Spark リソース プロファイルがサポートされるようになりました。これは、データ エンジニアがワークロードのニーズに基づいて Spark 構成を最適化するためのシンプルで強力な方法です。 これらのプロファイルを使用すると、プロパティ バッグベースのアプローチを使用して、読み取り負荷の高い、書き込み負荷の高い、ハイブリッド ワークロードなどの一般的なパターンのチューニングのベスト プラクティスをすばやく適用できます。
数テラバイトのストリーミング データを取り込む場合でも、高パフォーマンスの分析クエリを実行する場合でも、リソース プロファイルは、手動の Spark チューニングを必要とせずに、パフォーマンスへの高速パスを提供します。
リソース プロファイルの利点
- ✅ 既定のパフォーマンス – 実績のある、ワークロードに最適化された Spark 設定をすぐに適用します。
- 柔軟性 – 入力とクエリ パターンに基づいてプロファイルを選択またはカスタマイズします。
- ✅ ファインチューニングされた Spark 構成 – チューニングの試行錯誤を回避して、運用上のオーバーヘッドを軽減します。
注
- すべての新しい Fabric ワークスペースは、最適なインジェストパフォーマンスを実現するために、
writeHeavy
プロファイルにデフォルトで設定されています。 これには、大規模な ETL およびストリーミング データ ワークフロー用に調整された既定の構成が含まれます。 - writeHeavy プロファイルを使用する場合、VOrder は既定で無効になっており、手動で有効にする必要があります。
使用可能なリソース プロファイル
現在、Microsoft Fabric では次のプロファイルがサポートされています。
プロファイル | ユース ケース | 構成プロパティ |
---|---|---|
readHeavyForSpark |
頻繁に読み取る Spark ワークロード用に最適化 | spark.fabric.resourceProfile = readHeavyForSpark |
readHeavyForPBI |
デルタ テーブルに対する Power BI クエリ用に最適化 | spark.fabric.resourceProfile = readHeavyForPBI |
writeHeavy |
高頻度インジェストおよび書き込みに最適化されています | spark.fabric.resourceProfile = writeHeavy |
custom |
完全なユーザー定義構成 | spark.fabric.resourceProfile = custom |
各プロファイルの既定の構成値
リソースプロファイル | Configs |
---|---|
writeHeavy |
{"spark.sql.parquet.vorder.default": "false", "spark.databricks.delta.optimizeWrite.enabled": "false", "spark.databricks.delta.optimizeWrite.binSize": "128", "spark.databricks.delta.optimizeWrite.partitioned.enabled": "true", "spark.databricks.delta.stats.collect": "false"} |
readHeavyForPBI |
{"spark.sql.parquet.vorder.default": "true", "spark.databricks.delta.optimizeWrite.enabled": "true", "spark.databricks.delta.optimizeWrite.binSize": "1g"} |
readHeavyForSpark |
{"spark.databricks.delta.optimizeWrite.enabled": "true", "spark.databricks.delta.optimizeWrite.partitioned.enabled": "true", "spark.databricks.delta.optimizeWrite.binSize": "128"} |
custom (例: fastIngestProfile ) |
完全にユーザー定義の設定。 例: {"spark.sql.shuffle.partitions": "800", "spark.sql.adaptive.enabled": "true", "spark.serializer": "org.apache.spark.serializer.KryoSerializer"} |
ヒント
fastIngestProfile
やlowLatencyAnalytics
など、ワークロード パターンを反映したわかりやすい名前でカスタム プロファイルに名前を付けることができます。
リソース プロファイルを構成する方法
Microsoft Fabric では、次の 2 つの異なる方法を使用してリソース プロファイルを構成できます。
1. 環境を使用したリソース プロファイルの構成
デフォルトの Spark リソース プロファイルは、環境レベルで定義できます。 適用すると、選択したプロファイルは、オーバーライドされない限り、環境内のすべての Spark ジョブに自動的に使用されます。
ステップス:
- Fabric ワークスペースに移動します。
- 新しい環境を編集または作成します。
- [Spark の構成] の下で、次のプロパティを設定します
- spark.fabric.resourceProfile = writeHeavy または readHeavyForPBI または readHeavyForSpark、または独自のプロファイル名を選択し、要件に基づいて構成でカスタマイズできます。
- 既存のプロファイルを選択し、たとえば readHeavyForSpark を選択して binsize を 128 から 256 に増やすなどの既定値を変更することもできます。
2. spark.conf.set
を使用して、実行時にリソースプロファイルを構成する
次を使用して、ノートブックの実行中または Spark ジョブの実行中に既定のリソース プロファイルをオーバーライドすることもできます。
spark.conf.set("spark.fabric.resourceProfile", "readHeavyForSpark")
この方法では、ジョブ ロジック、スケジュール、またはワークロードの種類に基づいて動作を変更する実行時の柔軟性が提供されます。これにより、ノートブックの各部分に異なるプロファイルを使用できます。
注
環境構成とランタイム構成の両方が設定されている場合は、ランタイム設定が優先されます。
既定では何が起こりますか?
Microsoft Fabric で新しく作成されたすべてのワークスペースは、既定で writeHeavy
プロファイルに設定されます。 これにより、次の内容が保証されます。
- データ インジェスト パイプラインの効率的な処理
- バッチ ジョブとストリーミング ジョブのスループットの最適化
- 一般的な ETL ワークロードに対して、すぐに適用できるパフォーマンスの向上
ワークロードが異なる場合 (対話型クエリ、ダッシュボード サービスなど)、環境レベルで既定の設定を更新するか、実行中に動的にオーバーライドすることができます。
⚠️ 重要:
すべての新しい Fabric ワークスペースで、VOrder
は既定で無効になっています (spark.sql.parquet.vorder.default=false
)。
この既定の構成は 、書き込み負荷の高いデータ エンジニアリング ワークロード用に最適化されており、インジェストと大規模な変換中のパフォーマンスが向上します。読み取り最適化シナリオ (Power BI ダッシュボードや対話型 Spark クエリなど) では、
readHeavyforSpark
またはreadHeavyForPBI
リソース プロファイルに切り替えるか、VOrder
を有効にしてプロパティを変更し、PowerBI および Datawarehouse ワークロードからのクエリ パフォーマンスを向上することを検討してください
関連コンテンツ
- Microsoft Fabricでのネイティブ実行エンジン