

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Tutorial: Verwendung der Amazon-Q-Funktion für generatives SQL mit den TICKIT-Daten
<a name="query-editor-v2-generative-ai-example"></a>

Um effiziente Aufforderungen zum Generieren von SQL zu erstellen, müssen Sie sich mit Ihrem Datenbankschema und Ihren Daten vertraut machen. Die TICKIT-Daten umfassen sieben Tabellen, zwei Faktentabellen und fünf Dimensionen. Die Beispieldaten enthalten Aufzeichnungen über Verkäufe an Besucher von Unterhaltungsveranstaltungen, die im Jahr 2008 stattfanden. Weitere Informationen über das TICKIT-Datenschema finden Sie unter [Beispieldatenbank](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) im *Datenbankentwicklerhandbuch zu Amazon Redshift*. Sie können die TICKIT-Daten mit verschiedenen Methoden in der Amazon Redshift-Konsole und in Query Editor v2 in eine Datenbank laden. Query Editor v2 bietet eine Methode zum Laden von TICKIT-Daten in die Datenbank `sample_data_dev`. Weitere Informationen finden Sie unter [Laden von Daten in eine Datenbank](query-editor-v2-loading.md). Query Editor v2 bietet auch Beispielaufforderungen für die TICKIT-Daten. Das folgende Szenario beschreibt eine Konversation mit generativem SQL zum Generieren von SQL zu den TICKIT-Beispieldaten. In diesem Szenario sind die TICKIT-Beispieldaten bereits in einer Datenbank `dev` in einem Amazon-Redshift-Cluster erstellt. 

**Anmerkung**  
Dieses Beispiel dient der Veranschaulichung einer Konversation. Es kann sein, dass die Antworten des generativen SQL nicht mit den Ergebnissen übereinstimmen, die Sie bei Verwendung derselben Aufforderungen erhalten.

**Beispiel für eine Konversation mit generativem SQL von Amazon Q**

1. Stellen Sie im **Editor** eine Verbindung zu einem Cluster oder einer Arbeitsgruppe her, die die TICKIT-Beispieldaten enthält.

1. Erstellen Sie ein leeres Notebook und wählen Sie das Symbol für generatives SQL ![\[Generative SQL\]](http://docs.aws.amazon.com/de_de/redshift/latest/mgmt/images/qev2-amazon-q.png), um den Chat-Bereich zu öffnen.

1. Geben Sie die folgende Aufforderung ein, um SQL zur Überprüfung der Anzahl der Datensätze in der Tabelle `VENUE` zu generieren:

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

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

   Wählen Sie **Zu Notebook hinzufügen** aus, um dem geöffneten Notebook zwei Zellen hinzuzufügen. Eine Markdown-Zelle „How many venues are there?“ und eine mit dem generierten SQL.

   Wählen Sie in der SQL-Zelle **Ausführen** aus, um das Ergebnis zu erhalten:

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

1. Um nach einer anderen Version von SQL zu fragen, wählen Sie **SQL neu generieren** aus. Sie erhalten die folgende Antwort:

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

   Wählen Sie **Zu Notebook hinzufügen** aus, um dem geöffneten Notebook zwei weitere Zellen hinzuzufügen. Eine Markdown-Zelle „How many venues are there?“ und eine mit dem generierten SQL.

   Wählen Sie in der SQL-Zelle die Option **Ausführen** aus, um das Ergebnis, eine Auflistung der Bundesstaaten der Veranstaltungsorte nach Anzahl, zu erhalten.

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

1. Der generative SQL-Assistent kann Annahmen darüber treffen, was Sie fragen. Obwohl es in der Datenbank keine Widgets gibt, können Sie dennoch fragen. In diesem Fall erhalten Sie die Meldung, dass kein SQL generiert werden konnte.

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

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

1. Wenn Sie mehr über Ihre Datenbank erfahren, können Sie spezifischere Fragen zum Generieren von SQL stellen. Sie wissen beispielsweise, dass die Datenbank Verkaufsdaten zu mehreren Monaten im Jahr 2008 enthält. Geben Sie die folgende Aufforderung ein, um SQL zur Ermittlung der Anzahl der Verkäufe im November 2008 zu generieren:

   ```
   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
   ```

   Wählen Sie **Zu Notebook hinzufügen** aus, um dem geöffneten Notebook zwei Zellen hinzuzufügen. Eine Markdown-Zelle „How many sales were there in November 2008?“ und eine mit dem generierten SQL.

   Wählen Sie in der SQL-Zelle **Ausführen** aus, um das Ergebnis zu erhalten:

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

   Sie erkennen, dass dies nicht das Ergebnis ist, das Sie erwartet haben.

1. Sie stellen fest, dass das Prädikat `date.month='November'` erwartet, dass der Monat in der DATE-Tabelle durch eine Abkürzung des Monatsnamens dargestellt wird. Sie ändern das Prädikat in `d.month='NOV'` und führen das SQL erneut aus.

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

   Wählen Sie in der SQL-Zelle **Ausführen** aus, um neue Ergebnisse zu erhalten.

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

1. Wenn Sie eine Frage stellen, die versucht, die verbundene Datenbank zu ändern, wird eine Warnmeldung zusammen mit dem empfohlenen SQL zurückgegeben. Geben Sie die folgende Aufforderung ein, um SQL zum Einfügen von Daten in eine Tabelle zu generieren:

   ```
   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.
   ```

   Wenn Sie **Zu Notebook hinzufügen** auswählen, um dem geöffneten Notebook zwei Zellen hinzuzufügen und das SQL auszuführen, schlägt das SQL fehl.

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

In diesem Szenario wurden nur einige grundlegende Möglichkeiten zur Interaktion mit dem generativen SQL von Amazon Q veranschaulicht. Sie können noch mehr mit dieser generativen KI-Technologie experimentieren, um leichter mit der Erstellung von SQL zur Abfrage Ihrer Datenbank beginnen zu können.