Interaktion mit Amazon Q generative SQL - Amazon Redshift

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.

Interaktion mit Amazon Q generative SQL

Anmerkung

Generativer SQL Support für Amazon Q ist nur in den folgenden Fällen verfügbar AWS-Regionen:

  • Region USA Ost (Nord-Virginia) (us-east-1)

  • Region USA West (Oregon) (us-west-2)

  • Region Asien-Pazifik (Mumbai) (ap-south-1)

  • Region Asien-Pazifik (Singapur) (ap-southeast-1)

  • Region Asien-Pazifik (Sydney) (ap-southeast-2)

  • Region Asien-Pazifik (Tokio) (ap-northeast-1)

  • Region Europa (Frankfurt) (eu-central-1)

  • Region Europa (Paris) (eu-west-3)

  • Region Europa (Irland) (eu-west-1)

Sie können mit den generativen SQL Funktionen von Amazon Q im Amazon Redshift Query Editor v2 interagieren. Es handelt sich um einen Programmierassistenten, der SQL Anweisungen auf der Grundlage Ihrer Eingabeaufforderungen und Ihres Datenbankschemas generiert. Dieser Programmierassistent ist verfügbar, während Sie ein Notebook in Query Editor v2 erstellen. Das SQL generierte ist für die Datenbank, mit der Ihr Notizbuch verbunden ist.

Stellen Sie bei der Interaktion mit Amazon Q Generative spezifische FragenSQL, wiederholen Sie, wenn Sie komplexe Anfragen haben, und überprüfen Sie, ob die Antworten korrekt sind.

Seien Sie bei Analyseanforderungen in natürlicher Sprache so spezifisch wie möglich, damit der Programmierassistent genau versteht, was Sie benötigen. Anstatt nur nach den Veranstaltungsorten zu fragen, die die meisten Tickets verkauft haben, sollten Sie weitere Details nennen, also beispielsweise nach den Namen/IDs der drei Veranstaltungsorte fragen, die 2008 die meisten Tickets verkauft haben. Verwenden Sie konsistente und spezifische Namen von Objekten in Ihrer Datenbank, wenn Sie sie kennen. Beispielsweise die Schema-, Tabellen- und Spaltennamen, wie sie in Ihrer Datenbank definiert sind, anstatt auf unterschiedliche Weise auf dasselbe Objekt zu verweisen, was den Assistenten verwirren kann.

Unterteilen Sie komplexe Anforderungen in mehrere einfache Anweisungen, die für den Assistenten leichter zu interpretieren sind. Stellen Sie immer wieder Folgefragen, um eine detailliertere Analyse von dem Assistenten zu erhalten. Fragen Sie zum Beispiel zuerst, in welchem Bundesstaat es die meisten Veranstaltungsorte gibt. Fragen Sie dann unter Berücksichtigung der Antwort nach dem beliebtesten Veranstaltungsort in diesem Bundesstaat.

Überprüfen Sie die generierte Datei, SQL bevor Sie sie ausführen, um die Richtigkeit sicherzustellen. Wenn die generierte SQL Abfrage Fehler enthält oder nicht Ihrer Absicht entspricht, geben Sie dem Assistenten Anweisungen zur Korrektur, anstatt die gesamte Anfrage neu zu formulieren. Wenn in der Abfrage beispielsweise eine Prädikatklausel für das Jahr fehlt, fordern Sie den Assistenten auf, die Veranstaltungsorte aus dem Jahr 2008 anzugeben.

Senden Sie den Text der Fehler, die Sie beim Ausführen der generierten SQL Befehle erhalten, zurück an den Amazon Q-Generator. SQL Es lernt aus diesen Fehlern, um bessere SQL Ergebnisse zu erzielen.

Fügen Sie Ihr Schema zum SQL Suchpfad hinzu, um zu signalisieren, dass das Schema verwendet werden soll. Fügen Sie beispielsweise das Tickit-Schema hinzu, wenn sich die Daten im Tickit-Schema und nicht im öffentlichen Schema befinden.

set search_path to '$user', tickit;

Überlegungen bei der Interaktion mit Amazon Q Generative SQL

Beachten Sie bei der Arbeit im Chat-Bereich Folgendes:

  • Der Query Editor v2-Administrator für Ihr Konto muss die Chat-Funktion auf der Seite Generative SQL Einstellungen aktiviert haben.

  • Um Amazon Q Generative verwenden zu könnenSQL, benötigen Sie zusätzlich zu anderen Berechtigungen, IAM die in der AWS verwalteten Richtlinie für den Abfrage-Editor v2 angegeben sind, eine Genehmigung sqlworkbench:GetQSqlRecommendations in Ihrer Richtlinie. Weitere Informationen zu AWS verwalteten Richtlinien finden Sie unterZugreifen auf den Abfrage-Editor v2.

  • Ihre Fragen müssen auf Englisch verfasst werden.

  • Ihre Fragen müssen sich auf die verbundene Datenbank in Ihrem Cluster oder Ihrer Arbeitsgruppe beziehen. Um Fehler wegen eines leeren Zustands zu vermeiden, sollte die Datenbank mindestens eine Tabelle und einige Daten enthalten.

  • Ihre Fragen müssen sich auf Daten beziehen, die in der verbundenen Datenbank gespeichert sind. Sie können nicht auf ein externes Schema verweisen. Weitere Informationen zu den unterstützten Schemas finden Sie unter Erstellen eines Schemas im Datenbankentwicklerhandbuch zu Amazon Redshift.

  • Alle Fragen, die dazu führenSQL, dass die verbundene Datenbank geändert wird, können zu einer Warnung führen.

  • Generative KI-Technologie ist neu und die Antworten können Fehler enthalten, die manchmal als Halluzinationen bezeichnet werden. Testen und überprüfen Sie den gesamten Code auf Fehler und Schwachstellen, bevor Sie ihn in Ihrer Umgebung oder Ihrem Workload verwenden.

  • Sie können die Empfehlungen verbessern, indem Sie die SQL Abfragen, die von anderen Benutzern in Ihrem Konto ausgeführt wurden, gemeinsam nutzen. Ihr Kontoadministrator kann die folgenden SQL Befehle ausführen, um Zugriff auf den Abfrageverlauf des Kontos zu gewähren.

    GRANT ROLE SYS:MONITOR to "IAMR:role-name"; GRANT ROLE SYS:MONITOR to "IAM:user-name"; GRANT ROLE SYS:MONITOR to "database-username";

    Weitere Informationen zu SYS:MONITOR finden Sie unter Systemdefinierte Amazon-Redshift-Rollen im Datenbankentwicklerhandbuch zu Amazon Redshift.

  • Ihre Daten sind sicher und privat. Ihre Daten werden nicht kontoübergreifend gemeinsam genutzt. Ihre Abfragen, Daten und Datenbankschemas werden nicht zum Trainieren eines Basismodells (FM) für generative KI verwendet. Ihre Eingaben werden als kontextbezogene Aufforderungen an das FM nur zur Beantwortung Ihrer Fragen verwendet.

Benutzerdefinierter Kontext

Der Administrator des Abfrage-Editors Version 2 kann einen benutzerdefinierten Kontext angeben, um den generierten Kontext SQL an Ihre Umgebung anzupassen. Ein benutzerdefinierter Kontext bietet Fachwissen und Einstellungen, um eine genaue Steuerung SQL der Generierung zu ermöglichen. Ein benutzerdefinierter Kontext ist in einer JSON Datei definiert, die vom Administrator des Abfrage-Editors v2 auf Amazon Q Generative hochgeladen werden kannSQL.

Die JSON Schlüssel, die zur Personalisierung von Generated SQL für ein Data Warehouse verwendet werden, lauten wie folgt.

Alle Tabellenverweise müssen der dreiteiligen Notation folgen. database.schema.table

Ressourcen

Eine Ressource gibt den Bereich oder Teil eines Datenbestands an, auf den der benutzerdefinierte Kontext angewendet wird.

ResourceId

Gibt einen eindeutigen Bezeichner der Ressource an. Geben Sie für einen Amazon Redshift Redshift-Cluster den cluster id an. Geben Sie für eine serverlose Redshift-Arbeitsgruppe den an. workgroup name

ResourceType

Zulässiger Wert: REDSHIFT_WAREHOUSE.

TablesToInclude

Gibt eine Reihe von Tabellen an, die bei der Generierung berücksichtigt werden. SQL Dieses Feld ist wichtig, wenn Sie den Umfang von SQL Abfragen auf eine definierte Teilmenge verfügbarer Tabellen beschränken möchten. Es kann helfen, den Generierungsprozess zu optimieren, indem unnötige Tabellenverweise reduziert werden. Sie können dieses Feld mit kombinieren, TablesToExclude um die Abfragegenerierung genauer steuern zu können.

TablesToExclude

Gibt die Gruppe von Tabellen an, die von der SQL Generierung ausgeschlossen sind. Verwenden Sie diese Option, wenn bestimmte Tabellen irrelevant sind oder bei der Generierung von Abfragen nicht berücksichtigt werden sollten.

TableAnnotations

Stellt Metadaten oder zusätzliche Informationen zu den verwendeten Tabellen bereit. Diese Anmerkungen können Tabellenbeschreibungen, Nutzungshinweise oder zusätzliche Attribute enthalten, die Amazon Q Generative helfen, den Kontext oder die Struktur der Tabelle SQL besser zu verstehen. Dies ist nützlich, um die Genauigkeit der SQL Generierung zu verbessern, indem es die Tabellendefinitionen übersichtlicher macht.

ColumnsToInclude

Definiert, welche Spalten aus den angegebenen Tabellen bei der Generierung von SQL Abfragen berücksichtigt werden. Dieses Feld hilft Amazon Q dabei, SQL sich generativ auf die relevanten Spalten zu konzentrieren, und verbessert die Leistung, indem der Umfang des Datenabrufs eingeschränkt wird. Es stellt sicher, dass Amazon Q Generative SQL nur Daten abruft, die für den angegebenen Abfragekontext benötigt werden.

ColumnsToExclude

Gibt die Spalten an, die bei der SQL Generierung nicht berücksichtigt werden. Dies kann verwendet werden, wenn bestimmte Spalten irrelevante oder redundante Daten enthalten, die von Amazon Q generativ nicht berücksichtigt werden solltenSQL. Indem Sie das Ein- und Ausschließen von Spalten verwalten, können Sie die Ergebnisse verfeinern und die Kontrolle über die abgerufenen Daten behalten.

ColumnAnnotations

Ähnlich wie bietet dieses Feld Metadaten oder AnmerkungenTableAnnotations, die für einzelne Spalten spezifisch sind. Diese Anmerkungen können Einblicke in Spaltendefinitionen oder spezielle Handlungsanweisungen bieten. Diese Informationen sind nützlich, um den SQL Generierungsprozess zu steuern und sicherzustellen, dass Spalten in Abfragen angemessen verwendet werden.

CuratedQueries

Eine Reihe von vordefinierten Fragen- und Antwortbeispielen, bei denen die Frage in natürlicher Sprache (NLQ) geschrieben ist und die Antwort die entsprechende SQL Abfrage ist. Diese Beispiele helfen Amazon Q Generative dabeiSQL, zu verstehen, welche Arten von Abfragen es voraussichtlich generieren wird. Sie dienen als Referenzpunkte zur Verbesserung der Genauigkeit und Relevanz generativer Amazon SQL Q-Ausgaben.

CustomDocuments

Zusätzliche Informationen oder Hinweise, die Amazon Q generativ zur Verfügung gestellt werdenSQL, wie Definitionen, domänenspezifisches Wissen oder Erklärungen. Wenn Ihre Geschäftseinheit beispielsweise eine spezielle Methode zur Berechnung eines Werts verwendet, z. B. „In der Fertigungsabteilung entspricht der Gesamtumsatz dem Preis x dem Umsatz“, kann dies hier dokumentiert werden. Diese Dokumente verbessern die generative SQL Fähigkeit von Amazon Q, die Eingaben in natürlicher Sprache zu interpretieren, indem sie zusätzlichen Kontext bereitstellen.

AdditionalTables

Gibt alle zusätzlichen Tabellen an, die für die SQL Generierung in Betracht gezogen werden sollten, aber nicht Teil der im Data Warehouse gespeicherten Daten sind. Dadurch kann Amazon Q Generative SQL externe Datenquellen in seine SQL Generierungslogik integrieren und so seine Kapazität für den Umgang mit komplexen Datenumgebungen erweitern.

AppendToPrompt

Zusätzliche Anweisungen oder Richtlinien, die Amazon Q Generative als Leitfaden für den SQL Generierungsprozess SQL zur Verfügung gestellt wurden. Dies kann spezifische Anweisungen zur Strukturierung der Abfrage, Einstellungen für bestimmte SQL Konstrukte oder andere allgemeine Anweisungen beinhalten, die die Qualität der generativen Amazon SQL Q-Ausgabe verbessern.

Der folgende benutzerdefinierte Beispielkontext zeigt Ihnen das Format der JSON Datei und definiert Folgendes:

  • Definiert einen benutzerdefinierten Kontext für das Amazon Redshift Data Warehouse für Clustermycluster.

  • Definiert bestimmte Tabellen und Spalten, die ein- und ausgeschlossen werden sollen, um den SQL Generierungsprozess zu optimieren.

  • Definiert Anmerkungen für die Tabellen und Spalten, die eingeschlossen werden sollen.

  • Definiert kuratierte Beispielabfragen, die Amazon Q generativ verwenden SQL kann.

  • Definiert benutzerdefinierte Dokumente und Leitplanken, die bei der Generierung verwendet werden sollen. SQL

  • Definiert die vier DDL zusätzlichen Tabellen, die bei der Generierung verwendet werden sollen. SQL

{ "resources": [ { "ResourceId": "mycluster", "ResourceType": "REDSHIFT_WAREHOUSE", "TablesToInclude": [ "database.schema.table1", "database.schema.table2" ], "TablesToExclude": [ "database.schema.table3", "database.schema.table4" ], "ColumnsToInclude": { "database.schema.table1": [ "col1", "col2" ], "database.schema.table2": [ "col1", "col2" ] }, "ColumnsToExclude": { "database.schema.table5": [ "col1", "col2" ], "database.schema.table6": [ "col1", "col2" ] }, "TableAnnotations": { "database.schema.table1": "table1 refers to Q3 sales", "database.schema.table2": "table2 refers to Q4 sales" }, "ColumnAnnotations": { "database.schema.table1": { "col1": "col1 refers to Q3 sale total", "col2": "col2 refers to sale location" }, "database.schema.table2": { "col1": "col2 refers to Q4 sale total", "col2": "col2 refers to sale location" } }, "CuratedQueries": [ { "Question": "what is the sales data for Q3", "Answer": "SELECT * FROM table1" }, { "Question": "what is the sales data for Q4", "Answer": "SELECT * FROM table2" } ], "CustomDocuments": [ "in manufacturing division total sales is price * revenue", "in research division total sales is price * revenue" ], "AdditionalTables": { "database.schema.table8": "create table database.schema.table8(col1 int)", "database.schema.table9": "create table database.schema.table9(col1 int)" }, "AppendToPrompt": "Apply these guardrails: Queries should never return the secretId field of a user." } ] }