マテリアライズドビュー

データベース設計

Lis Sulmont

Curriculum Manager

2種類のビュー

ビュー

  • 非マテリアライズドビュー とも呼ばれる
  • これまでの定義
データベース設計

2種類のビュー

ビュー

  • また、非マテリアライズド・ビュー としても知られています
  • これまでにビューをどのように定義してきたか

マテリアライズドビュー

  • 物理的に具現化される
データベース設計

マテリアライズドビュー

  • クエリ ではなくクエリ結果 を保存する
  • マテリアライズドビューのクエリ = 保存されたクエリ結果へのアクセス
    • クエリを非マテリアライズドビューのように実行しない
  • スケジュールに応じて更新(再マテリアライズ)される
データベース設計

マテリアライズドビューを使用するタイミング

  • 実行に時間のかかるクエリ
  • 基盤となるクエリ結果はあまり変わらない
  • OLAPが書き込み型ではないため、データウェアハウスで効果的
    • 頻繁なクエリの計算コストを削減
データベース設計

マテリアライズドビューの実装

(PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
データベース設計

依存関係の管理

  • マテリアライズドビューはよく他のマテリアライズドビューに依存する
データベース設計

依存関係の例

$$ Diagram of X and Y views with an arrow from X and Y indicating a dependency

データベース設計

依存関係の管理

  • マテリアライズドビューはよく他のマテリアライズドビューに依存する
  • ビューを更新するときに依存関係チェーンを作成する
  • すべてのビューを同時に更新するのは効率的ではない
データベース設計

依存関係管理ツール

  • 有向非巡回グラフ(DAG)でビューを管理する $$ $$
  • パイプラインスケジューラツール

Example of a directed acyclic graph

Logos of Airflow and Luigi

データベース設計

練習しましょう!

データベース設計

Preparing Video For Download...