マテリアライズドビューの更新 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

マテリアライズドビューの更新

マテリアライズドビューにはクエリ結果のスナップショットが含まれます。Amazon Redshift を定期的に更新するように設定しない限り、マテリアライズドビューは定期的に更新されません。REFRESH MATERIALIZED VIEW ステートメントを使用して、マテリアライズドビューのデータを随時手動で更新できます。このコマンドはベーステーブルで行われた変更を特定し、その変更をマテリアライズドビューに適用します。

マテリアライズドビューを更新する方法は、手動更新と自動更新 (自動リフレッシュ) の 2 種類があります。次のクエリ例は、マテリアライズドビューを手動で更新する方法を示しています。

REFRESH MATERIALIZED VIEW mv_total_orders;

マテリアライズドビューを自動更新するには、以下の例にあるように、AUTO REFRESH YES 句を CREATE MATERIALIZED VIEW のステートメントに追加します。

CREATE MATERIALIZED VIEW mv_total_orders AUTO REFRESH YES -- Add this clause to auto refresh the MV AS SELECT c.cust_id, c.first_name, sum(o.amount) as total_amount FROM orders o JOIN customer c ON c.cust_id = o.customer_id GROUP BY c.cust_id, c.first_name;

Amazon Redshift は、ベーステーブルが変更されると、可及的速やかにマテリアライズドビューを自動更新します。更新を処理する際、クラスターにあるアクティブなワークロードの影響を最小限に抑えるため、Amazon Redshift は次の要素を考慮します。

  • 現在のシステム負荷

  • 更新に必要なリソース

  • 利用可能なクラスターリソース

  • マテリアライズドビューの使用頻度

Amazon Redshift は自動更新よりもワークロードを優先し、ユーザーのワークロードのパフォーマンスを維持するために自動更新を停止する場合があります。この方法では一部のマテリアライズドビューの更新が遅れる可能性があることに注意してください。更新ステータスについては、SVL_MV_REFRESH_STATUS ビューで確認できます。このビューには、ユーザーが開始したクエリまたは自動更新されたクエリが記録されます。