BI impulsado por IA con Snowflake y Amazon Quick

Un panel muestra 42.000 recuentos de vistas de películas activas, mientras que otro muestra 38.500. Su agente de chat hace referencia completamente a un tercer número. Los equipos de datos pasan horas conciliando números en lugar de responder preguntas estratégicas, y la confianza en el análisis se erosiona.

Este es un patrón que vemos en muchas organizaciones. Los equipos dedican más esfuerzo a conciliar números que a utilizarlos, lo que ralentiza silenciosamente la toma de decisiones y erosiona la confianza en los datos.

La causa raíz suele ser una brecha en el último tramo: la lógica empresarial reside dentro de cada aplicación individual en lugar de en la capa de datos donde cada aplicación puede compartirla.

Los conjuntos de datos de Amazon Quick Sight además de las vistas semánticas de Snowflake cierran esa brecha. Una vista semántica es un objeto de esquema Snowflake que adjunta definiciones comerciales (tabla, relaciones, métricas y dimensiones) directamente a sus datos. Cualquier aplicación posterior que consulte la vista semántica hereda las mismas definiciones, por lo que tanto los sistemas de IA como los de BI interpretan la información de manera uniforme. Esto conduce a respuestas confiables y reduce significativamente el riesgo de sufrir alucinaciones por IA.

Puede utilizar vistas semánticas en Cortex Analyst y consultar estas vistas en una declaración SELECT. También puedes compartir vistas semánticas en listados privados. Como objetos de esquema nativos de Snowflake, las vistas semánticas tienen controles de acceso a nivel de objeto. Puede otorgar o restringir el uso y los derechos de consulta al igual que con las tablas y vistas, lo que admite el uso autorizado y gobernado en terminales SQL, BI e AI. Puede leer más sobre cómo escribir SQL semántico en la documentación de Snowflake.

En esta publicación, aprenderá cómo crear una integración de un extremo a otro entre las vistas semánticas de Snowflake y Amazon Quick. Los datos de muestra son datos de reseñas de usuarios para una empresa de medios. Comienza cargando datos de reseñas de películas desde Amazon Simple Storage Service (Amazon S3) en Snowflake, define una vista semántica en SQL para agregar significado comercial, la explora con consultas en lenguaje natural a través de Cortex Analyst y luego genera un conjunto de datos y un panel de Amazon Quick. El conjunto de datos se puede crear manualmente o con un script de automatización proporcionado. Al final, su equipo de BI o de IA puede hacer preguntas en lenguaje natural sobre una capa de datos gobernada y confiar en que cada respuesta refleja la misma lógica empresarial.

Arquitectura de la solución

Figura 1: Arquitectura de un extremo a otro: los datos fluyen desde Amazon S3 a Snowflake, donde una vista semántica gobierna las definiciones comerciales, lo que permite consultas en lenguaje natural de Cortex Analyst y paneles de control de Amazon Quick Sight.

Esta integración utiliza las capacidades nativas de Snowflake para ingerir datos estructurados de reseñas de películas directamente desde Amazon S3 en un esquema de base de datos. Luego, define una vista semántica de Snowflake con relaciones de tablas, dimensiones y métricas para mejorar los análisis basados ​​en IA, todo con SQL. El modelo semántico pasa de capas individuales de IA o BI a la plataforma de datos central, por lo que todas las herramientas utilizan los mismos conceptos semánticos.

Tutorial de la solución

Este tutorial utiliza un conjunto de datos de reseñas de películas para demostrar la integración. El conjunto de datos consta de tres tablas (PELÍCULAS, USUARIOS y CLASIFICACIONES) que se cargan desde Amazon S3 en Snowflake. Además de esas tablas, usted define una vista semántica que asigna columnas sin formato a métricas y dimensiones amigables para el negocio.

Vista semántica de Snowflake colocada sobre tablas sin procesar, lo que proporciona una capa de definición compartida de métricas, dimensiones y relaciones para herramientas de IA y BI.

Figura 2: Una vista semántica de Snowflake agrega contexto empresarial (métricas, dimensiones y relaciones) a tablas sin formato, creando una capa de definición compartida para herramientas de IA y BI.

Esta integración permite al equipo de BI utilizar lenguaje natural para crear gráficos y paneles interactivos, crear campos calculados, desarrollar historias de datos y realizar escenarios hipotéticos, y reduce significativamente el riesgo de alucinaciones de IA. El equipo de BI también puede incorporar este panel obtenido de Snowflake en Amazon Quick Movies Quick Space para permitir la generación aumentada de recuperación (RAG).

Requisitos previos

Antes de comenzar, asegúrese de tener lo siguiente en su lugar:

Cuenta Snowflake Enterprise en AWS. Si no tiene una, regístrese para obtener una cuenta de prueba de Snowflake y seleccione Enterprise en AWS. Acceso al rol ACCOUNTADMIN en Snowflake. Este rol es necesario para crear vistas semánticas y otorgar privilegios a nivel de objeto. Cuenta de AWS. Si no tiene una, cree una cuenta de AWS. Alineación de la región de AWS. Regístrese para ambas cuentas en AWS EE.UU. Oeste (Oregón) o EE.UU. Este (Norte de Virginia). Amazon Quick Sight está disponible en el este de EE. UU. (Norte de Virginia), el oeste de EE. UU. (Oregón), Asia Pacífico (Sídney) y Europa (Irlanda). Consulte la documentación de Amazon Quick para conocer la disponibilidad regional más reciente. Familiaridad básica con SQL y Python. Ejecuta declaraciones SQL en Snowsight (la interfaz web de Snowflake) y ejecuta un script basado en Python en AWS CloudShell. Familiaridad con conceptos de análisis de datos como tablas, dimensiones y métricas.

Compromiso de tiempo: tómese entre 60 y 90 minutos para completar este tutorial de principio a fin.

Costo estimado: este tutorial utiliza recursos mínimos. Espere menos de $10 en costos combinados de AWS y Snowflake.

Paso 1: configure su entorno Snowflake y cargue los datos

Utilice Snowsight, la interfaz web de Snowflake, para importar y ejecutar un cuaderno proporcionado. El portátil crea el almacén informático, la base de datos y el esquema necesarios y luego carga los datos de revisión de la película, por lo que no es necesario ejecutar el SQL de configuración manualmente.

Importar el cuaderno

Para comenzar, importe el cuaderno de tutoriales prediseñado a su entorno Snowflake para que pueda seguirlo de forma interactiva.

Descargue el cuaderno SF_Quick_Quickstart.ipynb de la carpeta de activos en el repositorio de GitHub. En Snowsight, elija el signo más (+), Cuaderno, Importar y luego seleccione el archivo del cuaderno descargado. Acepte la configuración predeterminada y seleccione Ejecutar en Warehouse. El valor predeterminado del cuaderno es SYSTEM$STREAMLIT_NOTEBOOK_WH (un recurso informático proporcionado por el sistema), pero puede elegir un almacén diferente en el menú desplegable. El cuaderno crea un nuevo almacén llamado WORKSHOPWH para este tutorial.

Menú Snowsight + que muestra la opción de importación de Notebook

Figura 3: Imagen que muestra cómo importar la computadora portátil en Snowsight usando el menú más (+).

Cuadro de diálogo de creación de Snowsight Notebook con la opción Ejecutar en almacén seleccionada

Figura 4: Imagen que muestra la opción seleccionada Ejecutar en almacén y la sección de creación del almacén de computación en el cuaderno.

Después de la creación del cuaderno, puede elegir un almacén diferente en la configuración del cuaderno. Para obtener más información, consulte la configuración del cuaderno.

Panel de configuración del portátil Snowsight que muestra la selección de almacén

Ejecute el cuaderno para cargar datos.

Los Snowflake Notebooks vienen preinstalados con bibliotecas comunes de Python: numpy, pandas, matplotlib y más. Para agregar otros paquetes, elija el menú desplegable Paquetes en la parte superior derecha del cuaderno.

Ejecute todas las celdas en secuencia. El portátil aprovisiona el almacén WORKSHOPWH y carga los datos de reseñas de películas en la base de datos MOVIES. Una vez que se completa cada celda, verá un resultado de confirmación debajo de la celda.

Verifique la configuración: después de ejecutar todas las celdas, confirme que ve tres tablas: PELÍCULAS, USUARIOS y CLASIFICACIONES en el esquema PELÍCULAS.PUBLIC.

Solución de problemas: si una celda no se ejecuta, verifique que esté utilizando la función ACCOUNTADMIN. Puedes configurar esto en la parte superior de tu cuaderno u hoja de trabajo con:

Cuaderno Snowsight con celdas completas cargando datos en la base de datos PELÍCULAS

Figura 5: Ejecute todas las celdas del cuaderno para cargar datos en la base de datos de PELÍCULAS.

Paso 2: definir la vista semántica y exportar la vista semántica DDL

Después de que todas las celdas se ejecuten correctamente, ubique la celda Get_SV_DDL. Esta celda ejecuta el siguiente SQL para recuperar el DDL de la vista semántica:

SELECCIONE TO_VARCHAR(GET_DDL( 'SEMANTIC_VIEW', 'MOVIES.PUBLIC.MOVIE_ANALYTICS_SV' ));

Importante Después de ejecutar la celda Get_SV_DDL, elija Descargar como CSV y guarde el archivo como SF_DDL.csv. Necesita este archivo en el Paso 4 para generar su conjunto de datos de Amazon Quick Sight automáticamente. Si omite este paso, el generador del conjunto de datos no podrá analizar su esquema.

Celda de Snowsight que muestra la opción Descargar como CSV para la salida SF_DDL.csv

Figura 7: Elija Descargar como CSV para guardar SF_DDL.csv, necesario para el generador de conjuntos de datos Quick Sight.

Paso 3: Explore sus datos con Cortex Analyst

Una vez creada la vista semántica, puede comenzar inmediatamente a consultar sus datos en inglés sencillo, sin necesidad de SQL. Este paso verifica que la capa semántica funcione correctamente antes de conectar Amazon Quick Sight.

Ver la vista semántica en Snowsight

En Snowsight, seleccione AI y ML en el panel de navegación. Seleccione SEMANTIC_QUICK_START_ROLE que creó anteriormente para confirmar que tiene los permisos correctos. Navegue a la base de datos de Películas, luego al Esquema público y seleccione la vista semántica MOVIES_ANALYST_SV para inspeccionar su estructura.

Sección Snowsight AI y ML que muestra la estructura de vista semántica MOVIES_ANALYST_SV

Figura 8: La vista semántica MOVIES_ANALYST_SV visible en la sección Snowsight AI & ML.

Agregar consultas verificadas

Las consultas verificadas son preguntas de ejemplo con respuestas correctas confirmadas. Le dan a Cortex Analyst una referencia al responder preguntas formuladas de manera similar, mejorando la precisión y reduciendo la latencia de las consultas. Agregue al menos una consulta verificada antes de probar preguntas en lenguaje natural.

Ejemplo: verifique "¿Cuál es la calificación promedio de todas las películas en 2023?" confirmando que Cortex Analyst genera el SQL correcto. Cuando más tarde un usuario hace una pregunta redactada de manera similar, Cortex Analyst la compara primero con sus consultas verificadas.

Panel de consultas verificadas de Snowsight para Cortex Analyst que muestra preguntas de ejemplo y SQL aprobado

Figura 9: Agregue consultas verificadas en Snowsight para mejorar la precisión de Cortex Analyst.

Pruebe consultas en lenguaje natural

Pruebe las siguientes preguntas de muestra para confirmar que la vista semántica responde correctamente:

Muéstrame los valores de calificación total por título de película. Enumere las 10 películas más populares de todos los tiempos.

Panel de Cortex Analyst que traduce una pregunta en lenguaje natural a la consulta SQL resultante

Figura 10: Cortex Analyst traduce preguntas en lenguaje natural a SQL utilizando las definiciones de su vista semántica.

Para utilizar SQL para consultar una vista semántica directamente, consulte los ejemplos de consulta de vista semántica en la documentación de Snowflake.

Paso 4: cree un conjunto de datos de Amazon Quick Sight

Ahora que sus datos están definidos semánticamente en Snowflake, conéctelos a Amazon Quick Sight para obtener paneles interactivos. El script Quick Sight Dataset Generator proporcionado automatiza todo el proceso desde Snowflake DDL hasta un conjunto de datos Quick Sight listo para consultar.

Opción 1: ejecutar el paquete Python localmente

Descargue la solución completa desde el repositorio de GitHub. Siga las instrucciones en README.md para conectarse a Snowflake, obtener la definición de la vista semántica, convertir la definición en un esquema de conjunto de datos rápido y crear el conjunto de datos rápido. Los scripts de Python son interactivos con autoguía.

Estructura de directorios de paquetes locales de Python para la solución completa Quick Sight Dataset Generator

Opción 2: ejecutar los scripts bash en AWS CloudShell

Como alternativa a ejecutar scripts de Python localmente, puede ejecutar los scripts de Python y bash proporcionados directamente en AWS CloudShell para almacenar credenciales de forma segura y crear de forma interactiva un conjunto de datos Quick Sight completamente configurado con ingesta de SPICE, todo desde la línea de comandos.

Cargue el paquete de solución

Descargue Solution_Package.zip del repositorio de GitHub. Luego abra la Consola de administración de AWS e inicie AWS CloudShell. Cargue Solution_Package.zip usando la opción Acciones → Cargar archivo en CloudShell.

Menú de acciones de AWS CloudShell con la opción Cargar archivo resaltada

Figura 11: Cargue Solution_Package.zip en AWS CloudShell desde el menú Acciones.

Ejecute el flujo de trabajo del generador de conjuntos de datos

Siga estos pasos en secuencia.

Descomprime e ingresa al directorio:

descomprimir Solution_Package.zip cd Solution_Package

Cargue el archivo SF_DDL.csv que descargó del cuaderno Snowflake (el resultado de GET_DDL en la vista semántica). Cree un secreto de AWS. Guarde sus credenciales de Snowflake (identificador de cuenta, nombre de usuario y contraseña) como un secreto de AWS Secrets Manager. El script hace referencia a este secreto al crear la fuente de datos Quick Sight. Ejecute el flujo de trabajo interactivo. Después de crear el secreto, ejecute el script interactivo único:

El script de flujo de trabajo interactivo lo guía a través de la selección o creación de una fuente de datos Snowflake, la configuración de un conjunto de datos nuevo o existente, el análisis de su SF_DDL.csv para generar un esquema Quick Sight, la creación o actualización del conjunto de datos con la ingesta de SPICE y el monitoreo del progreso de la ingesta hasta su finalización. Opcionalmente, puede verificar el estado de ingesta en la consola Quick Sight y compartir el conjunto de datos con otros usuarios de Quick Sight.

Paso 5: cree su panel en Amazon Quick Sight

Una vez completada la ingesta, abra la consola de Amazon Quick Sight y navegue hasta Conjuntos de datos. Seleccione movie-analytics-dataset para confirmar que los datos se cargaron correctamente y luego elija Crear análisis para comenzar a compilar.

Explora con preguntas en lenguaje natural

Haga las mismas preguntas en lenguaje natural que probó en Cortex Analyst. Quick Sight genera imágenes correspondientes automáticamente. Pruebe estas preguntas de muestra para comenzar:

“Muéstrame las películas mejor calificadas”: genera un gráfico de barras que clasifica las películas según su calificación promedio. "¿Cuáles son las 10 películas más reseñadas?" – muestra una lista clasificada por recuento de reseñas. "¿Cómo se distribuyen las calificaciones entre géneros?" – produce un desglose por género. "Muéstrame la tendencia de las calificaciones a lo largo del tiempo": crea un gráfico de líneas de la actividad de calificación. "¿Qué usuarios han enviado más reseñas?" – destaca los críticos más activos.

Experimente con preguntas de seguimiento para profundizar más. Por ejemplo, después de ver las películas mejor calificadas, intente "Filtrar solo por género de comedia" o "Muéstrame las calificaciones de los últimos 6 meses".

Crear campos calculados usando la capa semántica

Debido a que la vista semántica ya define sus métricas y dimensiones principales, puede ampliar su análisis en Quick Sight con campos calculados que se basan en esas definiciones gobernadas. Por ejemplo:

En su análisis, elija Agregar y luego elija Agregar campo calculado. Cree un campo como rating_category usando una fórmula como: ifelse({user_rating} >= 4, 'High', {user_rating} >= 2.5, 'Medium', 'Low') Utilice este nuevo campo para segmentar sus elementos visuales, por ejemplo, un gráfico circular que muestre la proporción de calificaciones Alta, Media y Baja.

Este enfoque mantiene sus métricas fundamentales consistentes (heredadas de la vista semántica) al tiempo que brinda a los analistas la flexibilidad de agregar campos derivados para casos de uso específicos.

Verifique que los números coincidan entre Cortex Analyst y Quick Sight

Para generar confianza en que la capa semántica funciona según lo previsto, compare los resultados de ambas herramientas:

En Cortex Analyst, pregunte: "¿Cuál es la calificación promedio de las 5 películas más reseñadas?" En Quick Sight, haga la misma pregunta o cree una tabla visual con los mismos filtros. Confirme que los valores coincidan: ambas herramientas deberían devolver resultados idénticos porque consultan la misma vista semántica.

Si nota discrepancias, verifique lo siguiente:

Verifique que no se apliquen filtros adicionales ni reglas de seguridad a nivel de fila en una herramienta pero no en la otra. Confirme que ambas herramientas utilizan la misma lógica de agregación (por ejemplo, promedio comparado con mediana).

Este paso de validación cruzada refuerza la propuesta de valor central: una única capa semántica proporciona respuestas consistentes independientemente de qué herramienta haga la pregunta.

Gráfico de barras de Amazon Quick Sight de películas clasificadas por calificación promedio de una consulta en lenguaje natural

Figura 12: Gráfico de barras de Amazon Quick Sight generado a partir de una consulta en lenguaje natural en el conjunto de datos de vista semántica de Snowflake.

Visualización de Amazon Quick Sight de las películas más populares del conjunto de datos

Figura 13: Visualización adicional de Amazon Quick Sight que muestra las películas más populares, impulsadas por la misma capa de datos gobernada.

Limpieza

Después de la demostración, complete los siguientes pasos de limpieza:

Limpieza de copo de nieve: elimine la base de datos de PELÍCULAS con el comando DROP DATABASE. Esta es la acción "masiva" más rápida disponible. Luego, abandona el almacén.

BORRAR LA BASE DE DATOS SI EXISTE; — Mejores prácticas: suspender primero para dejar que finalicen las consultas, luego soltar ALTER WAREHOUSE IF EXISTS SUSPEND; ALMACÉN DE GOTA SI EXISTE;

Limpieza de AWS: Eliminar secretos: en AWS Secrets Manager, administre el acceso y elimine los secretos seleccionados. Eliminar fuentes de datos: navegue hasta Conjuntos de datos en Quick Sight y elimine cualquier conjunto de datos o fuente de datos. Eliminar análisis y paneles: elimine manualmente paneles, análisis y conjuntos de datos en la Consola de administración de AWS.

Conclusión

En esta publicación, mostramos cómo crear una integración de un extremo a otro entre las vistas semánticas de Snowflake y Amazon Quick. Cargó datos de reseñas de películas en Snowflake, definió una vista semántica para establecer definiciones comerciales consistentes, verificó las definiciones con consultas en lenguaje natural de Cortex Analyst y conectó los datos a Amazon Quick Sight para paneles interactivos.

Próximos pasos

Ahora que tiene una base funcional, considere estas formas de ampliarla:

Ampliar la visión semántica. Agregue más métricas, dimensiones o consultas verificadas para cubrir preguntas comerciales adicionales. Las definiciones más completas mejoran la precisión de Cortex Analyst para preguntas redactadas de manera similar. Aplique este patrón a sus propios datos. Reemplace el conjunto de datos de reseñas de películas con los datos de su organización en Amazon S3. El mismo flujo de trabajo de cuaderno y generador se aplica a cualquier conjunto de datos tabulares. Comparta vistas semánticas entre equipos. Las vistas semánticas de Snowflake son objetos de esquema nativos con controles de acceso a nivel de objeto. Puede otorgar o restringir el uso tal como lo haría con tablas y vistas, admitiendo el uso autorizado y gobernado en puntos finales de SQL, BI e IA. Explore las funciones avanzadas de Amazon Quick Sight. Cree campos calculados, cree historias de datos y ejecute análisis hipotéticos para profundizar en los conocimientos que permite su capa semántica. Comparta vistas semánticas en listados privados. Distribuya conjuntos de datos gobernados a otras cuentas de Snowflake publicando vistas semánticas a través de listados privados de Snowflake Data Sharing. Obtenga más información sobre los estándares semánticos abiertos. Snowflake une a los líderes de la industria para desbloquear el potencial de la IA con la iniciativa Open Semantic Interchange (OSI), una colaboración dedicada a la creación de un estándar independiente del proveedor para datos semánticos.

Prueba esta integración con tus propios datos y comparte tu experiencia en los comentarios. Si tiene preguntas o comentarios, las comunidades de AWS y Snowflake están aquí para ayudarlo.

Sobre los autores

Ying Wang

Ying Wang

Ying es un arquitecto senior de soluciones especializado a nivel mundial en la organización de IA generativa de AWS. Aporta 17 años de experiencia en análisis y ciencia de datos, con una sólida formación como arquitecta de datos y gerente de ingeniería de desarrollo de software.

maria ley

maria ley

Mary es líder tecnológica socia de APJ en Snowflake, AI Data Cloud. Su experiencia incluye liderar el Laboratorio de Aceleración de Análisis APJ en AWS y roles de especialista en datos e inteligencia artificial en Microsoft. Este viaje a través de diferentes ecosistemas de nube le brinda a Mary información única para resolver desafíos de datos complejos. Le apasiona ayudar a los socios a desarrollar soluciones que brinden valor comercial real.