🔍
RedshiftにおけるVIEWの種類と関係
種類
- 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