マテリアライズドビューのクエリの実行 - Amazon Redshift

マテリアライズドビューのクエリの実行

マテリアライズドビューは、テーブルやスタンダードビューなどのデータソースとしてマテリアライズドビューの名前を参照することにより、任意の SQL クエリで使用することができます。

クエリがマテリアライズドビューにアクセスする際は、最新の更新時にマテリアライズドビューに保存されているデータのみが参照されます。そのため、クエリは、マテリアライズドビューに対応するベーステーブルからのすべての最新の変更を参照しない場合があります。

他のユーザーがマテリアライズドビューをクエリする場合、このビューの所有者は、それらのユーザーに対し SELECT のアクセス許可を付与する必要があります。これら他のユーザーには、基盤のベーステーブルに対する SELECT のアクセス許可は必要ありません。マテリアライズドビューの所有者は、他のユーザーから SELECT のアクセス許可を取り消して、マテリアライズドビューへのクエリを拒否することもできます。

マテリアライズドビューの所有者が、基盤のベーステーブルに対する SELECT のアクセス許可を失った場合は、以下のような状態になります。

  • 所有者はマテリアライズドビューをクエリできなくなります。

  • マテリアライズドビューに対する SELECT のアクセス許可を持つ他のユーザーは、そのマテリアライズドビューをクエリできなくなります。

次の例では、マテリアライズドビュー tickets_mv をクエリします。マテリアライズドビューの作成に使用される SQL コマンドの詳細については、「CREATE MATERIALIZED VIEW」を参照してください。

SELECT sold FROM tickets_mv WHERE catgroup = 'Concerts';

クエリの結果が事前計算されているため、基となるテーブル (categoryevent、および sales) にアクセスする必要はありません。Amazon Redshift は、tickets_mvから直接結果を返すことができます。