

 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 ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

# Didacticiel : utilisation de l’assistant SQL génératif d’Amazon Q avec les données TICKIT
<a name="query-editor-v2-generative-ai-example"></a>

Afin de créer des invites efficaces pour générer du code SQL, vous devez apprendre à connaître votre schéma de base de données et vos données. Les données TICKIT sont composées de sept tables : deux tables de faits et cinq dimensions. L’échantillon de données contient des enregistrements sur les ventes aux spectateurs d’événements de divertissement qui ont eu lieu en 2008. Pour plus d’informations sur le schéma de données TICKIT, consultez [Exemple de base de données](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) dans le *Guide du développeur de base de données Amazon Redshift*. Vous pouvez charger les données TICKIT dans une base de données via différentes méthodes, dans la console Amazon Redshift ou dans l’éditeur de requêtes v2. L’éditeur de requêtes v2 fournit une méthode pour charger les données TICKIT dans la base de données `sample_data_dev`. Pour plus d'informations, consultez [Chargement de données dans une base de données](query-editor-v2-loading.md). L’éditeur de requêtes v2 fournit également des exemples d’invite pour les données TICKIT. Le scénario suivant décrit une conversation avec l’assistant SQL génératif dans le but de générer du code SQL concernant l’échantillon de données TICKIT. Dans ce scénario, l’échantillon de données TICKIT est déjà créé dans une base de données `dev`, dans un cluster Amazon Redshift. 

**Note**  
Cet exemple a pour but d’illustrer une conversation. Les réponses de l’assistant SQL génératif peuvent ne pas correspondre aux résultats que vous avez obtenus en utilisant les mêmes invites.

**Exemple de conversation avec l’assistant SQL génératif Amazon Q**

1. Dans l’**éditeur**, connectez-vous à un cluster ou à un groupe de travail contenant l’échantillon de données TICKIT.

1. Créez un bloc-notes vide et choisissez l’icône ![\[Generative SQL\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/mgmt/images/qev2-amazon-q.png) SQL génératif pour ouvrir le panneau de discussion.

1. Entrez l’invite suivante pour générer du code SQL afin de vérifier le nombre d’enregistrements figurant dans la table `VENUE` :

   ```
   How many venues are there?
   ```

   ```
   SELECT
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   ```

   Choisissez **Ajouter au bloc-notes** pour ajouter deux cellules au bloc-notes ouvert. Une cellule Markdown « How many venues are there? » (Combien y a-t-il de sites ?) et une cellule contenant le code SQL généré.

   Dans la cellule SQL, choisissez **Exécuter** pour recevoir le résultat :

   ```
   count
   ------
   202
   ```

1. Pour demander une autre version de code SQL, choisissez **Regénérer SQL**. Vous obtenez la réponse suivante :

   ```
   SELECT
     venuestate,
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   GROUP BY
     venuestate
   ```

   Choisissez **Ajouter au bloc-notes** pour ajouter deux cellules supplémentaires au bloc-notes ouvert. Une cellule Markdown « How many venues are there? » (Combien y a-t-il de sites ?) et une cellule contenant le code SQL généré.

   Dans la cellule SQL, choisissez **Exécuter** pour recevoir le résultat répertoriant les états avec leur nombre de sites :

   ```
   venuestate num_venues
   ----------------------
   MA         4	
   OH         8	
   MI         5	
   ...
   ```

1. L’assistant SQL génératif peut émettre des hypothèses sur ce que vous demandez. Bien qu’il n’y ait aucun widget dans la base de données, vous pouvez toujours poser la question. Dans ce cas, il affiche un message indiquant qu’il n’a pas pu générer de code SQL.

   ```
   How many widgets are there?
   ```

   ```
   I was not able to generate any SQL
   ```

1. Plus vous en apprendrez sur votre base de données, plus vous pouvez poser des questions spécifiques dans le but de générer du code SQL. Par exemple, vous savez que la base de données contient des données de ventes pour plusieurs mois de l’année 2008. Entrez l’invite suivante pour générer du code SQL afin de connaître le nombre de ventes réalisées en novembre 2008 :

   ```
   How many sales were there in November 2008?
   ```

   ```
   SELECT
     COUNT(*) AS num_sales
   FROM
     tickit.sales s
     JOIN tickit.date d ON s.dateid = d.dateid
   WHERE
     d.month = 'November'
     AND d.year = 2008
   ```

   Choisissez **Ajouter au bloc-notes** pour ajouter deux cellules au bloc-notes ouvert. Une cellule Markdown « How many sales were there in November 2008? » (Combien de ventes ont été réalisées en novembre 2008 ?) et une cellule contenant le code SQL généré.

   Dans la cellule SQL, choisissez **Exécuter** pour recevoir le résultat :

   ```
   num_sales
   -----
   0
   ```

   Vous vous rendez compte que ce n’est pas le résultat auquel vous vous attendiez.

1. Vous remarquerez que le prédicat `date.month='November'` s’attend à ce que le mois de la table DATE soit représenté par une abréviation du nom du mois. Vous remplacez ce prédicat par `d.month='NOV'` et réexécutez le code SQL.

   ```
   SELECT
     COUNT(*)
   FROM
     sales
     JOIN date ON sales.dateid = date.dateid
   WHERE
     date.month = 'NOV'
     AND date.year = 2008
   ```

   Dans la cellule SQL, choisissez **Exécuter** pour obtenir de nouveaux résultats.

   ```
   count
   -----
   14261
   ```

1. Si vous posez une question qui tente de modifier la base de données connectée, un message d’avertissement est renvoyé avec le code SQL recommandé. Entrez l’invite suivante pour générer du code SQL afin d’insérer des données dans une table :

   ```
   Insert 1 into the venue table.
   ```

   ```
   INSERT
   ,
   UPDATE
     OR delete data
   FROM
     the database AS that could potentially change the data.Please provide a query that ONLY selects data
   ```

   ```
   I was not able to generate the correct SQL code. I generated SQL, but you'll have to edit it to work with your database.
   ```

   Si vous choisissez **Ajouter au bloc-notes** pour ajouter deux cellules au bloc-notes ouvert et exécuter le code SQL, le code SQL échoue.

   ```
   ERROR: syntax error at or near "," Position: 132 [ErrorId: 1-6546764a-011df2691778846219ce6ec2]
   ```

Ce scénario illustre uniquement quelques manières élémentaires d’interagir avec l’assistant SQL génératif Amazon Q. Vous pouvez continuer à expérimenter l’utilisation de cette technologie d’IA générative pour créer du code SQL afin d’interroger votre base de données.