Amazon Redshift wird UDFs ab dem 1. November 2025 die Erstellung von neuem Python nicht mehr unterstützen. Wenn Sie Python verwenden möchten UDFs, erstellen Sie das UDFs vor diesem Datum liegende. Bestehendes Python UDFs wird weiterhin wie gewohnt funktionieren. Weitere Informationen finden Sie im Blog-Posting
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.
Interagieren mit generativem SQL von Amazon Q
Anmerkung
Generative SQL-Unterstützung von Amazon Q ist nur in den folgenden Fällen verfügbarAWS-Regionen:
Region USA Ost (Nord-Virginia) (us-east-1)
Region USA Ost (Ohio) (us-east-2)
Region USA West (Oregon) (us-west-2)
Region Asien-Pazifik (Mumbai) (ap-south-1)
Region Asien-Pazifik (Seoul) (ap-northeast-2)
Region Asien-Pazifik (Singapur) (ap-southeast-1)
Region Asien-Pazifik (Sydney) (ap-southeast-2)
Region Asien-Pazifik (Tokio) (ap-northeast-1)
Region Kanada (Zentral) (ca-central-1)
Region Europa (Frankfurt) (eu-central-1)
Region Europa (Irland) (eu-west-1)
Region Europa (London) (eu-west-2)
Region Europa (Paris) (eu-west-3)
Region Südamerika (São Paulo) (sa-east-1)
Informationen darüber, wo Ihre Daten verarbeitet werden, finden Sie unter Cross region inference in Amazon Q Developer im Benutzerhandbuch von Amazon Q Developer.
Sie können in Amazon Redshift Query Editor v2 mit der Funktion für generatives SQL von Amazon Q interagieren. Es handelt sich hier um einen Programmierassistenten, der SQL-Anweisungen basierend auf Ihren Aufforderungen und Ihrem Datenbankschema generiert. Dieser Programmierassistent ist verfügbar, während Sie ein Notebook in Query Editor v2 erstellen. Das generierte SQL gilt für die Datenbank, mit der Ihr Notebook verbunden ist.
Stellen Sie bei der Interaktion mit generativem SQL von Amazon Q spezifische Fragen, iterieren Sie bei komplexen Anforderungen und überprüfen Sie die Richtigkeit der Antworten.
Seien Sie bei Analyseanforderungen in natürlicher Sprache so spezifisch wie möglich, damit der Programmierassistent genau versteht, was Sie benötigen. Anstatt nach „Finden Sie die besten Veranstaltungsorte zu suchen, an denen die meisten Tickets verkauft wurden“, geben Sie mehr Informationen an, z. B. „Finden Sie names/ids die drei Veranstaltungsorte, die 2008 die meisten Tickets verkauft haben“. Verwenden Sie einheitliche und spezifische Namen von Objekten in Ihrer Datenbank, wenn Sie diese kennen. Verwenden Sie beispielsweise die in Ihrer Datenbank definierten Schema-, Tabellen- und Spaltennamen, anstatt auf unterschiedliche Weise auf dasselbe Objekt zu verweisen, da dies 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 das generierte SQL vor der Ausführung, 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 Anforderung 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 von generiertem SQL erhalten, als Prompts zurück an das generative SQL von Amazon Q. Dieses lernt aus den Fehlern, um besseres SQL zu erstellen.
Fügen Sie Ihr Schema zum SQL-Suchpfad hinzu, um zu signalisieren, dass das Schema verwendet werden sollte. 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 generativem SQL von Amazon Q
Beachten Sie bei der Arbeit im Chat-Bereich Folgendes:
Der Administrator von Query Editor v2 für Ihr Konto muss die Chat-Funktion auf der Seite Einstellungen für generatives SQL aktiviert haben.
Um Amazon Q Generative SQL verwenden zu können, benötigen Sie zusätzlich zu anderen Berechtigungen, die
sqlworkbench:GetQSqlRecommendationsin der AWS verwalteten Richtlinie für den Abfrage-Editor v2 angegeben sind, eine Genehmigung in Ihrer IAM-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.
Bei allen Fragen, die bewirken, dass SQL die verbundene Datenbank ändert, kann es zu einer Warnung kommen.
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 von anderen Benutzern in Ihrem Konto ausgeführten SQL-Abfragen 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:MONITORfinden 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 von Query Editor v2 kann benutzerdefinierten Kontext angeben, um das generierte SQL an Ihre Umgebung anzupassen. Benutzerdefinierter Kontext stellt Fachwissen und Einstellungen bereit, um eine detaillierte Kontrolle über die SQL-Generierung zu ermöglichen. Benutzerdefinierter Kontext ist in einer JSON-Datei definiert, die vom Administrator von Query Editor v2 in generatives SQL von Amazon Q hochgeladen werden kann.
Die JSON-Schlüssel, die zur Personalisierung von generiertem SQL für ein Data Warehouse verwendet werden, lauten wie folgt.
Alle Tabellenverweise müssen der dreiteiligen Notation database.schema.table folgen.
- Ressourcen
Eine Ressource gibt den Bereich oder Teil eines Datenbestands an, auf den der benutzerdefinierte Kontext angewendet wird.
- ResourceId
Gibt eine eindeutige Kennung der Ressource an. Geben Sie für einen Amazon-Redshift-Cluster die
cluster idan. Geben Sie für eine Redshift-Serverless-Arbeitsgruppe denworkgroup namean.- ResourceType
Zulässiger Wert:
REDSHIFT_WAREHOUSE.- TablesToInclude
Gibt eine Gruppe von Tabellen an, die für die SQL-Generierung berücksichtigt werden. Dieses Feld ist wichtig, wenn Sie den Umfang von SQL-Abfragen auf eine definierte Teilmenge verfügbarer Tabellen beschränken möchten. Es kann zur Optimierung des Generierungsprozesses beitragen, indem unnötige Tabellenverweise reduziert werden. Sie können dieses Feld mit
TablesToExcludekombinieren, 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 dem generativen SQL von Amazon Q helfen, den Kontext oder die Struktur der Tabelle 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 einbezogen werden. Dieses Feld hilft dem generativen SQL von Amazon Q, sich auf die relevanten Spalten zu konzentrieren, und verbessert die Leistung, indem der Umfang des Datenabrufs eingeschränkt wird. Es stellt sicher, dass das generative SQL von Amazon Q nur Daten abruft, die für den betreffenden 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 vom generativen SQL von Amazon Q nicht berücksichtigt werden sollten. Durch die Verwaltung der Einbeziehung und des Ausschlusses von Spalten können Sie die Ergebnisse verfeinern und die Kontrolle über die abgerufenen Daten behalten.
- ColumnAnnotations
Ähnlich wie
TableAnnotationsenthält dieses Feld spezifische Metadaten oder Anmerkungen für einzelne Spalten. Diese Anmerkungen können Einblicke in Spaltendefinitionen oder spezielle Behandlungsanweisungen bieten. Diese Informationen sind nützlich, um den SQL-Generierungsprozess zu steuern und sicherzustellen, dass die Spalten in Abfragen angemessen verwendet werden.- CuratedQueries
Eine Reihe vordefinierter Beispiele für Fragen und Antworten, wobei die Frage in natürlicher Sprache (NLQ) geschrieben ist und die entsprechende SQL-Abfrage die Antwort darstellt. Diese Beispiele helfen dem generativen SQL von Amazon Q, zu verstehen, welche Arten von Abfragen es generieren soll. Sie dienen als Referenzpunkte, um die Genauigkeit und Relevanz generativer SQL-Ausgaben von Amazon Q zu verbessern.
- CustomDocuments
Zusätzliche Informationen oder Hinweise, die dem generativen SQL von Amazon Q zur Verfügung gestellt werden, wie Definitionen, Domain-spezifisches Wissen oder Erklärungen. Wenn Ihre Geschäftseinheit beispielsweise eine spezielle Methode zur Berechnung eines Werts verwendet, z. B. „In der Fertigungsabteilung ist der Gesamtumsatz Preis x Umsatz“, kann dies hier dokumentiert werden. Diese Dokumente verbessern die Fähigkeit des generativen SQL 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 berücksichtigt werden sollten, aber nicht Teil der im Data Warehouse gespeicherten Daten sind. Dies ermöglicht es dem generativen SQL von Amazon Q, externe Datenquellen in seine SQL-Generierungslogik zu integrieren und so seine Kapazität für den Umgang mit komplexen Datenumgebungen zu erweitern.
- AppendToPrompt
Zusätzliche Anweisungen oder Richtlinien, die dem generativen SQL von Amazon Q zur Verfügung gestellt wurden, um den Prozess der SQL-Generierung zu steuern. 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 SQL-Ausgabe von Amazon Q verbessern.
Der folgende benutzerdefinierte Beispielkontext zeigt das Format der JSON-Datei und definiert Folgendes:
Einen benutzerdefinierten Kontext für das Amazon Redshift Data Warehouse für den Cluster
mycluster.Bestimmte Tabellen und Spalten, die einbezogen und ausgeschlossen werden sollen, um den SQL-Generierungsprozess zu optimieren.
Anmerkungen für die Tabellen und Spalten, die einbezogen werden sollen.
Kuratierte Beispielabfragen für die Verwendung durch das generative SQL von Amazon Q.
Benutzerdefinierte Dokumente und Integritätsschutzmaßnahmen, die bei der SQL-Generierung verwendet werden sollen.
DDL für zusätzliche Tabellen, die beim Generieren von SQL verwendet werden sollen.
{ "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." } ] }