Microsoft Fabricにおけるマテリアライズドレイクビューとは何ですか?

Microsoft Fabricでは、具体化されたレイク ビューが自動的に保持され、更新されます。 Spark SQL または PySpark で定義します。 これは、通常はブロンズからシルバー、ゴールドメダリオン建築といった多段階のレイクハウスの変身を、カスタムのスパークジョブではなく宣言的な表現として表現することで簡素化しています。 MLVをマスタリアライズした後は、ストレージ、アクセスパターン、セキュリティの面で標準的なレイクハウステーブルのように機能します。 同じアクセス許可とガバナンス モデルを使用して、任意のFabric エンジンを使用してクエリを実行できます。 Fabric MLV 間の依存関係を追跡し、正しい順序で更新を調整し、すべての段階でデータ品質の制約を適用します。 この機能により、データ エンジニアは、コードと運用上のオーバーヘッドを減らしながら、信頼性の高い保守可能なパイプラインを構築できます。

マテリアライズド・レイクビューを使用する場合

具体化された湖のビューは、次の場合に適しています。

  • 頻繁にアクセスされる集計 (毎日の売上合計、毎月のメトリック) 。事前計算された結果により、コストの高いクエリを繰り返し実行するよりもパフォーマンスが向上します
  • クエリを頻繁に実行し、すべてのコンシューマーに一貫性のある結果が必要な複数の大きなテーブル間の複雑な結合
  • カスタム コードではなく宣言的に定義されたルールを使用して、均一に適用する必要があるデータ品質変換
  • 複数のソースのデータを結合し、ソース データが変更されたときに自動更新を利用するレポート データセット
  • SQL で定義されたブロンズ→シルバー→ゴールドの変換が必要な Medallion アーキテクチャ

具体化された湖のビューは、すべてのシナリオに適した選択肢ではありません。 次のような場合は、代替手段を検討してください。

  • 事前計算された結果の恩恵を受けない、1 回限りまたはほとんどアクセスされないクエリ
  • ML 推論、API 呼び出し、複雑なPython処理などの SQL 以外のロジック - 代わりに Spark ノートブックを使用する
  • 1 秒未満の更新を必要とする高頻度ストリーミング データ - 代わりにReal-Time インテリジェンスを検討してください

マテリアライズド・レイクビューの始め方

Fabricで実体化された湖景を作成するには、「具体的な湖の景で始める」をご覧ください。 メダリオンアーキテクチャを構築するための詳細なガイドラインについては、チュートリアル: 物理化されたレイクビューを活用してメダリオンアーキテクチャを構築をご覧ください。

具体化された湖のビューのしくみ

具体化されたレイク ビューは宣言型のアプローチを使用します。変換を定義する SQL クエリを記述し、実行、ストレージ、更新Fabric処理します。 結果は Lakehouse の Delta テーブルとして保持されるため、ダウンストリームコンシューマーは変換を再実行せずに直接クエリを実行できます。

具体化された湖のビューのライフサイクルは、次の 4 つの段階に従います。

  • 作成: 変換を定義する SQL クエリを記述します。 Fabric定義を格納し、結果を Delta テーブルとして具体化します。
  • 更新: ソース データが変更されると、Fabricは最適な更新戦略 (増分 (新しいデータまたは変更されたデータのみを処理)、完全 (完全に再構築)、スキップ (変更は検出されません) を決定します。
  • クエリ: アプリケーションとレポートは、基になる変換ロジックを認識せず、他の Delta テーブルと同様に具体化されたレイク ビューに対してクエリを実行します。
  • Monitor: 組み込みのFabric ツールを使用して、更新履歴、実行状態、データ品質メトリック、依存関係の系列を追跡します。

オーサリングオプション

具体化されたレイク ビューでは、次の 2 つのオーサリング 方法がサポートされています。

  • SQL 作成: Fabric lakehouse エディターで標準の SQL CREATE MATERIALIZED LAKE VIEW ステートメントを使用してビューを定義します。

  • PySpark オーサリング (プレビュー):DataFrameWriterを使用して、Fabricノートブックからビューを作成、更新、置換します。 PySpark で作成されたビューでは、次がサポートされます。

    • データ品質の制約
    • テーブルのプロパティ
    • スケジュールされた更新

    PySpark で作成されたビューは、現在、完全な更新のみを実行します。

主な機能

具体化されたレイク ビューには、ノートブックやパイプラインで管理する操作の複雑さを処理する組み込みの機能が含まれています。

自動更新の最適化

Fabric は、具体化された湖のビューを更新するタイミングと方法を自動的に決定します。 意思決定エンジンは、最も効率的な更新戦略を選択し、変更データ フィードを使用してソース データの変更を既定で検出します。

  • 増分更新: 新しいデータまたは変更されたデータのみを処理します。
  • 完全更新: 必要に応じ、具体化された湖のビュー全体を再構築します。
  • 更新のスキップ: ソース データに変更が含まれていない場合、Fabric は更新をスキップします。

増分更新を有効にするには、マテリアライズド レイクビューによって参照されるソース テーブル上で Delta Change Data Feed (CDF) を有効にする必要があります。 CDF が有効になっていない場合、デシジョン エンジンは、スキップ更新と完全更新のみを選択します。 詳細については、レイクハウスにおけるマテリアライズド レイク ビューの最適な更新方法を参照してください。

最適な更新では、次のような一般的なクエリ パターンがサポートされています。

  • GROUP BY を使用した集計
  • 左外部結合とセミ結合
  • 共通テーブル式 (CTE)

組み込みのデータ品質

具体化されたレイク ビューでは、宣言型データ品質ルールがサポートされます。 SQL で制約を直接定義し、違反の処理方法を指定します。

CONSTRAINT valid_sales CHECK (sales_amount > 0) ON MISMATCH DROP

依存関係の管理

具体化された湖のビューが他の具体化されたレイク ビューまたはテーブルを参照する場合、Fabricはこれらのリレーションシップを自動的に検出し、実行順序を管理します。

  • 具体化された湖のビューが、レイクハウス全体で相互にどのように依存しているかを視覚化します。
  • 順序は依存関係に基づいて自動的に更新されます。
  • データの一貫性を確保するために、処理は依存関係チェーンに従います。

監視と分析情報

Fabricには、マテリアライズド・レイク・ビューの正常性とパフォーマンスを追跡するための組み込みツールが提供されています。

  • 具体化された各レイク ビューの更新パフォーマンスと実行状態を追跡します。
  • データ品質メトリックと違反数を系列で表示します。
  • [最近の実行] ビューでジョブ インスタンスと更新履歴を監視します。

実行ごとの Monitor hub に加えて、Fabric では Recent run(s) ページ上で、AnalyticsInsights の各サブタブを通じて、レイクハウスごとの運用状態を直接確認できるようになりました。

サブタブ 質問に回答します 学習ページ
最近の実行 どの個別実行が発生したか、またそれらをキャンセルしたり詳細を確認したりできますか? マテリアライズド・レイクビューの最近の実行履歴
解析学 同じ実行を対象としたグラフで、成功率、所要時間、主なエラー、更新ポリシーの内訳はどのように推移していますか? マテリアライズド レイクビューの実行分析を表示する
分析情報 どこで失敗やリグレッションが発生しているか。問題のビューにワンクリックで移動できるディープリンク付き。 マテリアライズド レイクビューの実行の分析情報を表示する

同じデータにプログラムでアクセスするために、Fabricは、_mlv_system スキーマ (sys_run_metricssys_node_metricssys_error_metrics) の下のシステム テーブルを lakehouse に書き込みます。

Important

_mlv_system スキーマは変更しないでください。 変更は 、[分析 ] タブと [分析情報 ] タブの更新に影響します。

セキュリティ

Fabric のマテリアライズド Lake ビューは、Lakehouse テーブルのセキュリティおよびガバナンス対策に準拠します。 Private Link対応のレイクハウスで MLV を使用することもできます。 FabricのPrivate Linkの詳細については、「セキュリティ」を参照してください。