

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Tutorial: como usar o recurso SQL generativo do Amazon Q com os dados TICKIT
<a name="query-editor-v2-generative-ai-example"></a>

Para criar solicitações eficientes a fim de gerar SQL, você deve aprender mais sobre o esquema do banco de dados e os dados. Os dados TICKIT consistem em sete tabelas: duas de fatos e cinco de dimensões. Os dados de exemplo contêm registros sobre vendas a participantes de eventos do entretenimento ocorridos em 2008. Para obter informações sobre o esquema de dados TICKIT, consulte [Sample database](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) no *Guia de desenvolvedor de banco de dados do Amazon Redshift*. É possível carregar os dados do TICKIT em um banco de dados por vários métodos no console do Amazon Redshift e no editor de consultas v2. O editor de consultas v2 oferece um método para carregar dados TICKIT no banco de dados `sample_data_dev`. Para mais informações, consulte [Carregar dados em um banco de dados](query-editor-v2-loading.md). O editor de consultas v2 também oferece solicitações de exemplo para os dados do TICKIT. O cenário a seguir descreve uma conversa com SQL generativo para gerar SQL sobre os dados de exemplo do TICKIT. Nesse cenário, os dados de exemplo do TICKIT já foram criados em um banco de dados `dev` em um cluster do Amazon Redshift. 

**nota**  
Este exemplo serve para ilustrar uma conversa. As respostas do SQL generativo talvez não correspondam aos resultados usando as mesmas solicitações.

**Conversa de exemplo com o SQL generativo do Amazon Q**

1. No **Editor**, conecte-se a um cluster ou a um grupo de trabalho que contenha os dados de exemplo do TICKIT.

1. Crie um notebook vazio e escolha o ícone ![\[Generative SQL\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/images/qev2-amazon-q.png) de SQL generativo para abrir o painel de chat.

1. Insira a seguinte solicitação a fim de gerar SQL para verificar o número de registros na tabela `VENUE`:

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

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

   Escolha **Adicionar ao notebook** para adicionar duas células ao notebook aberto. Uma célula Markdown "Existem quantos espaços?" e uma contendo o SQL gerado.

   Na célula SQL, escolha **Executar** para receber o resultado:

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

1. Para solicitar outra versão do SQL, escolha **Regenerar SQL** e receba a seguinte resposta:

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

   Escolha **Adicionar ao notebook** para adicionar mais duas células ao notebook aberto. Uma célula Markdown "Existem quantos espaços?" e uma contendo o SQL gerado.

   Na célula SQL, escolha **Executar** para receber o resultado listando os estados do espaço por número:

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

1. O assistente de SQL generativo pode fazer suposições sobre o que você está perguntando. Embora não haja widgets no banco de dados, você ainda pode perguntar. Nesse caso, ele exibe uma mensagem de que não foi possível gerar SQL.

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

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

1. À medida que aprende mais sobre o banco de dados, você pode fazer perguntas mais específicas para gerar SQL. Por exemplo, você sabe que o banco de dados contém dados de vendas referentes a diversos meses em 2008. Insira a seguinte solicitação a fim de gerar SQL para encontrar o número de vendas em novembro de 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
   ```

   Escolha **Adicionar ao notebook** para adicionar duas células ao notebook aberto. Uma célula Markdown "Quantas vendas houve em novembro de 2008?" e uma contendo o SQL gerado.

   Na célula SQL, escolha **Executar** para receber o resultado:

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

   Você percebe que não se trata do resultado que estava esperando.

1. Você percebe que o predicado `date.month='November'` espera que o mês na tabela DATE seja representado por uma abreviação do nome do mês. Você altera o predicado para `d.month='NOV'` e reexecuta o SQL.

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

   Na célula SQL, escolha **Executar** para obter novos resultados.

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

1. Se você fizer uma pergunta que tente alterar o banco de dados conectado, uma mensagem de aviso será retornada com qualquer SQL recomendado. Insira a seguinte solicitação a fim de gerar SQL para inserir dados em uma tabela:

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

   Se você escolher **Adicionar ao notebook** para adicionar duas células ao notebook aberto e executar o SQL, haverá falha no SQL.

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

Esse cenário mostrou apenas algumas maneiras básicas de interagir com o SQL generativo do Amazon Q. É possível experimentar ainda mais usando essa tecnologia de IA generativa a fim de ajudar você a começar a criar SQL para consultar o banco de dados.