Interazione con Amazon Q generative SQL - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Interazione con Amazon Q generative SQL

Nota

Il SQL supporto generativo di Amazon Q è disponibile solo nei seguenti paesi: Regioni AWS

  • Regione Stati Uniti orientali (Virginia settentrionale) (us-east-1)

  • Regione Stati Uniti occidentali (Oregon) (us-west-2)

  • Regione Asia Pacifico (Mumbai) (ap-south-1)

  • Regione Asia Pacifico (Singapore) (ap-southeast-1)

  • Regione Asia Pacifico (Sydney) (ap-southeast-2)

  • Regione Asia Pacifico (Tokyo) (ap-northeast-1)

  • Regione Europa (Francoforte) (eu-central-1)

  • Regione Europa (Parigi) (eu-west-3)

  • Regione Europa (Irlanda) (eu-west-1)

Puoi interagire con la SQL funzionalità generativa di Amazon Q in Amazon Redshift Query Editor v2. È un assistente di codifica che genera SQL istruzioni basate sui prompt e sullo schema del database. disponibile per la creazione di un notebook nell'editor di query v2. Il file SQL generato è per il database a cui è collegato il notebook.

Quando interagisci con Amazon Q generativeSQL, poni domande specifiche, ripeti quando hai richieste complesse e verifica l'accuratezza delle risposte.

Quando fornisci richieste di analisi in linguaggio naturale, sii il più specifico possibile per aiutare l'assistente di codifica a capire esattamente di cosa hai bisogno. Invece di chiedere "trova le sedi principali che hanno venduto il maggior numero di biglietti", fornisci maggiori dettagli, ad esempio "trova i nomi/gli ID delle tre sedi che hanno venduto il maggior numero di biglietti nel 2008". Usa nomi coerenti e specifici degli oggetti nel tuo database quando li conosci. Ad esempio, i nomi di schema, tabella e colonna definiti nel database, anziché fare riferimento allo stesso oggetto in modi diversi, il che può confondere l'assistente.

Suddividi le richieste complesse in più istruzioni semplici che sono più facili da interpretare per l'assistente. Poni domande di follow-up in modo iterativo per ottenere un'analisi più dettagliata dall'assistente. Ad esempio, per prima cosa chiedi in quale stato ci sono più sedi. Quindi, in base alla risposta, chiedi qual è la sede più popolare di questo stato.

Esaminate i dati generati SQL prima di eseguirli per assicurarne la precisione. Se la SQL query generata contiene errori o non corrisponde alle tue intenzioni, fornisci istruzioni all'assistente su come correggerla invece di riformulare l'intera richiesta. Ad esempio, se nella query manca una clausola di predicato relativa all'anno, chiedi di fornire le sedi a partire dal 2008.

Invia il testo degli errori che ricevi dall'esecuzione generata SQL come prompt alla versione generativa Amazon Q. SQL Impara da questi errori per produrre meglio. SQL

Aggiungi il tuo schema al percorso SQL di ricerca per segnalare che lo schema deve essere usato. Ad esempio, aggiungi lo schema tickit quando i dati si trovano nello schema tickit anziché nello schema pubblico.

set search_path to '$user', tickit;

Considerazioni sull'interazione con Amazon Q generative SQL

Considera le seguenti indicazioni quando utilizzi il pannello di chat.

  • L'amministratore dell'editor di query v2 del tuo account deve aver attivato la funzionalità di chat nella pagina delle impostazioni generative. SQL

  • Per utilizzare Amazon Q generativeSQL, è necessaria l'autorizzazione sqlworkbench:GetQSqlRecommendations nella IAM policy, oltre alle altre autorizzazioni specificate nella policy AWS gestita per Query Editor v2. Per ulteriori informazioni sulle politiche AWS gestite, consulta. Accesso all'editor di query v2

  • Le domande devono essere scritte in inglese.

  • Le domande devono fare riferimento al database connesso nel cluster o nel gruppo di lavoro. Per evitare errori di stato vuoto, nel database devono essere presenti almeno una tabella e alcuni dati.

  • Le domande devono riferirsi ai dati archiviati nel database connesso. Non è possibile fare riferimento a uno schema esterno. Per ulteriori informazioni sugli schemi supportati, consulta Create schema nella Guida per gli sviluppatori di database di Amazon Redshift.

  • Qualsiasi domanda che SQL comporti modifiche al database connesso potrebbe generare un avviso.

  • La tecnologia di IA generativa è nuova e nelle risposte possono esserci errori, a volte chiamati allucinazioni. Testa e rivedi tutto il codice per individuare errori e vulnerabilità prima di utilizzarlo nell'ambiente o nel carico di lavoro.

  • Puoi migliorare i consigli condividendo le SQL query eseguite da altri utenti del tuo account. L'amministratore dell'account può eseguire i seguenti SQL comandi per consentire l'accesso alla cronologia delle query dell'account.

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

    Per ulteriori informazioni su SYS:MONITOR, consulta Ruoli definiti dal sistema di Amazon Redshift nella Guida per gli sviluppatori di database di Amazon Redshift.

  • I tuoi dati sono sicuri e privati. I tuoi dati non vengono condivisi tra account. Le query, i dati e gli schemi di database non vengono utilizzati per addestrare un modello di fondazione (FM) di IA generativa. L'input viene utilizzato come prompt contestuale nel modello di fondazione solo per rispondere alle tue query.

Contesto personalizzato

L'amministratore dell'editor di query v2 può specificare un contesto personalizzato per adattare il generato SQL al tuo ambiente. Un contesto personalizzato fornisce conoscenze e preferenze del dominio per fornire un controllo granulare sulla generazione. SQL Un contesto personalizzato è definito in un JSON file che può essere caricato dall'amministratore dell'editor di query v2 su Amazon Q generativeSQL.

Le JSON chiavi utilizzate per personalizzare i dati generati SQL per un data warehouse sono le seguenti.

Tutti i riferimenti alle tabelle devono seguire la notazione in tre parti. database.schema.table

Risorse

Una risorsa specifica l'ambito o la parte di una risorsa di dati a cui viene applicato il contesto personalizzato.

ResourceId

Speciifica un identificatore univoco della risorsa. Per un cluster Amazon Redshift, specifica il. cluster id Per un gruppo di lavoro Redshift Serverless, specificare. workgroup name

ResourceType

Valore valido: REDSHIFT_WAREHOUSE.

TablesToInclude

Specifica un set di tabelle che vengono prese in considerazione per la generazione. SQL Questo campo è fondamentale quando si desidera limitare l'ambito delle SQL interrogazioni a un sottoinsieme definito di tabelle disponibili. Può aiutare a ottimizzare il processo di generazione riducendo i riferimenti alle tabelle non necessari. È possibile associare questo campo TablesToExclude per un controllo più preciso sulla generazione delle query.

TablesToExclude

Speciifica l'insieme di tabelle che sono escluse dalla SQL generazione. Usalo quando determinate tabelle sono irrilevanti o non devono essere considerate nel processo di generazione delle query.

TableAnnotations

Fornisce metadati o informazioni supplementari sulle tabelle in uso. Queste annotazioni possono includere descrizioni di tabelle, note di utilizzo o qualsiasi attributo aggiuntivo che aiuti Amazon Q generative a comprendere SQL meglio il contesto o la struttura della tabella. Ciò è utile per migliorare l'accuratezza della SQL generazione aggiungendo chiarezza alle definizioni delle tabelle.

ColumnsToInclude

Definisce quali colonne delle tabelle specificate vengono incluse nella generazione SQL delle interrogazioni. Questo campo aiuta la generazione di Amazon Q a SQL concentrarsi sulle colonne pertinenti e migliora le prestazioni restringendo l'ambito del recupero dei dati. Garantisce che la versione generativa di Amazon Q estragga SQL solo i dati necessari per il contesto di query specificato.

ColumnsToExclude

Speciifica le colonne che non vengono prese in considerazione durante la generazione. SQL Questo può essere usato quando alcune colonne contengono dati irrilevanti o ridondanti che non devono essere presi in considerazione da Amazon Q generative. SQL Gestendo l'inclusione e l'esclusione delle colonne, puoi perfezionare i risultati e mantenere il controllo sui dati recuperati.

ColumnAnnotations

AnalogamenteTableAnnotations, questo campo fornisce metadati o annotazioni specifici per le singole colonne. Queste annotazioni possono offrire informazioni sulle definizioni delle colonne o su istruzioni di gestione speciali. Queste informazioni sono utili per guidare il processo di SQL generazione e garantire che le colonne vengano utilizzate in modo appropriato nelle query.

CuratedQueries

Una serie di esempi di domande e risposte predefiniti, in cui la domanda è scritta in linguaggio naturale (NLQ) e la risposta è la query corrispondente. SQL Questi esempi aiutano Amazon Q generative a SQL comprendere i tipi di query che dovrebbe generare. Servono come punti di riferimento per migliorare l'accuratezza e la pertinenza degli output generativi SQL di Amazon Q.

CustomDocuments

Informazioni o suggerimenti aggiuntivi forniti alla versione generativa di Amazon QSQL, come definizioni, conoscenze specifiche del dominio o spiegazioni. Ad esempio, se la tua unità aziendale utilizza un metodo unico per calcolare un valore, ad esempio «nella divisione di produzione le vendite totali sono prezzo* ricavi», puoi documentarlo qui. Questi documenti migliorano la SQL capacità generativa di Amazon Q di interpretare gli input in linguaggio naturale fornendo un contesto aggiuntivo.

AdditionalTables

Speciifica eventuali tabelle aggiuntive che devono essere prese in considerazione per la SQL generazione ma che non fanno parte dei dati archiviati nel data warehouse. Ciò consente alla generazione di Amazon Q di SQL integrare fonti di dati esterne nella sua logica di SQL generazione, ampliando la sua capacità di gestire ambienti di dati complessi.

AppendToPrompt

Istruzioni o linee guida aggiuntive fornite ad Amazon Q generative SQL per guidare il processo SQL di generazione. Ciò può includere direttive specifiche su come strutturare la query, preferenze per determinati SQL costrutti o qualsiasi altra istruzione di alto livello che migliori la qualità dell'output generativo di Amazon Q. SQL

Il seguente contesto personalizzato di esempio mostra il formato del JSON file e definisce quanto segue:

  • Definisce un contesto personalizzato per il data warehouse Amazon Redshift per cluster. mycluster

  • Definisce tabelle e colonne specifiche da includere ed escludere per ottimizzare il processo di SQL generazione.

  • Definisce le annotazioni per le tabelle e le colonne richiamate a includere.

  • Definisce esempi di query curate per Amazon Q generative SQL da utilizzare.

  • Definisce documenti e guardrail personalizzati da utilizzare durante la generazione. SQL

  • Definisce DDL le tabelle aggiuntive da utilizzare durante la generazione. 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." } ] }