Dataflow Gen2 ステージング項目のデータ

パフォーマンスと信頼性を向上させるために、Dataflow Gen2 はステージング項目を使用して、データ変換中に中間データを格納します。 この記事では、ステージング項目とは何か、ステージで 1 回ロックを解除する ELT パターン 、多数 のモデルを参照し、保持するデータを管理する方法について説明します。

ステージング項目とは

ステージング項目は、データ変換中にデータを格納するために Dataflow Gen2 によって使用される中間データ ストレージの場所です。 これらの項目には、"DataflowsStagingLakehouse" と "DataflowsStagingWarehouse" という名前が付けられます。 ステージング項目は、パフォーマンスを向上させるために、データ変換中に中間データを格納するために使用されます。 これらの項目は、最初のデータフローを作成するときに自動的に作成され、Dataflow Gen2 によって管理されます。 これらの項目はワークスペース内のユーザーには表示されませんが、データの取得や Lakehouse エクスプローラーなどの他のエクスペリエンスで表示される場合があります。 ステージング項目内のデータには、予期しない動作が発生する可能性があるため、直接アクセスまたは変更しないことを強くお勧めします。 また、ステージング項目に自分でデータを格納することはサポートされていないため、データが失われる可能性があります。

ELT パターン: 一度ステージングして、複数回参照

ステージングでは、中間ストレージを提供するだけでなく、1 つの基盤 ( ステージ 1 回、多数を参照) に基づいて構築された一連の ELT パターンのロックが解除されます。 ソース クエリはステージング済みとしてマークされるため、出力は内部ステージング ストレージに具体化されます。 その後、ダウンストリーム クエリは、ソースを再読み取りするのではなく、そのステージング クエリを参照します。 高速コピーはオプションのアクセラレータであり、ステージングクエリの処理速度を速めますが、それがパターンを定義するものではありません。

データがステージングされると、ダウンストリーム クエリで次のことができるため、このパターンは重要です。

  • インデックスされクエリ可能なコピーに対して、元のソースに再アクセスせずに実行します。
  • フィルター、結合、集計は、マッシュアップ エンジンで実行するのではなく、ステージング SQL 分析エンドポイント側にフォールドします。
  • 1 つの具体化された結果から複数の並列変換または変換先に分岐します。

一般的なユース ケース

通常、次のパターンは、ステージング されたソース クエリの上に階層化されます。

利用シーン Description
ステージング データを分析モデルに整形する 参照されたクエリは、重複除去、グループ化、キー生成を通じて、ファクト テーブル、ディメンション テーブル、概要、ロールアップ、または KPI にステージング されたデータを整形します。
フォールドダウン コンピューティング プッシュダウン ステージデータに対して書かれた参照クエリは、結合、フィルター、グループ別操作をステージングSQL分析エンドポイントに折り込み、計算をマッシュアップエンジンではなくウェアハウスエンジンに送ります。 多くの場合、これはステージングによって得られる最大のパフォーマンス向上です。
データ品質管理と監査部 参照されるクエリは、ソースを再読み取りすることなく、ステージング されたデータ (null チェック、制約検証、行数) を検証または検査します。
複数の宛先へのファンアウト 複数の参照されるクエリは、それぞれが同じステージング ソース (たとえば、1 つの Lakehouse と 1 つの Warehouse) から異なる宛先を読み込みます。
Stage-then-merge 各ソースはそれぞれ別個のクエリでステージングされ、その後、後続の参照クエリがステージングされた結果をマージまたは結合し、その結合処理をステージング SQL 分析エンドポイントにフォールディングします。

ステージングが適切でない場合

ステージングでは、ダウンストリーム クエリを実行する前に、ストレージ コストと追加の書き込みが追加されます。 次の場合はスキップすることを検討してください。

  • あなたの変換は、すでにソースシステムまでエンドツーエンドで統合済みで、マッシュアップエンジンでの計算は発生しません。
  • データフローには 1 つの出力があり、ダウンストリームの分岐、検証、またはファンアウトはありません。
  • ソースの待機時間がボトルネックであり、ステージングを通じてソースを並列化することはできません。

ステージングを有効または無効にするタイミングの詳細については、「 Dataflow Gen2 で最適なパフォーマンスを得るためのベスト プラクティス」を参照してください。

ステージング項目内のデータ

ステージング項目は、ユーザーによる直接アクセス用に設計されていません。 Dataflow Gen2 はステージング項目のデータを管理し、データが一貫した状態であることを確認します。 ステージング項目内のデータへの直接アクセスはサポートされていません。データが一貫した状態であることが保証されるわけではありません。 ステージング項目のデータにアクセスする必要がある場合は、Power BI、Excel、またはその他のデータフローでデータフロー コネクタを使用できます。

Important

Power BIセマンティック モデル、Excel、またはその他のデータフローのソースなど、データフロー コネクタを介したデータフロー Gen2 テーブルの使用は完全にサポートされています。 必ずコネクタを使い、下位のステージング ストレージに直接アクセスしないでください。 コネクターは安定したインターフェース契約を提供しますが、内部ストレージ層は変更可能です。

ステージングは正本システムではなくキャッシュです。 元のシステムから再現できないデータは、耐久性のあるコピーを保管してください。

可能であれば、レイクハウスや倉庫などのデータ送信先を利用して、下流の消費用に明示的かつガバナンスされたコピーを作成しましょう。 この推奨は必須ではありません。

ステージング項目からのデータの削除は、次のいずれかのアクションによって強制できます。

  • データフローのステージングを無効にして、データを再読み込みします (30日後にデータがガベージコレクションされます)。
  • データフローを削除します (データを直接削除します)。
  • ワークスペースを削除します (StagingLakehouse と StagingWarehouse を直接削除します)。

ステージングのコストへの影響

ステージング Lakehouse とステージング ウェアハウスは、データフロー処理の一部として中間データを格納します。 これらのステージング項目によって使用されるストレージは、OneLake ストレージの一部として課金されます。 つまり、ステージング項目に格納されているデータは、OneLake ストレージの全体的な消費量と関連するコストにカウントされます。

ストレージ コストを効果的に管理するには:

  • ステージング ストレージの使用状況を監視する: ステージング データは、ガベージ コレクションまたは明示的に削除されるまで、データフローの更新ごとに蓄積されます。
  • 必要がないときにステージングを無効にする: 変換がソース システムにフォールドされる場合は、ステージングを有効にする必要がない可能性があります。 ステージングを無効にすると、ストレージの使用量が削減されます。
  • 未使用のデータフローをクリーンアップする: 不要になったデータフローを削除すると、関連するステージング データがすぐに削除されます。
  • 更新頻度の検討: ステージングを有効にして頻繁に更新すると、ストレージの消費量が増加する可能性があります。 パフォーマンス上の利点とストレージ コストのバランスを取ります。

OneLake ストレージの価格の詳細については、「 Microsoft Fabric の価格」を参照してください。