[UPDATE] Amazon Redshiftでマテリアライズドビューが使えるようになります! #reinvent

2019年11月27日、Redshiftにマテリアライズドビュー機能が追加されたとの発表がありました。その内容を紹介します。
2019.12.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSの年次イベント"AWS re:Invent 2019"が、米国太平洋時間2019年12月2日から6日までの日程で開催されています。
こちらに先立って、11月27日に"Redshiftのマテリアライズドビュー"のプレビューが発表されました。

「マテリアライズドビュー(Materialized Views)」とは?

マテリアライズドビューは一言で表すと「データを持つデータベースビューオブジェクト」です。
リレーショナルデータベースには古くからあるポピュラーな機能で、「マテビュー」あるいは「MV」などとも呼ばれています。

マテリアライズドビューは、データを持つビューなので、通常のビューと異なり、クエリ実行毎に実テーブルに問い合わせすることはありません。そのため、BIツールなどで参照するビューをマテリアライズドビューで作成しておくことで、今までのビュー問い合わせ時に発生していた複数テーブルのJOIN、UNION、グループ関数による集計、CASE式によるデータの変換などを予め済ませておくことができるので、クエリの性能を向上させることができます。

ドキュメントから機能を確認する

マテリアライズドビューは、現在全てのユーザがプレビューとして利用できるのですが、取り急ぎドキュメントを確認してみます。

マテリアライズドビューを体験する為には、以下の条件を満たす必要があるとのことです。

  • プレビューが動作するバージョン(1.0.11532)のクラスタを構築
  • 新しいAmazon Redshiftコンソールを使用
  • preview_featuresという名前のトラックでプレビュー用のクラスターメンテナンストラックを使用していることを確認

マテリアライズドビュー作成の構文を確認すると、次の機能があるようです。

  • マテリアライズドビューのデータをバックアップの対象にする/しない
  • 通常テーブルと同様に、分散スタイル/分散キー/ソートキーの設定

また、マテリアライズドビューは実テーブルとは別にデータを持つことになるので、実テーブルの更新をマテリアライズドビューに反映させる更新処理が必要なるのですが、これについてRedshiftでは、手動でREFRESH MATERIALIZED VIEWの実行が必要とのことです。

マテリアライズドビュー機能は、2020年1月31日までプレビューとのことです。
後で実際のRedshiftクラスタで試したいと思います。まずは速報ということでお伝えしたいと思います。お楽しみに。