Interacción con el SQL generativo del editor de consultas v2 (versión preliminar) - Amazon Redshift

Interacción con el SQL generativo del editor de consultas v2 (versión preliminar)

Esta es la documentación de la versión preliminar del SQL generativo del editor de consultas v2. Tanto la documentación como la característica quedan sujetas a cambios. Se recomienda utilizar esta característica solo en entornos de prueba y no en entornos de producción. Para obtener una vista previa de los términos y las condiciones, consulte Participación de la versión beta del servicio en Términos del servicio de AWS.
nota

En la actualidad, el soporte del SQL generativo solo está disponible en las siguientes Regiones de AWS:

  • Región Este de EE. UU. (Norte de Virginia) (us-east-1)

  • Región Oeste de EE. UU. (Oregón) (us-west-2)

  • Región Europa (Fráncfort) (eu-central-1)

Puede interactuar con la funcionalidad del SQL generativo de Amazon Q en el editor de consultas v2 de Amazon Redshift. Se trata de un asistente de codificación que genera instrucciones SQL en función de sus indicaciones y del esquema de la base de datos. Este asistente de codificación está disponible mientras se crea un cuaderno en el editor de consultas v2.

Cuando interactúe con el SQL generativo, realice preguntas específicas, repita cuando tenga solicitudes complejas y verifique la precisión de las respuestas.

Cuando envíe solicitudes de análisis en lenguaje natural, sea lo más específico posible para ayudar al asistente de codificación a entender exactamente lo que necesita. En lugar de preguntar “busca los principales eventos que han vendido más entradas”, proporciona más detalles, por ejemplo “busca nombres o ID de los tres eventos que hayan vendido más entradas en 2008”. Utilice nombres coherentes de objetos de la base de datos, como los nombres de esquemas, tablas y columnas, tal como se han definido en la base de datos, en lugar de hacer referencia al mismo objeto de manera diferente, cosa que puede confundir al asistente.

Divida las solicitudes complejas en varias instrucciones simples que sean más fáciles de interpretar para el asistente. Haga preguntas de seguimiento de forma iterativa para obtener un análisis más detallado del asistente. Por ejemplo, primero pregunte “¿qué estado tiene más eventos?”. Luego, según la respuesta, pregunte “¿cuál es el evento más popular de este estado?”.

Revise la consulta SQL generada antes de ejecutarla para garantizar que sea precisa. Si la consulta SQL generada contiene errores o no coincide con su intención, proporcione instrucciones al asistente sobre cómo corregirla en lugar de reformular toda la solicitud. Por ejemplo, si a la consulta le falta una cláusula predicativa sobre el año, pregunte “Indícame eventos del año 2008”.

Consideraciones a la hora de interactuar con el SQL generativo

Tenga en cuenta lo siguiente cuando trabaje en el panel de chat.

  • El administrador del editor de consultas v2 de su cuenta debe haber activado la función de chat en la página Configuración del SQL generativo.

  • Para utilizar el SQL generativo del editor de consultas v2, necesita un permiso sqlworkbench:GetQSqlRecommendations en su política de IAM, además de los demás permisos especificados en la política administrada de AWS del editor de consultas v2. Para obtener más información sobre las políticas administradas por AWS, consulte Acceso al editor de consultas v2.

  • Las preguntas deben escribirse en inglés.

  • Las preguntas deben hacer referencia a la base de datos conectada de su clúster o grupo de trabajo. Para evitar errores de estado vacío, debe haber al menos una tabla y algunos datos en la base de datos.

  • Las preguntas deben hacer referencia a los datos almacenados en la base de datos conectada. No puede hacer referencia a un esquema externo. Para obtener más información sobre los esquemas admitidos, consulte Crear esquema en la Guía para desarrolladores de bases de datos de Amazon Redshift.

  • Cualquier pregunta que dé como resultado SQL que cambie la base de datos conectada puede generar una advertencia.

  • La tecnología de IA generativa es nueva y puede haber errores (a veces denominados alucinaciones) en las respuestas. Pruebe y revise todo el código para detectar errores y vulnerabilidades antes de usarlo en su entorno o carga de trabajo.

  • Para mejorar las recomendaciones, comparta las consultas SQL ejecutadas por otros usuarios de su cuenta. El administrador de su cuenta puede ejecutar los siguientes comandos SQL para permitir el acceso al historial de consultas de la cuenta.

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

    Para obtener información sobre SYS:MONITOR, consulte Roles definidos por el sistema de Amazon Redshift en la Guía para desarrolladores de bases de datos de Amazon Redshift.

  • Sus datos están seguros y son privados. Sus datos no se comparten entre cuentas. Sus consultas, datos y esquemas de bases de datos no se utilizan para entrenar un modelo fundacional (FM) de IA generativa. Los datos introducidos se utilizan como indicaciones contextuales para que el FM responda únicamente a sus consultas.

Uso del SQL generativo

Después de configurar los permisos correctos, al trabajar con un cuaderno en el editor de consultas v2, puede elegir un icono para iniciar una conversación.

Para interactuar con el chat del SQL generativo del editor de consultas v2 para generar SQL
  1. En la pestaña Editor del editor de consultas v2, abra un cuaderno.

  2. Elija el icono del SQL generativo Generative SQL panel y, a continuación, siga las instrucciones para hacer sus preguntas sobre el SQL generativo del editor de consultas v2 de Amazon Redshift en el panel de chat.

    Las preguntas se escriben en un campo y el editor de consultas v2 responde con una sugerencia de SQL. Si surjen errores, aparecerán en el panel de chat.

  3. Seleccione Añadir al cuaderno para añadir al cuaderno una celda de marcado con su pregunta y una celda SQL con el SQL sugerido.

  4. (Opcional) Seleccione Regenerar SQL para generar otra respuesta para la misma pregunta. Puede elegir Regenerar SQL una vez para la pregunta actual.

  5. (Opcional) En el panel de chat del SQL generativo, seleccione el icono More de más y, a continuación, elija Actualizar base de datos para actualizar los metadatos que describen la base de datos conectada. Estos metadatos incluyen las definiciones de los esquemas, tablas y columnas de la base de datos.

Actualización de la configuración del SQL generativo en calidad de administrador

Un usuario con los permisos de IAM adecuados puede ver y cambiar los parámetros de Configuración del SQL generativo para otros usuarios de la misma Cuenta de AWS. Este administrador debe tener el permiso sqlworkbench:UpdateAccountQSqlSettings en su política de IAM, además de otros permisos especificados en la política administrada por AWS para el editor de consultas v2. Para obtener más información sobre las políticas administradas, consulte Permisos necesarios para usar del editor de consultas v2 .

Para que un administrador active el chat del SQL generativo para todos los usuarios de la cuenta
  1. Elija el icono Settings de Configuración para ver un menú de las diferentes pantallas de configuración.

  2. A continuación, seleccione el icono de configuración del SQL generativo Generative SQL settings para mostrar la página Configuración del SQL generativo.

  3. Seleccione SQL generativo para activar la funcionalidad de SQL generativo para los usuarios de la cuenta.

Ejemplo de uso de la capacidad del SQL generativo de Amazon Q con los datos de TICKIT

Para crear preguntas eficaces para generar SQL, debe conocer el esquema de su base de datos y sus datos. Los datos TICKIT constan de siete tablas: dos de hechos y cinco de dimensiones. Los datos de ejemplo contienen registros sobre las ventas a los asistentes a eventos de entretenimiento que tuvieron lugar en 2008. Para obtener más información sobre el esquema de datos TICKIT, consulte Bases de datos de muestra en la Guía para desarrolladores de bases de datos de Amazon Redshift. Puede cargar los datos TICKIT en una base de datos mediante varios métodos tanto en la consola de Amazon Redshift como en el editor de consultas v2. El editor de consultas v2 proporciona un método para cargar los datos TICKIT en la base de datos sample_data_dev. Para obtener más información, consulte Carga de datos de ejemplo. El editor de consultas v2 también proporciona preguntas de ejemplo para los datos TICKIT. El siguiente escenario describe una conversación con SQL generativo para generar SQL sobre los datos TICKIT de ejemplo. En este escenario, los datos TICKIT de ejemplo ya están creados en una base de datos dev de un clúster de Amazon Redshift.

nota

Este ejemplo sirve para ilustrar una conversación. Es posible que las respuestas del SQL generativo no coincidan con los resultados si se utilizan las mismas preguntas.

Ejemplo de conversación con el generativo SQL del editor de consultas v2
  1. En el Editor, conéctese a un clúster o grupo de trabajo que contenga los datos TICKIT de ejemplo.

  2. Cree un cuaderno vacío y elija el icono de SQL generativo Generative SQL para abrir el panel de chat.

  3. Introduzca la siguiente pregunta para generar SQL y comprobar el número de registros de la tabla VENUE:

    How many venues are there?
    SELECT
      COUNT(*) AS num_venues
    FROM
      tickit.venue

    Seleccione Añadir al cuaderno para añadir dos celdas al cuaderno abierto. Una celda de marcado ¿Cuántos eventos hay? y otra que contenga el SQL generado.

    En la celda SQL, elija Ejecutar para recibir el resultado:

    count ------ 202
  4. Para solicitar otra versión del SQL, elija Regenerar SQL y recibirá la siguiente respuesta:

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

    Seleccione Añadir al cuaderno para añadir más celdas al cuaderno abierto. Una celda de marcado ¿Cuántos eventos hay? y otra que contenga el SQL generado.

    En la celda SQL, elija Ejecutar para recibir el resultado en forma de lista de número de evento por estado:

    venuestate num_venues ---------------------- MA 4 OH 8 MI 5 ...
  5. El asistente del SQL generativo puede hacer suposiciones sobre lo que está preguntando. Aunque no haya widgets en la base de datos, puede seguir preguntando. En este caso, muestra un mensaje que indica que no ha podido generar el SQL.

    How many widgets are there?
    I was not able to generate any SQL
  6. A medida que obtenga más información sobre la base de datos, podrá hacer preguntas más específicas para generar el SQL. Por ejemplo, sabe que la base de datos contiene datos de ventas de varios meses de 2008. Introduzca la siguiente pregunta para generar SQL y saber el número de ventas en noviembre 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

    Seleccione Añadir al cuaderno para añadir dos celdas al cuaderno abierto. Una celda de marcado ¿Cuántas ventas hubo en noviembre de 2008? y otra que contenga el SQL generado.

    En la celda SQL, elija Ejecutar para recibir el resultado:

    num_sales ----- 0

    Se da cuenta de que este no es el resultado que esperaba.

  7. Observa que el predicado date.month='November' espera que el mes de la tabla DATE se represente con una abreviatura del nombre del mes. Cambia el predicado por d.month='NOV' y vuelve a ejecutar el SQL.

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

    En la celda SQL, elija Ejecutar para obtener nuevos resultados.

    count ----- 14261
  8. Si hace una pregunta que intenta cambiar la base de datos conectada, aparecerá un mensaje de advertencia junto con cualquier SQL recomendado. Introduzca la siguiente pregunta para generar SQL e insertar datos en una tabla:

    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.

    Si selecciona Añadir al cuaderno para añadir dos celdas al cuaderno abierto y ejecutar el SQL, el SQL fallará.

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

Este escenario solo ilustra algunas formas básicas de interactuar con el SQL generativo del editor de consultas v2. Puede experimentar aún más con esta tecnología de IA generativa que le ayudará a empezar a crear SQL para realizar consultas a su base de datos.