Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le billet de blog
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.
Facteurs affectant la performance des requêtes
Un certain nombre de facteurs peut affecter les performances des requêtes. Les aspects suivants de vos opérations de données, de cluster et de base de données jouent tous un rôle dans la vitesse de traitement de vos requêtes.
-
Nombre de nœuds, de processeurs ou de tranches – Un nœud de calcul est partitionné en tranches. Davantage de nœuds signifie davantage de processeurs et de tranches, ce qui accélère le traitement de vos requêtes grâce à l’exécution simultanée de parties de la requête entre les tranches. Cependant, davantage de nœuds signifie également une dépense supérieure, autrement dit, il vous faudra trouver un équilibre entre les coûts et les performances en fonction de votre système. Pour plus d’informations sur l’architecture de cluster Amazon Redshift, consultez Architecture système de l’entrepôt des données.
-
Types de nœuds : un cluster Amazon Redshift peut utiliser l’un des nombreux types de nœuds. Chaque type de nœud propose différentes tailles et limites vous permettant de mettre à l’échelle votre cluster de façon appropriée. La taille de nœud détermine la capacité de stockage, la mémoire, le processeur et le prix de chaque nœud du cluster. Pour plus d’informations sur les types de nœuds, consultez Présentation des clusters Amazon Redshift dans le Guide de gestion Amazon Redshift.
-
Distribution des données – Amazon Redshift stocke les données de la table sur les nœuds de calcul en fonction du style de distribution de la table. Lorsque vous exécutez une requête, l’optimiseur de requête redistribue les données sur les nœuds de calcul en fonction des besoins afin d’effectuer des jointures et des agrégations. Le choix du style de distribution adapté à une table permet de réduire l’impact de l’étape de la redistribution en plaçant les données à l’emplacement souhaité avant que les jointures soient effectuées. Pour plus d’informations, consultez Distribution de données pour l’optimisation des requêtes.
-
Ordre de tri des données – Amazon Redshift stocke les données de la table sur le disque dans un ordre trié selon les clés de tri de la table. L’optimiseur de requête et le processeur de requêtes utilisent les informations sur l’emplacement des données afin de réduire le nombre de blocs à analyser, ce qui améliore ainsi la vitesse de la requête. Pour plus d’informations, consultez Clés de tri.
-
Taille du jeu de données – Un volume de données plus élevé dans le cluster peut ralentir les performances des requêtes, car davantage de lignes doivent être analysées et redistribuées. Vous pouvez atténuer cet effet en nettoyant et en archivant régulièrement les données et en utilisant un prédicat afin de limiter le jeu de données de la requête.
-
Opérations simultanées – L’exécution de plusieurs opérations simultanément peut affecter les performances des requêtes. Chaque opération prend un ou plusieurs emplacements dans une file d’attente de requête disponible et utilise la mémoire qui leur est associée. Si d’autres opérations sont en cours d’exécution, il se peut que les emplacements de file d’attente de requête nécessaires ne soient pas disponibles. Dans ce cas, la requête devra attendre que des emplacements s’ouvrent pour commencer le traitement. Pour plus d’informations sur la création et la configuration des files d’attente de requête, consultez Gestion de la charge de travail.
-
Structure de requête – La façon dont votre requête est rédigée influe sur ses performances. Écrivez autant que possible des requêtes à traiter et renvoyez aussi peu de données que nécessaire. Pour de plus amples informations, veuillez consulter Bonnes pratiques Amazon Redshift pour la conception de requêtes.
-
Compilation de code — Amazon Redshift génère et compile du code optimisé pour chaque plan d'exécution des requêtes. Le code compilé s'exécute plus rapidement car il élimine la surcharge liée à l'utilisation d'un interpréteur. Afin de minimiser le temps de latence pour les nouvelles requêtes tout en préservant les avantages en termes de performances du code compilé, Amazon Redshift utilise une technique appelée composition. La composition génère un arrangement léger de logiques préexistantes pour traiter les nouvelles requêtes immédiatement, tout en compilant simultanément du code hautement optimisé et spécifique aux requêtes en arrière-plan. Cela permet de supprimer la compilation du chemin critique de l'exécution des requêtes, de sorte que les nouvelles requêtes démarrent plus rapidement et offrent des performances cohérentes avec les exécutions suivantes.
Amazon Redshift utilise également un service de compilation sans serveur pour étendre les compilations de requêtes au-delà des ressources de calcul d'un cluster Amazon Redshift. Les segments de code compilés sont mis en cache à la fois localement sur le cluster et dans un cache distant pratiquement illimité qui persiste après le redémarrage du cluster. Les exécutions ultérieures de la même requête sont plus rapides car elles peuvent éviter la phase de compilation. À l'aide d'un service de compilation évolutif, Amazon Redshift compile le code en parallèle pour fournir des performances rapides et constantes.