Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog
Profileur de requêtes
Ce document décrit le profileur de requêtes, un outil graphique permettant d’analyser les composants et les performances d’une requête.
Le profileur de requêtes est une fonctionnalité de surveillance et de dépannage des requêtes que vous pouvez afficher via la console Amazon Redshift. Il est utile pour analyser les performances des requêtes. Son objectif principal est d’afficher un ordre d’exécution visuel et graphique, un plan d’exécution et des statistiques concernant une requête, afin de faciliter sa compréhension et son dépannage. Le profileur de requêtes vous aide à analyser les types de composants de requête suivants :
Requêtes enfants : une requête enfant est une partie du travail qui découle d’une requête. Amazon Redshift peut diviser une requête en plusieurs requêtes enfants si le traitement de plusieurs petites requêtes est plus efficace que celui d’une seule grande requête. Dans le profileur, vous pouvez voir les propriétés de chaque requête enfant. Une requête enfant est composée de flux et de sous-composants supplémentaires.
Les types de requêtes enfants affichés par le profileur de requêtes sont généralement les suivants :
Requête de table temporaire : le texte de cette requête enfant commence par la commande
CREATE TEMP TABLE. Cette requête enfant crée des tables temporaires que d’autres requêtes enfants peuvent traiter.Requête de statistiques : le profileur de requêtes ajoute le commentaire suivant au début de cette requête enfant pour aider à l’identifier :
-- collect statistics of child queryqueryIDCette requête enfant collecte des informations que le moteur de requêtes Amazon Redshift utilise pour optimiser les performances.
Note
Le profileur de requêtes affiche la requête fournie par l’utilisateur comme dernière requête enfant exécutée par Amazon Redshift.
Flux : un flux est un ensemble de segments répartis sur une tranche de nœuds de calcul disponible Chaque requête enfant est composée d’un ou de plusieurs segments. Dans le profileur de requêtes, vous pouvez voir les propriétés de chaque flux, telles que son temps d’exécution. En parcourant la liste des flux, il est probable que vous puissiez rapidement détecter les problèmes de performance.
Segments : un segment est une combinaison de plusieurs étapes qu’un seul processus peut exécuter. Un segment est également la plus petite unité de compilation exécutable par une tranche de nœuds de calcul. Une tranche est l’unité de traitement parallèle dans Amazon Redshift. Les segments d’un flux s’exécutent en parallèle. Le profileur de requêtes n’affiche pas les segments graphiquement, mais vous pouvez accéder aux informations des segments pour une étape dans le volet de détails de cette étape.
Étapes : chaque segment est composé d’un ensemble d’étapes. Une étape est un élément d’une requête. Les étapes peuvent inclure une étape hashjoin, par exemple, ou un scan, qui consiste à lire les enregistrements d’une table.
Pour plus d’informations sur les flux, les segments et les étapes, consultez Flux de travail de planification et d’exécution des requêtes dans le Guide de développeur de base de données Amazon Redshift.
Le profileur de requêtes affiche les informations renvoyées par les vues SYS_QUERY_HISTORY, SYS_QUERY_DETAIL, SYS_QUERY_EXPLAIN et SYS_CHILD_QUERY_TEXT. Pour plus d’informations sur ces vues, consultez SYS_QUERY_HISTORY, SYS_QUERY_DETAIL, SYS_QUERY_EXPLAIN, and SYS_CHILD_QUERY_TEXT dans le Guide du développeur de base de données Amazon Redshift.
Le profileur de requêtes affiche uniquement les informations relatives aux requêtes récemment exécutées sur la base de données. Une requête qui se termine en utilisant des données de cache préremplies plutôt que d’être exécutée sur la base de données n’aura pas de profil de requête si aucune information n’était disponible auparavant pour cette requête. C’est parce qu’Amazon Redshift ne génère pas de plan de requête pour cette requête.
Prérequis pour l’utilisation du profileur de requêtes
Conçues pour être faciles à utiliser et réduire la complexité, les vues de surveillance SYS fournissent une gamme complète de métriques pour une surveillance et un dépannage efficaces. Les vues de surveillance SYS garantissent également l’historique des requêtes des sept derniers jours, quelle que soit la taille ou l’activité du cluster. Les utilisateurs n’ont de visibilité que pour les requêtes qu’ils ont exécutées, tandis que les super-utilisateurs ont une visibilité sur les requêtes de tous les utilisateurs.
Votre compte ou rôle d’utilisateur IAM a besoin d’autorisations pour accéder à la section Surveillance des requêtes et des bases de données de la console. Cette section décrit comment accorder des autorisations à un compte ou un rôle utilisateur
Utilisez la politique suivante pour ajouter des autorisations minimales à votre compte ou rôle d’utilisateur IAM.
Rubriques
Octroi d’autorisations de surveillance des requêtes à un rôle
Les utilisateurs dotés d’un rôle avec l’autorisation sys:monitor peuvent consulter toutes les requêtes. Les utilisateurs dotés d’un rôle avec l’autorisation sys:operator peuvent annuler des requêtes, analyser l’historique des requêtes et effectuer des opérations de nettoyage.
Pour accorder une autorisation de surveillance des requêtes à un rôle
Utilisez la commande suivante pour fournir un accès au moniteur système, où
role-namecorrespond au nom du rôle auquel vous souhaitez fournir un accès.grant role sys:monitor to "IAMR:role-name";(Facultatif) Utilisez la commande suivante pour fournir un accès à l’opérateur système, où
role-namecorrespond au nom du rôle auquel vous souhaitez fournir un accès.grant role sys:operator to "IAMR:role-name";
Octroi d’autorisations de surveillance des requêtes à un utilisateur
Les utilisateurs avec l’autorisation sys:monitor peuvent afficher toutes les requêtes. Les utilisateurs avec l’autorisation sys:operator peuvent annuler des requêtes, analyser l’historique des requêtes et effectuer des opérations de vide.
Pour accorder une autorisation de surveillance des requêtes à un utilisateur
Utilisez la commande suivante pour fournir un accès au moniteur système, où
user-namecorrespond au nom de l’utilisateur auquel vous souhaitez fournir un accès.grant role sys:monitor to "IAMR:user-name";(Facultatif) Utilisez la commande suivante pour fournir un accès à l’opérateur système, où
-namecorrespond au nom de l’utilisateur auquel vous souhaitez fournir un accès.grant role sys:operator to "IAMR:user-name";
Informations d’identification temporaires utilisant votre identité IAM
Cette option est disponible uniquement lors de la connexion à un cluster. Avec cette méthode, le profileur de requêtes mappe un nom d’utilisateur à votre identité IAM et génère un mot de passe temporaire pour se connecter à la base de données sous votre identité IAM. Un utilisateur utilisant cette méthode pour se connecter doit disposer de l’autorisation IAM pour redshift:GetClusterCredentialsWithIAM. Pour empêcher les utilisateurs d’utiliser cette méthode, modifiez leur rôle ou utilisateur IAM afin de refuser cette autorisation.
Accès au profileur de requêtes dans la console Amazon Redshift pour l’analyse d’une requête
Vous pouvez accéder au profileur de requêtes pour Amazon Redshift sans serveur ou Amazon Redshift alloué. Consultez les sections suivantes pour obtenir des détails :
Rubriques
Accès au profileur de requêtes dans la console Amazon Redshift pour Amazon Redshift sans serveur
Pour accéder au profileur de requêtes pour Amazon Redshift sans serveur, procédez comme suit :
Ouvrez la console Amazon Redshift sans serveur.
Dans le volet de navigation, sous Surveillance, sélectionnez Surveillance des requêtes et des bases de données.
Choisissez un groupe de travail.
Choisissez Requêtes et surveillance des bases de données.
Choisissez une requête.
Choisissez l’onglet Plan de requête sur la page Détails de la requête.
Si un plan de requêtes est disponible, vous verrez une liste de requêtes secondaires. Choisissez une requête pour l’afficher dans le profileur de requêtes.
Accès au profileur de requêtes dans la console Amazon Redshift pour Amazon Redshift alloué
Pour accéder au profileur de requêtes pour Amazon Redshift alloué, procédez comme suit :
Ouvrez le Tableau de bord des clusters alloués. Amazon Redshift
Choisissez un cluster.
Choisissez Query monitoring (Surveillance des requêtes).
Connectez-vous à une base de données.
Choisissez Requêtes et surveillance des bases de données.
Choisissez une requête.
Si un plan de requêtes est disponible, vous verrez une liste de requêtes secondaires. Choisissez une requête pour l’afficher dans le profileur de requêtes.
Interface utilisateur du profileur de requêtes
Le profileur de requêtes utilise les pages suivantes pour afficher les informations relatives à votre requête :
Page des détails de la requête : cette page affiche les statistiques et les requêtes secondaires relatives à votre requête.
Page de requête enfant : cette page affiche les statistiques, les flux et une représentation visuelle du plan d’exécution d’une requête enfant. La console affiche cette page lorsque vous choisissez une requête enfant dans la liste des Requêtes enfants de la page Surveillance des requêtes et des bases de données.
Page des détails de la requête
La page Détails de la requête comprend les éléments suivants :
Volet supérieur : le volet situé en haut de la page affiche les détails de la requête, tels que son statut et son type. Pour plus d’informations sur la source des informations affichées dans le volet supérieur, consultez SYS_QUERY_HISTORY dans le Guide du développeur de base de données Amazon Redshift.
Onglet SQL : cet onglet du panneau inférieur affiche le texte SQL de la requête utilisateur d’origine.
Onglet Plan de la requête : cet onglet du panneau inférieur affiche la liste des requêtes enfants qu’Amazon Redshift utilise pour préparer les données et les statistiques pour la requête de l’utilisateur. Par défaut, la liste Requêtes enfants affiche des informations et des statistiques agrégées sur chaque requête enfant. Pour plus d’informations sur la source des informations affichées sur cette page, consultez SYS_QUERY_DETAIL dans le Guide du développeur de base de données Amazon Redshift.
Vous pouvez ajouter ou supprimer des colonnes de la liste Requêtes enfants à l’aide du menu Préférences.
Métriques associées : cet onglet du panneau inférieur affiche les métriques CloudWatch suivantes pour la requête :
Capacité RPU utilisée (pour les groupes de travail sans serveur) : capacité de calcul utilisée par la requête, mesurée en unités de traitement Redshift (RPU). Pour plus d’informations, consultez Capacité de calcul pour Amazon Redshift sans serveur.
État de santé du cluster, utilisation du processeur, capacité de stockage utilisée (pour les clusters alloués) : état et ressources système utilisées par la requête.
Connexions de base de données actives : métrique
DatabaseConnectionsde la requête.
Pour plus d’informations sur les métriques CloudWatch, consultez Données de performances dans Amazon Redshift.
Page de requête enfant
La page Requête enfant comprend les éléments suivants :
Liste déroulante des requêtes enfants : ce contrôle indique le nom de la séquence et le temps d’exécution de chaque requête enfant. Vous pouvez accéder à d’autres requêtes enfants en les sélectionnant dans ce contrôle.
Panneau latéral : ce panneau contient des onglets permettant d’afficher les flux de requêtes enfants et le texte de la requête enfant.
Onglet Flux de la requête enfant : cet onglet du panneau supérieur affiche les éléments suivants :
Flux : ce volet affiche la liste des flux contenus dans la requête enfant. Ce volet affiche des informations et des données agrégées sur les flux utilisés par Amazon Redshift pour optimiser la requête. Pour plus d’informations sur les détails de ce volet, consultez SYS_QUERY_DETAIL dans le Guide du développeur de base de données Amazon Redshift.
Vous pouvez ajouter ou supprimer des colonnes dans le volet Flux à l’aide du menu Préférences. Vous accédez au menu Préférences à l’aide de l’icône en forme de roue dentée dans le volet Flux.
Volet de requête enfant : représentation graphique des étapes de la requête enfant. Pour plus d’informations sur le volet de Requête enfant, consultez Volet de requête enfant ci-après.
Onglet de texte de la requête enfant : cet onglet du panneau supérieur affiche le code SQL de la requête enfant.
Volet des détails de la requête enfant : ce volet situé dans le panneau de droite affiche les détails de la requête enfant. Pour plus d’informations sur les détails de ce volet, consultez SYS_QUERY_DETAIL dans le Guide du développeur de base de données Amazon Redshift.
Volet des détails du flux : lorsque vous choisissez un flux dans le volet Flux, le volet Détails du flux affiche des informations sur le flux. Pour plus d’informations sur les détails de ce volet, consultez SYS_QUERY_DETAIL dans le Guide du développeur de base de données Amazon Redshift.
Volet des détails de l’étape : lorsque vous choisissez une étape dans le volet Flux ou dans le graphe du Plan de Requête enfant, le volet Détails de l’étape affiche des informations sur l’étape. Pour plus d’informations sur les détails de ce volet, consultez SYS_QUERY_DETAIL dans le Guide du développeur de base de données Amazon Redshift.
Volet de requête enfant
Le profileur de requêtes affiche la requête enfant dans le volet Requête enfant sous forme de représentation graphique des étapes de la requête enfant sélectionnée.
Le volet Requête enfant affiche l’ordre d’exécution et les relations entre les étapes. Par exemple, si une étape joint le résultat de deux autres étapes, le volet Requête enfant affiche l’étape sous la forme d’un nœud arborescent alimenté par deux nœuds :
Le volet Requête enfant n’affiche pas les flux contenant les étapes par défaut. Pour afficher les flux utilisés par Amazon Redshift pour partitionner logiquement les étapes de la requête enfant, choisissez Afficher les flux. Lorsque vous choisissez Afficher les flux, le volet de Requête enfant affiche les étapes contenues dans les flux de la requête.
Le volet Requête enfant n’affiche pas d’informations sur les segments. Pour voir le segment correspondant à une étape, sélectionnez l’étape. Le volet Détails de l’étape affiche ensuite le segment correspondant à l’étape.
Navigation dans le volet Requête enfant
Dans le volet Requête enfant, vous pouvez choisir les étapes à suivre pour obtenir des informations détaillées les concernant. Vous pouvez également déplacer et zoomer sur l’espace de travail pour mieux visualiser les étapes de votre plan de requête.
Vous pouvez choisir des nœuds, déplacer et zoomer dans le volet Requête enfant en utilisant les méthodes suivantes :
À l’aide de la souris : vous pouvez choisir des nœuds, cliquer et faire glisser l’espace de travail pour le déplacer, et maintenir
Ctrl(Windows) ouCMD(Mac) et appuyer sur la molette de la souris pour zoomer. Le choix d’un nœud entraîne le zoom et le panoramique de l’espace de travail pour mettre en évidence ce nœud. Si vous choisissez un flux dans l’espace de travail, ce flux est surligné dans la liste des Flux. Si vous choisissez une étape dans l’espace de travail, le volet Détails de l’étape affiche les informations relatives à cette étape.Utilisation des commandes de zoom et d’ajustement situées dans le coin supérieur gauche de l’espace de travail : ces commandes vous permettent de zoomer en avant, de dézoomer, de zoomer sur l’ensemble de l’espace de travail et de passer en mode plein écran. Lorsque vous zoomez pour l’adapter à l’ensemble du plan de requête, l’espace de travail centre le plan de requête à la fois horizontalement et verticalement.
Utilisation de la mini-carte dans le coin inférieur droit de l’espace de travail : vous pouvez déplacer ou zoomer sur l’espace de travail à l’aide de la commande de minicarte située dans le coin inférieur gauche de l’espace de travail.
Choix d’un flux dans le volet Flux : si vous choisissez un flux dans le volet Flux, l’espace de travail se déplace et zoome pour afficher le flux sélectionné, et affiche des informations sur le flux dans le volet Détails du flux.
Choix d’une étape dans le volet Détails du flux : si vous choisissez une étape dans le volet Détails du flux, l’espace de travail se déplace et zoome pour afficher l’étape sélectionnée, et affiche des informations sur l’étape dans le volet Détails de l’étape.
Note
Lorsque vous choisissez une étape, que ce soit dans l’espace de travail ou dans un autre volet, l’espace de travail tente de zoomer et de se déplacer de manière à ce que l’étape sélectionnée soit mieux visible.
Lorsque vous choisissez un flux ou une étape dans l’espace de travail ou dans un autre volet, l’espace de travail ne zoome et se déplace sur ce flux ou cette étape que si vous avez sélectionné Panoramique et zoom dans le contrôle supérieur droit de l’espace de travail. Vous pouvez limiter ce comportement au panoramique et au zoom, au panoramique uniquement ou à l’absence de mouvement en choisissant le réglage approprié dans le menu déroulant.
Résolution des problèmes de requêtes avec le profileur de requêtes
Si vous résolvez les problèmes liés à une requête, vous pouvez choisir une requête enfant afin de déterminer quel flux utilise le Pourcentage le plus élevé du temps total de requête. Il s’agit d’un moyen rapide de déterminer quelle partie de votre requête doit être analysée plus en détail.
Une fois que vous avez déterminé quelle requête enfant prend le plus de temps, consultez ses étapes pour déterminer quelle jointure ou quel scan est susceptible de ralentir les performances.