SELECTSELECT

SELECT

Snowflake Cortex Analyst: Guía, Precios y Monitoreo de Costos

By Jeff SkoldbergOct 9, 20257 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

¿Qué es Cortex Analyst?

Cortex Analyst es el servicio totalmente gestionado de text-to-SQL de Snowflake que les permite a los usuarios de negocio hacer preguntas en lenguaje natural y obtener respuestas en SQL sin escribir una sola consulta. Se puede interactuar con él de dos maneras: a través de Snowflake Intelligence (la interfaz de agente de IA integrada de Snowflake) o mediante la REST API que puedes integrar en aplicaciones propias (piensa en apps de Streamlit, bots de Slack, Microsoft Teams, interfaces web de chat a medida o cualquier otra herramienta de negocio donde tus usuarios ya trabajan). Se apoya en modelos de lenguaje grandes, siendo Claude Sonnet, Mistral Large y Llama los principales, y utiliza modelos semánticos para entender el contexto de tu negocio.

Esta guía te dará un panorama general del uso de Cortex Analyst y luego te mostraremos cómo monitorear y controlar sus costos.

¿Cómo funciona Cortex Analyst?

Cortex Analyst convierte preguntas en lenguaje natural en consultas SQL precisas combinando modelos de lenguaje grandes con modelos semánticos. El modelo semántico tiende un puente entre la terminología de negocio y los esquemas de la base de datos, aportando el contexto que el LLM necesita para generar SQL correcto.

Cómo crear modelos semánticos

Tienes dos opciones para crear modelos semánticos:

  1. Usar el asistente de Snowsight: Ve a AI & ML " Cortex Analyst en Snowsight y utiliza la configuración guiada para crear una vista semántica. El asistente te lleva paso a paso por la selección de tablas, la definición de dimensiones y métricas, y el agregado de preguntas de ejemplo. Es la forma más sencilla de empezar.
  2. Subir un archivo YAML a un stage: Si prefieres definir tu modelo semántico como código, puedes crear un archivo YAML siguiendo la especificación del modelo semántico y subirlo a un stage de Snowflake.

Ambos enfoques funcionan con Cortex Analyst. El asistente crea una vista semántica (un objeto a nivel de esquema), mientras que con YAML el archivo del modelo se guarda en un stage.

Cómo usar Cortex Analyst

Cuando tu modelo semántico esté listo, otorga acceso a los usuarios:

-- Otorga el rol CORTEX_USER a los usuarios que necesitan acceso
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst_role;

Después, desde tu aplicación, llamas a la API de Cortex Analyst con una pregunta en lenguaje natural:

1import requests

2import json

3

4response = requests.post(

5    f"https://{account}.snowflakecomputing.com/api/v2/cortex/analyst/message",

6    headers={

7        "Authorization": f"Bearer {token}",

8        "Content-Type": "application/json"

9    },

10    json={

11        "messages": [{\
\
12            "role": "user",\
\
13            "content": [{\
\
14                "type": "text",\
\
15                "text": "¿Cuáles fueron nuestros 5 productos con mayores ingresos el último trimestre?"\
```\
\
Expandir código\
\
Cortex Analyst admite conversaciones de múltiples turnos, lo que permite a los usuarios hacer preguntas de seguimiento que parten de consultas anteriores.\
\
Si quieres usar Cortex Analyst en Snowflake Intelligence, también tendrás que crear un agente. Eso lo explicamos [aquí](/blog/snowflake-intelligence-overview-pricing-cost-monitoring).\
\

¿Cómo funcionan los precios de Cortex Analyst?\


Cortex Analyst cobra por mensaje, no por token. Solo se facturan las respuestas HTTP 200 exitosas, y el costo es el mismo sin importar cuántos tokens tenga cada mensaje. Según la tabla de consumo de servicios de Snowflake, cada mensaje cuesta un número fijo de créditos. En este momento son 6.7 créditos por cada 100 mensajes.

Los dos principales factores de costo:
\

  1. Cada consulta en lenguaje natural = 1 mensaje: Si preguntas "¿Cuáles son mis ingresos?", eso cuenta como un mensaje facturable.\
  2. A $3 por crédito, 10 preguntas costarían $2. Puede parecer que se acumula rápido, pero hay que ponerlo en la balanza con el valor de negocio que obtienes. El objetivo no siempre es minimizar el gasto en Snowflake; es maximizar el valor de negocio.\
  3. Costos del warehouse por la ejecución de SQL: El costo del mensaje cubre únicamente la generación de SQL por IA. Al ejecutar el SQL generado se suman los costos de cómputo del warehouse.
    \

Cómo monitorear el uso de Cortex Analyst\


Snowflake ofrece una vista principal para hacer seguimiento a los costos de Cortex Analyst:

CORTEX_ANALYST_USAGE_HISTORY: Los datos se agregan en intervalos de una hora, por lo que no incluyen el ID de la consulta.

Esta vista muestra el consumo de créditos de Cortex Analyst, agregado en intervalos de una hora. Incluye la cantidad de mensajes y los créditos consumidos por usuario.
\

1-- Ver el uso diario de Cortex Analyst por usuario en los últimos 30 días\
\
2SELECT\
\
3    DATE_TRUNC('day', START_TIME) AS usage_date,\
\
4    USERNAME,\
\
5    SUM(REQUEST_COUNT) AS total_messages,\
\
6    SUM(CREDITS) AS total_credits\
\
7FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_ANALYST_USAGE_HISTORY\
\
8WHERE START_TIME >= DATEADD('day', -30, CURRENT_TIMESTAMP())\
\
9GROUP BY 1, 2\
\
10ORDER BY total_credits DESC;\
```\
\
La vista incluye START\_TIME, END\_TIME, REQUEST\_COUNT (cantidad de mensajes), CREDITS consumidos y USERNAME. Esto te da visibilidad por usuario sobre quién está generando los costos de Cortex Analyst. La vista METERING\_HISTORY se puede filtrar con `WHERE SERVICE_TYPE = 'AI_SERVICES'`, pero ahí podrías ver más que solo el costo de Cortex Analyst.\
\
### Monitorea los costos del warehouse por ejecución de SQL\
\
Aquí tienes varias opciones. Puedes usar un warehouse, usuario o rol dedicado, o etiquetar las consultas iniciadas por tu app de Cortex Analyst. Aplica el mismo enfoque que usas habitualmente para la atribución de consultas, el que mejor le funcione a tu organización.\
\

Mejores prácticas y recomendaciones al usar Cortex Analyst\

\

Configura alertas, no solo dashboards\


Las consultas de monitoreo anteriores no sirven de nada si nadie las ejecuta. Para cualquier cosa que quieras monitorear en Snowflake, puedes envolver el SQL en una tarea programada con una Notification Integration y crear así un monitor personalizado que envíe alertas a Slack o Teams. Si buscas funcionalidad de monitoreo extremadamente fácil de usar, échale un vistazo a los monitors en SELECT.
\

Controla el acceso con roles\


Por defecto, el rol CORTEX_USER se otorga al rol PUBLIC, lo que significa que todos los usuarios tienen acceso. Si no quieres acceso universal, revócalo de PUBLIC y otórgalo a roles específicos:

-- Restringir Cortex Analyst a equipos específicos

USE ROLE ACCOUNTADMIN;

REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM ROLE PUBLIC;

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE data_analysts;

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE finance_team;

Este simple cambio evita una expansión descontrolada en toda tu organización.
\

Optimiza los modelos semánticos\


Un modelo semántico bien diseñado reduce la cantidad de reintentos y consultas fallidas. Concéntrate en un área temática específica en lugar de exponer bases de datos enteras. Incluye consultas verificadas para preguntas comunes y mejorarás la precisión. Así se reducen las llamadas API desperdiciadas y mejora la experiencia del usuario.

Agrega repositorios de consultas verificadas. Son preguntas de ejemplo con SQL validado que mejoran drásticamente la precisión. Cuando los usuarios hacen preguntas similares, Cortex Analyst puede referenciar estos ejemplos:
\

1verified_queries:\
\
2  - name: "ingresos totales último trimestre"\
\
3    question: "¿Cuáles fueron los ingresos totales en el Q4?"\
\
4    sql: |\
\
5      SELECT SUM(revenue_amount)\
\
6      FROM fact_sales\
\
7      WHERE sale_date >= '2024-10-01'\
\
8        AND sale_date < '2025-01-01'\
\
9    verified_result: 1250000.00\
```\
\
**Usa nombres descriptivos y agrega sinónimos**. Si tu tabla se llama `dim_product_category_master`, defínela con nombres entendibles para el negocio:\
\
```yaml\
1dimensions:\
\
2  - name: product_category\
\
3    synonyms: ["categoría", "tipo de producto", "clase de producto"]\
\
4    description: "Agrupación de productos de alto nivel (Electrónica, Ropa, etc.)"\
```\
\
### Define tu método de atribución de costos del warehouse\
\
Como mencionamos antes, debes decidir cómo vas a atribuir los costos del SQL generado por Cortex Analyst. Algunos clientes optarán por un warehouse dedicado, mientras que otros atribuirán el costo por rol.\
\
### Usa el tamaño de warehouse por defecto más pequeño posible\
\
La mayoría de las consultas de Cortex Analyst son agregaciones relativamente simples. Lo más probable es que no necesites un warehouse XL aquí.\
\
### Capacita a tus usuarios\
\
La mayor palanca de costos es el comportamiento del usuario. Si los usuarios entienden que:\
\
- 10 preguntas cuestan un par de dólares\
- Las preguntas complejas pueden requerir varios intentos\
- Las preguntas más amplias disparan consultas más pesadas en el warehouse\
\
...naturalmente serán más conscientes de su uso. Crea documentación interna con ejemplos de costos y mejores prácticas para formular preguntas.\
\

Conclusión\


Cortex Analyst es una herramienta poderosa para democratizar el acceso a los datos, pero como pasa con todos los servicios de IA, los costos pueden sorprenderte si no los monitoreas.

Usa CORTEX_ANALYST_USAGE_HISTORY para un seguimiento granular, implementa controles de acceso basados en roles y capacita a tus usuarios sobre patrones de uso eficientes en costos. Con estas prácticas en marcha, puedes desplegar Cortex Analyst en toda tu organización con confianza y sin ansiedad por el presupuesto.

Recuerda: el verdadero ROI de Cortex Analyst no se trata solo de reducir la escritura de SQL, sino de que los usuarios de negocio obtengan respuestas más rápido para tomar mejores decisiones. Unos cuantos créditos extra para empoderar a tu equipo suelen valer la pena frente al costo de los insights demorados o de los recursos analíticos mal asignados.

Diviértete conversando con tus datos. Y como siempre, ¡escríbenos para contarnos tus logros con Cortex Analyst!



Jeff es Consultor de Datos y Analítica con más de 15 años de experiencia automatizando insights y usando datos para controlar procesos de negocio. En lo tecnológico, se especializa en Snowflake + dbt + Tableau. En cuanto a temas de negocio, tiene experiencia en Servicios Públicos, Ensayos Clínicos, Publicaciones, CPG y Manufactura. Escríbele cuando quieras a [email protected].\

Snowflake Cortex Analyst: Guía, Precios y Monitoreo