Actualisation de vues matérialisées - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Actualisation de vues matérialisées

Une vue matérialisée contient un instantané du résultat de la requête. Les vues matérialisées ne sont pas mises à jour régulièrement, sauf si vous configurez Amazon Redshift pour effectuer des mises à jour périodiques. Pour actualiser et mettre à jour manuellement les données de la vue matérialisée, vous pouvez utiliser l'instruction REFRESH MATERIALIZED VIEW à tout moment. Cette commande identifie les modifications qui ont lieu dans les tables de base et applique ces modifications à la vue matérialisée.

Il existe deux méthodes pour actualiser une vue matérialisée : une actualisation manuelle et une actualisation automatique (appelée actualisation automatique). L'exemple de requête suivant montre comment actualiser manuellement une vue matérialisée :

REFRESH MATERIALIZED VIEW mv_total_orders;

Pour actualiser automatiquement une vue matérialisée, ajoutez la clause AUTO REFRESH YES à l'instruction CREATE MATERIALIZED VIEW comme le montre l'exemple suivant :

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 actualise automatiquement les vues matérialisées dès que possible après la modification des tables de base. Pour réduire l'impact des charges de travail actives dans votre cluster lors du traitement de l'actualisation, Amazon Redshift prend en compte les facteurs suivants :

  • Charge actuelle du système

  • Les ressources requises pour une actualisation

  • Ressources de cluster disponibles

  • Fréquence d'utilisation des vues matérialisées

Amazon Redshift privilégie vos charges de travail par rapport à l'actualisation automatique et peut arrêter cette dernière pour préserver les performances de l'application des utilisateurs. N'oubliez pas que cette approche peut retarder l'actualisation de certaines vues matérialisées. Pour connaître l'état de l'actualisation, vous pouvez consulter la vue SVL_MV_REFRESH_STATUS. Cette vue enregistre les requêtes initiées par l'utilisateur ou actualisées automatiquement.