Création de vues matérialisées dans Amazon Redshift - Amazon Redshift

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.

Création de vues matérialisées dans Amazon Redshift

Dans un environnement d’entrepôt des données, les applications doivent souvent effectuer des requêtes complexes sur de grandes tables. Il y a notamment les instructions SELECT, qui effectuent des jointures et des agrégations de plusieurs tables sur des tables contenant des milliards de lignes. Le traitement de ces requêtes peut être coûteux en termes de ressources système et de temps nécessaires pour calculer les résultats.

Les vues matérialisées dans Amazon Redshift permettent de résoudre ces problèmes. Une vue matérialisée contient un ensemble de résultats précalculés basés sur une requête SQL sur une ou plusieurs tables de base. Vous pouvez émettre des instructions SELECT pour interroger une vue matérialisée, de la même manière que vous pouvez interroger d’autres tables ou vues de la base de données. Amazon Redshift renvoie les résultats précalculés à partir de la vue matérialisée sans forcément accéder aux tables de base. Du point de vue de l’utilisateur, les résultats de la requête sont renvoyés bien plus rapidement par rapport à l’extraction des mêmes données des tables de base.

Les vues matérialisées sont particulièrement utiles pour accélérer les requêtes qui sont prévisibles et répétées. Au lieu d’effectuer des requêtes intensives en ressources sur des tables volumineuses (par exemple, des agrégations ou des jointures de plusieurs tables), les applications peuvent interroger une vue matérialisée et extraire un ensemble de résultats précalculés. Par exemple, considérez le scénario dans lequel un ensemble de requêtes est utilisé pour remplir des tableaux de bord, comme Amazon. QuickSight Ce cas d’utilisation est idéal pour une vue matérialisée, car les requêtes sont prévisibles et répétées indéfiniment.

Vous pouvez définir une vue matérialisée selon d’autres vues matérialisées. Utilisez les vues matérialisées sur des vues matérialisées pour étendre la capacité des vues matérialisées. Avec cette approche, une vue matérialisée existante joue le même rôle qu’une table de base afin que la requête puisse récupérer des données.

Cette approche est pertinente pour réutiliser des jointures précalculées pour différentes options d’agrégation ou GROUP BY. Par exemple, prenez une vue matérialisée qui joint les informations client (contenant des millions de lignes) aux informations détaillées sur la commande d’articles (contenant des milliards de lignes). Il s’agit d’une requête coûteuse pouvant être lancée sur demande et de façon répétée. Vous pouvez utiliser différentes options GROUP BY pour les vues matérialisées créées au-dessus de cette vue matérialisée et les joindre à d’autres tables. Cela permet d’économiser du temps de calcul, autrement utilisé pour exécuter à chaque fois la jointure sous-jacente coûteuse. La table STV_MV_DEPS montre les dépendances d’une vue matérialisée sur d’autres vues matérialisées.

Lorsque vous créez une vue matérialisée, Amazon Redshift exécute l’instruction SQL définie par l’utilisateur pour collecter les données de la ou des tables de base et stocke l’ensemble de résultats. L’illustration suivante fournit une vue d’ensemble de la vue matérialisée tickets_mv définie par une requête SQL à l’aide de deux tables de base, events et sales.

Vous pouvez ensuite utiliser ces vues matérialisées dans les requêtes pour les accélérer. De plus, Amazon Redshift peut réécrire automatiquement ces requêtes pour utiliser des vues matérialisées, même lorsque la requête ne fait pas explicitement référence à une vue matérialisée. La réécriture automatique des requêtes est particulièrement efficace afin d’améliorer les performances lorsque vous ne pouvez pas modifier vos requêtes pour utiliser des vues matérialisées.

Pour mettre à jour les données de la vue matérialisée, vous pouvez utiliser l’instruction REFRESH MATERIALIZED VIEW à tout moment afin d’actualiser manuellement les vues matérialisées. Amazon Redshift identifie les modifications qui ont eu lieu dans la ou les tables de base, puis applique ces modifications à la vue matérialisée. Étant donné que la réécriture automatique des requêtes nécessite que les vues matérialisées soient à jour, en tant que propriétaire d’une vue matérialisée, assurez-vous de l’actualiser à chaque changement d’une table de base.

Amazon Redshift donne quelques astuces pour maintenir les vues matérialisées à jour pour la réécriture automatique. Vous pouvez configurer des vues matérialisées avec l’option d’actualisation automatique afin d’actualiser les vues matérialisées lorsque leurs tables de base sont mises à jour. L’actualisation automatique s’exécute à un moment où les ressources du cluster sont disponibles pour minimiser les interruptions des autres applications. Étant donné que la planification de l’actualisation automatique dépend de la charge de travail, vous pouvez contrôler plus facilement le moment où Amazon Redshift actualise vos vues matérialisées. Vous pouvez planifier une tâche d’actualisation d’une vue matérialisée à l’aide de l’API du planificateur Amazon Redshift et de l’intégration de la console. Pour plus d’informations sur la planification des requêtes, consultez Planification d’une requête sur la console Amazon Redshift.

Cela est particulièrement utile lorsqu'un accord de niveau de service (SLA) est requis pour les up-to-date données issues d'une vue matérialisée. Toutes les vues matérialisées que vous actualisez automatiquement peuvent aussi être actualisées manuellement. Pour plus d’informations sur la création de vues matérialisées, consultez CREATE MATERIALIZED VIEW.

Vous pouvez émettre des instructions SELECT pour interroger une vue matérialisée. Pour plus d’informations sur l’interrogation des vues matérialisées, consultez Interrogation d’une vue matérialisée. L’ensemble de résultats finit par devenir obsolète à mesure que les données sont insérées, mises à jour et supprimées dans les tables de base. Vous pouvez actualiser la vue matérialisée à tout moment pour la mettre à jour avec les dernières modifications des tables de base. Pour plus d’informations sur l’actualisation des vues matérialisées, consultez REFRESH MATERIALIZED VIEW.

Pour plus d’informations sur les commandes SQL utilisées pour créer et gérer des vues matérialisées, consultez les rubriques suivantes :

Pour plus d’informations sur les tables et les vues système permettant de surveiller les vues matérialisées, consultez les rubriques suivantes :