ESPACIO PUBLICITARIO DISPONIBLE · HABLEMOS

Cómo conectar Snowflake y Google BigQuery a Dust para consultas SQL en lenguaje natural

365Finds Editorial
11.430 artículos Wiki recopilados

Usa 365 Wiki con tu IA

Copia el prompt de abajo, pégalo en la IA que ya usas y haz tu pregunta.

Descargar el Skill completo

Pruébalo primero con el prompt. Si usas 365 Wiki a menudo, instala el Skill completo de 365Wiki y no tendrás que volver a pegarlo. Si no tienes una IA habitual, también sirven las versiones web de Gemini o Microsoft Copilot.

Los equipos de análisis de datos y operaciones técnicas se enfrentan a un cuello de botella constante: las áreas de negocio solicitan métricas ad-hoc e informes diarios, mientras que las herramientas tradicionales de autoservicio de BI resultan demasiado complejas para los usuarios no técnicos. Sin embargo, las bases de conocimiento basadas en generación aumentada por recuperación (RAG) convencional no pueden resolver este dilema: la búsqueda semántica se fundamenta en la similitud vectorial entre fragmentos de texto, lo que hace imposible sumar ingresos, calcular tasas de conversión o agrupar millones de registros en tiempo real.

Dust supera esta limitación mediante integraciones estructuradas y su funcionalidad Table queries (consultas de tablas). En lugar de replicar o almacenar los datos transaccionales, Dust se conecta directamente a Snowflake y Google BigQuery, indexa los metadatos de los esquemas (Table Schema) y permite que los agentes de IA formulen y ejecuten consultas SQL controladas de solo lectura, transformando los resultados tabulares en respuestas en lenguaje natural y gráficos interactivos.

En esta guía se detalla la arquitectura técnica, las directrices de seguridad, la gestión de credenciales y los flujos de configuración necesarios para conectar Snowflake y BigQuery a Dust y habilitar agentes analíticos empresariales.


Arquitectura: Cómo consulta Dust los almacenes de datos sin almacenar datos sin procesar

Al conectar un almacén de datos central con una plataforma de IA externa, la seguridad y la gobernanza de datos son la máxima prioridad. Dust responde a este desafío mediante una arquitectura basada exclusivamente en metadatos:

  1. Cero sincronización de datos sin procesar: Dust no sincroniza, replica ni persiste registros transaccionales de Snowflake o BigQuery en sus servidores o bases de vectores. Solo indexa metadatos estructurales: nombres de bases de datos, conjuntos de datos (datasets), esquemas, nombres de tablas, columnas, tipos de datos y descripciones nativas de los campos.
  2. Inyección de contexto de esquema: Cuando un usuario plantea una pregunta analítica (por ejemplo, “¿Cuál fue el ticket promedio por región el último trimestre?”), el agente consulta los esquemas mapeados para identificar las entidades y métricas involucradas.
  3. Generación controlada de SQL: El modelo de lenguaje redacta una consulta SQL estricta según el dialecto correspondiente (Snowflake SQL o GoogleSQL).
  4. Ejecución directa de solo lectura: La consulta se envía al almacén a través de conexiones cifradas utilizando credenciales con permisos restringidos exclusivamente a operaciones de lectura.
  5. Síntesis y auditoría transparente: Dust procesa el conjunto de datos devuelto, genera un resumen en lenguaje natural o visualizaciones dinámicas y ofrece el botón Tools inspection (inspección de herramientas) para auditar el código SQL exacto, la latencia de ejecución y la respuesta bruta.

Opción 1: Conectar Snowflake a Dust

Dust admite dos modalidades de integración para Snowflake: la Snowflake Connection (Conexión gestionada) desde Spaces > Connections y la Snowflake Tool (Herramienta de agente basada en OAuth). Para desplegar agentes corporativos con tablas gobernadas, la conexión gestionada es la opción preferida por la mayoría de las organizaciones.

1. Configuración de seguridad e infraestructura en Snowflake

Aplicando el principio de mínimo privilegio, cree en Snowflake un almacén de cómputo, un usuario de servicio y un rol dedicados a Dust:

-- Paso 1: Crear el rol de acceso
CREATE ROLE dust_role;

-- Paso 2: Crear un almacén de cómputo con suspensión automática
CREATE WAREHOUSE dust_warehouse
WITH WAREHOUSE_SIZE = 'XSMALL'
AUTO_SUSPEND = 300
AUTO_RESUME = TRUE;

GRANT USAGE ON WAREHOUSE dust_warehouse TO ROLE dust_role;

Método de autenticación: Claves RSA frente a contraseña

Dado que Snowflake está retirando progresivamente la autenticación basada exclusivamente en contraseñas para cuentas de servicio, se recomienda enfáticamente la autenticación por par de claves (Key Pair Authentication).

Configuración con par de claves RSA (Recomendado):

  1. Genere una clave privada RSA de 2048 bits y su clave pública correspondiente:
    openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out dust_rsa_key.p8 -nocrypt
    openssl rsa -in dust_rsa_key.p8 -pubout -out dust_rsa_key.pub
    
  2. Obtenga la cadena de la clave pública sin cabeceras, pies ni saltos de línea:
    cat dust_rsa_key.pub | grep -v "BEGIN PUBLIC KEY" | grep -v "END PUBLIC KEY" | tr -d '\n'
    
  3. Cree el usuario en Snowflake vinculando la clave pública:
    CREATE USER dust_user
      DEFAULT_ROLE = dust_role
      RSA_PUBLIC_KEY = '<PEGAR_AQUI_CADENA_DE_CLAVE_PUBLICA>';
    
    GRANT ROLE dust_role TO USER dust_user;
    

Alternativa (Autenticación por contraseña):

CREATE USER dust_user
  PASSWORD = 'YourStrongPasswordHere'
  DEFAULT_ROLE = dust_role;

GRANT ROLE dust_role TO USER dust_user;

2. Políticas de red y concesión de permisos de solo lectura

Si su cuenta de Snowflake restringe el tráfico mediante políticas de red, incluya en la lista blanca las direcciones IP estáticas de salida de Dust:

Posteriormente, otorgue permisos de lectura sobre la estructura y las tablas. El conector de Dust rechaza cualquier rol que disponga de privilegios de mutación o escritura (INSERT, UPDATE, DELETE, MERGE):

-- Conceder USAGE en la base de datos y en el esquema contenedor
GRANT USAGE ON DATABASE analytics_dw TO ROLE dust_role;
GRANT USAGE ON SCHEMA analytics_dw.marts TO ROLE dust_role;

-- Conceder SELECT en tablas físicas
GRANT SELECT ON ALL TABLES IN SCHEMA analytics_dw.marts TO ROLE dust_role;
GRANT SELECT ON FUTURE TABLES IN SCHEMA analytics_dw.marts TO ROLE dust_role;

Aviso importante: La conexión gestionada de Snowflake únicamente expone tablas físicas a la herramienta Table Queries; las vistas estándar y las vistas materializadas son omitidas. Si su diseño analítico requiere consultar vistas, utilice la Snowflake Tool basada en OAuth.

3. Registro de la conexión en Dust

  1. En la consola de Dust, diríjase a Spaces > Connections, haga clic en Add Connections y elija Snowflake.
  2. Seleccione Key Pair Authentication (o Username & Password).
  3. Complete los campos requeridos:
    • Account Identifier: Identificador de la cuenta (por ejemplo, xy12345.us-east-1 o organizacion-cuenta).
    • Role: dust_role.
    • Warehouse: dust_warehouse.
    • Username: dust_user.
    • Private Key: Pegue el contenido completo del archivo PEM de la clave privada, incluyendo encabezado y pie.
  4. En el árbol de metadatos, marque las bases de datos, esquemas y tablas que desea habilitar para los agentes.

Opción 2: Conectar Google BigQuery a Dust

Google BigQuery se integra con Dust mediante claves de cuenta de servicio de Google Cloud Platform (GCP) IAM, admitiendo aislamiento por ubicación regional y lectura automática de descripciones de campos.

1. Configuración de la cuenta de servicio en GCP

  1. En Google Cloud Console, acceda a IAM y administración > Cuentas de servicio.
  2. Haga clic en Crear cuenta de servicio y nómbrela dust-warehouse-sa.
  3. Asigne los dos roles de IAM mínimos requeridos:
    • roles/bigquery.user: Permite a Dust ejecutar trabajos de consulta (Query Jobs), listar conjuntos de datos y consumir cómputo.
    • roles/bigquery.dataViewer: Permite consultar los esquemas y leer los datos de las tablas.
  4. Acceda a la pestaña Claves de la cuenta de servicio creada.
  5. Seleccione Agregar clave > Crear clave nueva > JSON.
  6. Guarde el archivo de credenciales descargado en un entorno seguro.

2. Vinculación de BigQuery en Dust

  1. En Dust, vaya a Spaces > Connections > Add Connections y elija BigQuery.
  2. Pegue el contenido completo del archivo JSON de la cuenta de servicio en el formulario.
  3. Seleccionar ubicación de BigQuery (Location): BigQuery prohíbe de forma estricta las consultas que combinan regiones diferentes (por ejemplo, unir tablas de un dataset en EU con otro en US). Debe seleccionar la región exacta (por ejemplo, US, EU, us-central1), y todos los conjuntos de datos vinculados deben pertenecer a esa misma ubicación.
  4. Elija los conjuntos de datos y tablas que estarán disponibles para los agentes.
  5. Activar la opción “Use BigQuery descriptions”: Al habilitar esta casilla, Dust incorpora automáticamente las descripciones y comentarios de tablas y columnas configurados en BigQuery al contexto de los agentes, evitando duplicar documentación en las instrucciones.

Comparativa: Snowflake Connection frente a Snowflake Tool

Al diseñar la arquitectura en Snowflake, evalúe las diferencias entre ambas alternativas:

CriterioSnowflake Connection (Conexión gestionada)Snowflake Tool (Herramienta OAuth)
Caso de uso principalTablas analíticas predefinidas y gobernadas para usuarios de negocioExploración dinámica de esquemas y consulta ad-hoc de vistas
Flujo de autenticaciónCuenta de servicio centralizada (Par de claves o contraseña)OAuth individual (credenciales del usuario) o corporativo
Objetos admitidosSolo tablas físicas (Las vistas quedan excluidas)Tablas físicas, vistas estándar y vistas materializadas
Límite de registros devueltosHasta 25.000 filas por consultaHasta 1.000 filas por ejecución
Descubrimiento de esquemasPreseleccionado por administradores en SpacesEl agente invoca dinámicamente list_schemas, describe_table
Sentencias múltiplesBloqueadasBloqueadas

Configuración y diseño de instrucciones para agentes de consulta SQL

Tras vincular las tablas de Snowflake o BigQuery, los analistas pueden crear agentes personalizados (por ejemplo, @asistente-de-ventas o @analista-financiero).

1. Adición de la herramienta Query Tables

  1. Abra el editor de agentes en Agent Builder > Instructions & Tools.
  2. En la sección Action & Data sources, pulse Add a tool y seleccione Query Tables.
  3. Seleccione las tablas del almacén que utilizará el agente (por ejemplo, marts.fct_daily_orders).

2. Definición de reglas de unión (JOIN) y lógica analítica

Aunque los modelos reconocen los tipos de datos a partir del esquema, es imprescindible redactar directrices de negocio para evitar ambigüedades:

Eres un agente analítico especializado en responder preguntas de métricas operativas. Tienes acceso a las siguientes tablas:
- fct_orders: Registro histórico de transacciones, importes y estado del pedido.
- dim_customers: Nivel del cliente, fecha de alta y datos demográficos corporativos.

Normas para la generación de consultas SQL y respuestas:
1. Para unir ambas tablas, utiliza siempre dim_customers.customer_id = fct_orders.customer_id.
2. Al calcular ingresos netos, filtra obligatoriamente por order_status = 'COMPLETED', salvo que el usuario pida explícitamente el pipeline bruto.
3. Evita SELECT *; selecciona únicamente las columnas necesarias para responder a la consulta.
4. Para agrupaciones temporales, convierte las marcas de tiempo UTC a meses o trimestres estándar.
5. Acompaña los datos numéricos con un resumen conciso en lenguaje natural que destaque la conclusión principal.

3. Transparencia y auditoría con Tools Inspection

Durante la conversación, Dust se encarga de inyectar el esquema, generar la sentencia SQL, ejecutarla en el almacén y formatear el resultado. Cualquier miembro del equipo puede pulsar en Tools inspection para verificar el código SQL exacto generado, el tiempo de respuesta y los datos sin procesar devueltos por el motor.


Recomendaciones para equipos de datos y operaciones

  1. Exponer datamarts modelados en lugar de tablas sin procesar: Conecte Dust a tablas en capas Gold o marts (generadas por ejemplo mediante dbt) en lugar de capas de ingesta sin depurar. Los esquemas limpios incrementan drásticamente la precisión del SQL generado.
  2. Documentar columnas en el propio almacén de datos: Aproveche las cláusulas COMMENT en Snowflake y BigQuery. Mantener metadatos actualizados en el almacén permite que el agente comprenda acrónimos de negocio (como CAC, LTV o MRR) sin sobrecargar el prompt.
  3. Controlar los costes de computación:
    • En Snowflake, utilice almacenes de tamaño XSMALL con un AUTO_SUSPEND de 300 segundos o inferior.
    • En BigQuery, establezca cuotas máximas de bytes escaneados en la cuenta de servicio para prevenir consultas excesivamente costosas.
  4. Combinar análisis cuantitativo con documentación cualitativa: Un agente en Dust puede combinar la herramienta Query Tables con Search Data Source (búsqueda semántica sobre documentos). De este modo, puede extraer cifras reales de BigQuery y cruzarlas con notas estratégicas en Notion o Google Drive para explicar el trasfondo de las variaciones comerciales.

Referencias