論理ビューとマテリアライズド ビューの概要

このドキュメントでは、BigQuery の論理ビューとマテリアライズド ビューについて説明し、比較します。最新のデータ ウェアハウジングでは、ビューは生データとビジネス インテリジェンスの間の重要な抽象化レイヤとして機能します。BigQuery では、通常、論理ビュー(標準ビュー)とマテリアライズド ビューの 2 種類から選択します。これらのビューは共通のインターフェースを共有していますが、基盤となるメカニズム、パフォーマンス プロファイル、費用の影響は異なります。

論理ビュー

論理(標準)ビューは、SQL クエリによって定義される仮想テーブルです。物理データは保存されません。代わりに、基盤となるベーステーブルからデータを取得するために必要なクエリ ロジックを保存します。論理ビューをクエリすると、BigQuery クエリエンジンはビューを基盤となるクエリに展開します。このプロセスでは、ビューが呼び出されるたびに BigQuery がビューを再実行します。

論理ビューには次の利点があります。

  • ストレージのオーバーヘッドはありません。追加のデータは保存されないため、ベーステーブルのストレージに対してのみ課金されます。
  • リアルタイムの精度。クエリは実行時に実行されるため、結果には常にベーステーブルの最新の状態が反映されます。
  • 論理的抽象化。複雑な結合を簡素化したり、データを複製せずに行レベルのセキュリティを適用したりします。
  • SQL の柔軟性。複雑なウィンドウ関数、ユーザー定義関数(UDF)、すべての結合タイプなど、BigQuery SQL の全範囲をサポートします。

マテリアライズド ビュー

マテリアライズド ビューは、SQL クエリの結果を定期的に保存する事前計算ビューです。論理ビューとは異なり、計算されたデータが物理的に保存されるため、BigQuery は未加工のベースデータを繰り返し処理することなく、結果をより迅速に提供できます。これにより、クエリを事前処理して大規模なデータセットのクエリ レイテンシを短縮し、頻繁に使用されるクエリのコンピューティング費用を削減できます。

BigQuery マテリアライズド ビューは、事前計算されたデータの速度とライブビューの精度を組み合わせたものです。これは、次の方法で実現されます。

  • 自動更新。ベーステーブルが変更されると、バックグラウンド プロセスによってマテリアライズド ビューが更新されます。
  • データの更新頻度。バックグラウンド更新が保留中のときにクエリが発生すると、BigQuery は未処理のベーステーブルの変更を自動的に補正して、最新の結果を提供します。
  • スマートな調整。クエリ オプティマイザーは、マテリアライズド ビューがより効率的に回答を提供できると判断した場合、ベーステーブルからマテリアライズド ビューにクエリを自動的に転送できます。

論理ビューとマテリアライズド ビューの比較

論理ビューはデフォルトのビュータイプですが、大規模なビューや計算負荷の高いビューを頻繁にクエリする場合は、マテリアライズド ビューの作成を検討する必要があります。論理ビューは仮想的なものであり、再利用可能なデータセットの参照を提供しますが、データを物理的に格納することはありません。マテリアライズド ビューは、論理ビューと同様に SQL を使用して定義されますが、パフォーマンス向上のために BigQuery が使用するデータを物理的に格納します。

次の表に、BigQuery の論理ビューとマテリアライズド ビューの類似点と相違点をまとめます。

ディメンション 論理ビュー マテリアライズド ビュー
データの永続性 なし(仮想) 物理(ディスクに保存)
実行 ビューが呼び出されるたび 事前計算済み、バックグラウンド更新
データの鮮度 なし 省略可 1 (更新経由)
パフォーマンス 変数(ベーステーブル依存) 一貫性があり高速
SQL の複雑さ 無制限 限定的
最適化の目標 セキュリティと抽象化 スピードとコストの削減
メンテナンス費用とストレージ費用 × はい

1 --max_staleness オプションは、頻繁に変更される大規模なデータセットを処理する場合に、費用を管理しながらクエリ パフォーマンスを向上させます。

論理ビューを使用する場合

  • セマンティック レイヤリング。複雑な列名を、技術者以外のユーザーにもわかりやすいビジネス用語に置き換えます。
  • 迅速な開発。ロジックが変動しており、物理ストレージのオーバーヘッドを管理したくない場合に使用します。
  • 統合されたデータソースLooker StudioBigQuery Sharing(旧 Analytics Hub)などの可視化ツールのデータソースを提供する。

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

  • データを前処理する。集計、フィルタ、結合、クラスタを準備して、クエリのパフォーマンスを向上させます。
  • ダッシュボードの高速化。同じ集計指標(1 日のアクティブ ユーザー数など)を頻繁にクエリする Looker などの BI ツールを強化します。
  • 大規模なストリームのリアルタイム分析。高速ストリーミング データを受信するテーブルで、より高速なレスポンスを提供できます。
  • 費用管理。大規模なデータセットに対する繰り返し実行されるコストの高いクエリの費用を削減します。

承認済みビュー

承認済みビューを作成して、ソース データセットのデータのサブセットをセカンダリ データセットのビューで共有することもできます。このビューを特定のユーザーやグループ(プリンシパル)と共有できます。これらのユーザーやグループは、共有されたデータを表示してクエリできますが、ソース データセットに直接アクセスすることはできません。

承認済みビューは、論理ビューまたはマテリアライズド ビューのいずれかに対して作成できます。マテリアライズド ビューの承認済みビューは、承認済みマテリアライズド ビューと呼ばれます。

ベスト プラクティス

適切に設計された BigQuery 環境では、論理ビューは必要なデータを統合するのに役立つツールです。マテリアライズド ビューは、集計を多用する特定の高トラフィック クエリ パターンのパフォーマンス最適化ツールとして使用するために予約します。

マテリアライズド ビューの使用状況とパフォーマンスをモニタリングする方法については、MATERIALIZED_VIEWS ビューをご覧ください。

次のステップ