🔍

RedshiftにおけるVIEWの種類と関係

2024/05/18に公開

種類

  • View(ビュー)
  • Late Binding View(遅延バインドビュー)
  • Materialized View(マテリアライズドビュー)

View(ビュー)

CREATE VIEW myevent
AS SELECT eventname FROM event;

特徴

  • 作成時にテーブルや他のビューとの関連付けが行われる
  • 参照元のビューを変更しようとすると、参照先のビューが存在するためエラーが発生する(テーブルの場合はエラーにならない)

Late Binding View(遅延バインドビュー)

CREATE VIEW myevent
AS SELECT eventname FROM event
WITH NO SCHEMA BINDING;

※Viewのオプションとして設定可能

特徴

  • 作成時ではなく、実行時にテーブルや他のビューとの関連付けが行われる
  • 参照先のView定義を変更してもエラーが起こらない

利用ケース

  • 参照先のViewの定義が頻繁に変更される可能性がある場合

Materialized View(マテリアライズドビュー)

CREATE MATERIALIZED VIEW myevent
AS SELECT eventname FROM event;

特徴

  • 実際のデータを保持する
  • クエリの実行速度が向上する(事前に計算された結果を保持するため)
  • リフレッシュを行うことで最新データが反映される

リフレッシュ方法

  • 自動リフレッシュ設定
    CREATE MATERIALIZED VIEW myevent AUTO REFRESH YES
    AS SELECT eventname FROM event;
    
  • 手動リフレッシュ
    REFRESH MATERIALIZED VIEW myevent;
    

利用ケース

  • 頻繁に参照される複雑なクエリの結果を事前に計算しておく場合
  • リアルタイム性よりもクエリ速度が重視されるBIダッシュボードでの利用

まとめ

Redshiftには、シンプルなVIEW、参照先のスキーマ変更に強いLate Binding View、そしてパフォーマンスに優れたMaterialized Viewがある。それぞれの特徴と利用ケースを理解し、適切な場面で使い分けることが重要。

参考

Discussion