Création et exécution de requêtes - 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 et exécution de requêtes

Vous pouvez saisir une requête dans l’éditeur ou sélectionner une requête enregistrée dans la liste Queries (Requêtes) et choisir Run (Exécuter).

Par défaut, Limit 100 (Limite de 100) est défini pour limiter les résultats à 100 lignes. Vous pouvez désactiver cette option pour renvoyer un ensemble de résultats plus important. Si vous désactivez cette option, vous pouvez inclure l’option LIMIT dans votre instruction SQL, si vous souhaitez éviter des ensembles de résultats très volumineux. Pour plus d’informations, consultez ORDER BY clause (Clause ORDER BY) dans le Guide du développeur de bases de données Amazon Redshift.

Pour afficher un plan de requête dans la zone de résultats, activez Explain (Expliquer). Activez Explain graph (Graphique d’explication) pour que les résultats affichent également une représentation graphique du plan d’explication.

Pour enregistrer une requête dans le dossier Queries (Requêtes), choisissez Save (Enregistrer).

Dans le cas d’une requête réussie, un message de réussite s’affiche. Si la requête renvoie des informations, les résultats s’affichent dans la section Results (Résultats). Si le nombre de résultats dépasse la zone d’affichage, les chiffres apparaissent en haut de cette dernière. Vous pouvez choisir les chiffres pour afficher les pages de résultats successives.

Vous pouvez filtrer et trier Result (Résultat) pour chaque colonne. Pour entrer des critères de filtre dans l’en-tête de la colonne de résultats, survolez la colonne pour afficher un menu ( Filter menu ) où vous pouvez saisir des critères pour filtrer la colonne.

Si la requête contient une erreur, l’éditeur de requête v2 affiche un message d’erreur dans la zone de résultats. Le message fournit des informations sur la façon de corriger la requête.

Vous pouvez exporter ou copier les résultats de votre requête en utilisant le menu contextuel (clic droit) dans la zone des résultats comme suit :

  • Choisissez Export result set (Exporter l’ensemble de résultats) et soit JSON soit CSV pour télécharger l’ensemble des résultats de lignes dans un fichier. Le nombre de lignes dans l’ensemble de résultats peut être limité par l’option Limit (Limiter) ou la clause SQL limit de la requête. La taille maximale de l’ensemble de résultats téléchargés est de 5 Mo.

  • Si aucune ligne n’est sélectionnée, choisissez Export current page (Exporter la page actuelle) et soit JSON soit CSV pour télécharger les lignes de la page actuelle dans un fichier.

  • Si des lignes sont sélectionnées, choisissez Export selected rows (Exporter les lignes sélectionnées) et soit JSON soit CSV pour télécharger les lignes sélectionnées dans un fichier.

  • Si des lignes sont sélectionnées, choisissez Copy rows (Copier les lignes) pour copier les lignes sélectionnées dans le presse-papiers.

  • Si des lignes sont sélectionnées, choisissez Copy rows with headers (Copier les lignes avec les en-têtes) pour copier les lignes sélectionnées avec les en-têtes de colonne dans le presse-papiers.

Vous pouvez également utiliser le raccourci Ctrl+C sur Windows ou Cmd+C sur macOS pour copier les données de la page de résultats actuelle dans le presse-papiers. Si aucune ligne n’est sélectionnée, la cellule sur laquelle vous vous concentrez est copiée dans le presse-papiers. Si des lignes sont sélectionnées, alors les lignes sélectionnées sont copiées dans le presse-papiers.

Pour ajouter un nouvel onglet de requête, choisissez l’icône New query tab , puis Editor (Éditeur), qui apparaît sur la ligne avec les onglets de requête. L’onglet de requête utilise une Isolated session ou pas. Avec une session isolée, les résultats d’une commande SQL, telle que la création d’une table temporaire dans un onglet de l’éditeur, ne sont pas visibles dans un autre onglet de l’éditeur. Lorsque vous ouvrez un onglet d’éditeur dans l’éditeur de requête v2, l’option par défaut est une session isolée.

Pour exécuter une requête
  1. Dans la zone de requête, effectuez l’une des actions suivantes :

    • Saisissez une requête.

    • Collez une requête que vous avez copiée.

    • Cliquez sur l’onglet Queries (Requêtes), ouvrez le menu contextuel (clic droit) d’une requête enregistrée et choisissez Open query (Ouvrir la requête).

  2. Confirmez que vous avez choisi les valeurs Cluster ou Workgroup (Groupe de travail) et Database (Base de données) correctes du SQL que vous prévoyez d’exécuter.

    Pour commencer, vous pouvez choisir Cluster ou Workgroup (Groupe de travail) dans l’arborescence. Choisissez également votre Database (Base de données) dans l’arborescence.

    Vous pouvez modifier les paramètres Cluster ou WorkGroup (Groupe de travail), et Database (Base de données) dans chaque onglet de l’éditeur avec la liste de contrôles déroulante située à côté de l’en-tête Isolated session (Session isolée) de chaque onglet de l’éditeur.

    Pour chaque onglet de l’éditeur, vous choisissez d’exécuter ou non le code SQL dans une Isolated session (Session isolée). Une session isolée possède sa propre connexion à une base de données. Utilisez-la pour exécuter du code SQL isolé des autres sessions de l’éditeur de requête. Pour plus d’informations sur les connexions, consultez Ouverture de l’éditeur de requête v2.

  3. Cliquez sur Exécuter.

    La zone Result (Résultat) s’ouvre et affiche les résultats de la requête.

Pour afficher le plan d’explication d’une requête
  1. Sélectionnez la requête.

  2. Activez Explain (Expliquer).

    Par défaut, l’option Explain graph (Graphique d’explication) est également activée.

  3. Cliquez sur Exécuter.

    La requête s’exécute et le plan d’explication s’affiche dans la zone Result (Résultat) de la requête.

L’éditeur de requête v2 prend en charge les fonctionnalités suivantes :

  • Vous pouvez créer des requêtes avec plusieurs instructions SQL dans un onglet de requête. Les requêtes sont exécutées en série et plusieurs onglets de résultats s’ouvrent pour chaque requête.

  • Vous pouvez créer des requêtes avec des variables de séance et des tables temporaires.

  • Vous pouvez créer des requêtes avec des paramètres remplaçables désignés par ${parameter}. Vous pouvez créer votre requête SQL avec plusieurs paramètres remplaçables et utiliser le même paramètre à plusieurs endroits de votre instruction SQL.

    Lorsque la requête s’exécute, une fenêtre s’affiche pour saisir la valeur du paramètre. Chaque fois que vous exécutez la requête, la fenêtre s’affiche pour entrer les valeurs de vos paramètres.

    Pour obtenir un exemple, consultez Exemple : ventes supérieures à un paramètre spécifique.

  • Les requêtes sont versionnées automatiquement. Vous pouvez choisir une version antérieure d’une requête à exécuter.

  • Vous n’avez pas besoin d’attendre la fin d’une requête avant de poursuivre votre flux de travail. Vos requêtes continuent de s’exécuter, même si vous fermez l’éditeur de requête.

  • Lors de la création de requêtes, l’achèvement automatique des noms de schéma, de table et de colonne est pris en charge à l’aide d’un raccourci.

L’éditeur SQL prend en charge les fonctionnalités suivantes :

  • Les crochets de début et de fin utilisés dans SQL ont des couleurs identiques. Des lignes verticales sont affichées dans l’éditeur pour vous aider à faire correspondre les crochets.

  • Vous pouvez réduire et développer des sections de votre code SQL.

  • Vous pouvez rechercher et remplacer du texte dans votre SQL.

  • Vous pouvez utiliser les touches de raccourci pour plusieurs tâches d’édition courantes.

  • Les erreurs SQL sont mises en surbrillance dans l’éditeur pour faciliter la localisation des zones problématiques.

Pour une démonstration des fonctionnalités de l’éditeur, regardez la vidéo suivante.

Exemples de requêtes

Vous trouverez ci-après les descriptions des différents types de requêtes que vous pouvez exécuter.

Les données utilisées dans bon nombre de ces requêtes proviennent de l’exemple de schéma tickit. Pour plus d’informations sur le chargement des exemples de données tickit, consultez Chargement d’exemples de données. Pour plus d’informations sur les exemples de données tickit, consultez Exemple de base de données dans le Guide du développeur de base de données Amazon Redshift.

Lorsque vous exécutez ces exemples de requêtes, confirmez que vous choisissez la base de données appropriée dans l’éditeur, telle que sample_data_dev.

Exemple : définition de variables de séance

La commande suivante définit le paramètre de configuration du serveur search_path sur public pour la séance. Pour plus d’informations, consultez SET et search_path dans le Guide du développeur de bases de données Amazon Redshift.

set search_path to public;

Exemple : événement le plus important par ventes totales

La requête suivante recherche l’événement ayant le plus de ventes.

select eventname, count(salesid) totalorders, sum(pricepaid) totalsales from sales, event where sales.eventid=event.eventid group by eventname order by 3;

Voici une liste partielle des résultats.

eventname totalorders totalsales White Christmas 20 9352 Joshua Radin 38 23469 Beach Boys 58 30383 Linda Ronstadt 56 35043 Rascal Flatts 76 38214 Billy Idol 67 40101 Stephenie Meyer 72 41509 Indigo Girls 57 45399 ...

Exemple : ventes supérieures à un paramètre spécifique

La requête suivante recherche les ventes dont la quantité vendue est supérieure au paramètre spécifié par ${numberoforders}. Lorsque la valeur du paramètre est 7, le résultat est de 60 lignes. Lorsque vous exécutez la requête, l’éditeur de requête v2 affiche une fenêtre Run query form (Exécuter un formulaire de requête) pour rassembler la valeur des paramètres dans l’instruction SQL.

select salesid, qtysold from sales where qtysold > ${numberoforders} order by 2;

Voici une liste partielle des résultats.

salesid qtysold 20005 8 21279 8 130232 8 42737 8 74681 8 67103 8 105533 8 91620 8 121552 8 ...

Exemple : créer une table temporaire

L’instruction suivante crée la table temporaire eventsalestemp en sélectionnant des informations dans les tables sales (ventes) et event (événement).

create temporary table eventsalestemp as select eventname, count(salesid) totalorders, sum(pricepaid) totalsales from sales, event where sales.eventid=event.eventid group by eventname;

Exemple : sélection à partir d’une table temporaire

L’instruction suivante sélectionne les événements, le total des commandes et le total des ventes à partir de la table temporaire eventsalestemp, ordonnés par nombre total de commandes.

select eventname, totalorders, totalsales from eventsalestemp order by 2;

Voici une liste partielle de résultats :

eventname totalorders totalsales White Christmas 20 9352 Joshua Radin 38 23469 Martina McBride 50 52932 Linda Ronstadt 56 35043 Indigo Girls 57 45399 Beach Boys 58 30383 ...