Interação com o SQL generativo do editor de consultas v2 (visualização) - Amazon Redshift

Interação com o SQL generativo do editor de consultas v2 (visualização)

Esta é uma documentação de pré-lançamento SQL generativo do editor de consultas v2, que está em lançamento de visualização. A documentação e o atributo estão sujeitos a alterações. Recomendamos o uso desse recurso somente em ambientes de teste, e não em ambientes de produção. Para previsualizar termos e condições, consulte Participação no serviço beta nos Termos de Serviço da AWS.
nota

Atualmente, o suporte ao SQL generativo só está disponível nas seguintes Regiões da AWS:

  • Região Leste dos EUA (Norte da Virgínia) (us-east-1)

  • Região Oeste dos EUA (Oregon) (us-west-2)

  • Região da Europa (Frankfurt) (eu-central-1)

É possível interagir com o recurso SQL generativo do Amazon Q no editor de consultas do Amazon Redshift v2. Trata-se de um assistente de codificação que gera instruções SQL com base nos prompts e no esquema do banco de dados. Esse assistente de codificação está disponível enquanto você cria um notebook no editor de consultas v2.

Ao interagir com o SQL generativo, faça perguntas específicas, itere quando tiver solicitações complexas e verifique se as respostas estão corretas.

Ao fornecer solicitações de análise em linguagem natural, tente usar o máximo de especificidade para ajudar o assistente de codificação a compreender exatamente aquilo de que você precisa. Em vez de perguntar "encontre os espaços que mais venderam ingressos", dê mais detalhes como "encontre nomes/IDs dos três espaços que mais venderam ingressos em 2008". Use nomes consistentes de objetos no banco de dados, como nomes de esquema, tabela e coluna, conforme definido no banco de dados, em vez de se referir ao mesmo objeto de maneiras diferentes, o que pode confundir o assistente.

Divida solicitações complexas em várias declarações simples que sejam mais fáceis do assistente interpretar. Faça perguntas de acompanhamento de maneira iterativa para obter uma análise mais detalhada do assistente. Por exemplo, pergunte primeiro "qual estado tem mais espaços?" Em seguida, com base na resposta, pergunte "qual é o espaço mais conhecido desse estado?".

Revise o SQL gerado antes de executá-lo para garantir a precisão. Se a consulta SQL gerada tiver erros ou não corresponder à intenção, dê instruções ao assistente sobre como corrigi-la, em vez de reformular a solicitação inteira. Por exemplo, se a consulta não tiver uma cláusula de predicado no ano, peça "Dê locais do ano de 2008".

Considerações ao interagir com SQL generativo

Considere o seguinte ao trabalhar no painel de chat:

  • O administrador do editor de consultas v2 da conta deve ter ativado o recurso de chat na página Configurações do SQL generativo.

  • Para usar o SQL generativo do editor de consultas v2, você precisa da permissão sqlworkbench:GetQSqlRecommendations na política do IAM, além de outras permissões especificadas na política gerenciada pela AWS do editor de consultas v2. Para obter mais informações sobre políticas gerenciadas pela AWS, consulte Acessar o editor de consultas v2.

  • As perguntas devem ser escritas em inglês.

  • As perguntas devem fazer referência ao banco de dados conectado no cluster ou no grupo de trabalho. Para evitar erros de estado vazio, deve haver pelo menos uma tabela e alguns dados no banco de dados.

  • As perguntas devem fazer referência aos dados armazenados no banco de dados conectado. Eles não podem fazer referência a um esquema externo. Para obter mais informações sobre os esquemas compatíveis, consulte Create schema no Guia do desenvolvedor de banco de dados do Amazon Redshift.

  • Qualquer dúvida que resulte em um SQL que altere o banco de dados conectado pode resultar em um aviso.

  • A tecnologia de IA generativa é nova e pode haver erros, às vezes chamados de alucinações, nas respostas. Teste e analise todo o código em busca de erros e vulnerabilidades antes de usá-lo no ambiente ou no workload.

  • Você pode melhorar as recomendações compartilhando as consultas SQL executadas por outros usuários na conta. O administrador da conta pode executar os seguintes comandos SQL para permitir o acesso ao histórico de consultas da conta.

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

    Para obter mais informações sobre SYS:MONITOR, consulte Amazon Redshift system-defined roles no Guia do desenvolvedor de banco de dados do Amazon Redshift.

  • Os dados são seguros e privados. Os dados não são compartilhados entre contas. As consultas, os dados e os esquemas de banco de dados não são usados para treinar um modelo de base (FM) de IA generativa. A entrada é usada como solicitações contextuais para o FM responder apenas às consultas.

Uso do SQL generativo

Depois que as permissões corretas forem configuradas, ao trabalhar com um notebook no editor de consultas v2, você poderá escolher um ícone para iniciar uma conversa.

Para interagir com o chat SQL generativo do editor de consultas v2 para gerar SQL
  1. Na guia Editor do editor de consultas v2, abra um noteook.

  2. Escolha o ícone de SQL generativo Generative SQL panel e siga as instruções para fazer as perguntas ao SQL generativo do editor de consultas do Amazon Redshift v2 no painel de chat.

    Você faz perguntas em um campo de prompt, e o editor de consultas v2 responde com o SQL sugerido. Todos os erros encontrados são retornados para você no painel de chat.

  3. Escolha Adicionar ao notebook para adicionar uma célula Markdown com o prompt e uma célula SQL com o SQL sugerido ao notebook.

  4. (Opcional) Escolha Regenerar SQL para gerar outra resposta para o mesmo prompt. É possível optar por Regenerar SQL uma vez para o prompt atual.

  5. (Opcional) No painel de chat do SQL generativo, escolha o ícone More Mais e Atualizar banco de dados para atualizar os metadados que descrevem o banco de dados conectado. Esses metadados incluem as definições de esquemas, tabelas e colunas no banco de dados.

Atualização de configurações do SQL generativo como administrador

Um usuário com as permissões do IAM corretas pode exibir e alterar Configurações do SQL generativo de outros usuários na mesma Conta da AWS. Esse administrador deve ter permissão sqlworkbench:UpdateAccountQSqlSettings na política do IAM, além de outras permissões especificadas na política gerenciada pelo AWS para o editor de consultas v2. Para obter mais informações sobre políticas gerenciadas, consulte Permissões necessárias para usar o editor de consultas v2 .

Para um administrador ativar o chat SQL generativo para todos os usuários da conta
  1. Um ícone Settings Configurações para mostrar um menu das telas de configurações diferentes.

  2. Em seguida, escolha o ícone Generative SQL settings de configurações do SQL generativo para mostrar a página Configurações do SQL generativo.

  3. Selecione SQL generativo a fim de ativar o recurso de SQL generativo para usuários na conta.

Exemplo de uso do recurso SQL generativo do Amazon Q com os dados TICKIT

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 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 ter mais informações, consulte Carregar dados de exemplo. 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 editor de consultas v2
  1. No Editor, conecte-se a um cluster ou a um grupo de trabalho que contenha os dados de exemplo do TICKIT.

  2. Crie um notebook vazio e escolha o ícone Generative SQL de SQL generativo para abrir o painel de chat.

  3. 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
  4. 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 ...
  5. 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
  6. À 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.

  7. 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
  8. 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 só ilustrou algumas maneiras básicas de interagir com o SQL generativo do editor de consultas v2. É 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.