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:
- 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.
- 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.
- Generación controlada de SQL: El modelo de lenguaje redacta una consulta SQL estricta según el dialecto correspondiente (Snowflake SQL o GoogleSQL).
- 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.
- 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):
- 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 - 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' - 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:
- Espacios en EE. UU. (
https://dust.tt):34.46.9.232 - Espacios en la UE (
https://eu.dust.tt):35.195.191.222
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
- En la consola de Dust, diríjase a Spaces > Connections, haga clic en Add Connections y elija Snowflake.
- Seleccione Key Pair Authentication (o Username & Password).
- Complete los campos requeridos:
- Account Identifier: Identificador de la cuenta (por ejemplo,
xy12345.us-east-1oorganizacion-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.
- Account Identifier: Identificador de la cuenta (por ejemplo,
- 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
- En Google Cloud Console, acceda a IAM y administración > Cuentas de servicio.
- Haga clic en Crear cuenta de servicio y nómbrela
dust-warehouse-sa. - 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.
- Acceda a la pestaña Claves de la cuenta de servicio creada.
- Seleccione Agregar clave > Crear clave nueva > JSON.
- Guarde el archivo de credenciales descargado en un entorno seguro.
2. Vinculación de BigQuery en Dust
- En Dust, vaya a Spaces > Connections > Add Connections y elija BigQuery.
- Pegue el contenido completo del archivo JSON de la cuenta de servicio en el formulario.
- 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
EUcon otro enUS). 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. - Elija los conjuntos de datos y tablas que estarán disponibles para los agentes.
- 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:
| Criterio | Snowflake Connection (Conexión gestionada) | Snowflake Tool (Herramienta OAuth) |
|---|---|---|
| Caso de uso principal | Tablas analíticas predefinidas y gobernadas para usuarios de negocio | Exploración dinámica de esquemas y consulta ad-hoc de vistas |
| Flujo de autenticación | Cuenta de servicio centralizada (Par de claves o contraseña) | OAuth individual (credenciales del usuario) o corporativo |
| Objetos admitidos | Solo tablas físicas (Las vistas quedan excluidas) | Tablas físicas, vistas estándar y vistas materializadas |
| Límite de registros devueltos | Hasta 25.000 filas por consulta | Hasta 1.000 filas por ejecución |
| Descubrimiento de esquemas | Preseleccionado por administradores en Spaces | El agente invoca dinámicamente list_schemas, describe_table |
| Sentencias múltiples | Bloqueadas | Bloqueadas |
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
- Abra el editor de agentes en Agent Builder > Instructions & Tools.
- En la sección Action & Data sources, pulse Add a tool y seleccione Query Tables.
- 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
- 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.
- 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.
- Controlar los costes de computación:
- En Snowflake, utilice almacenes de tamaño
XSMALLcon unAUTO_SUSPENDde 300 segundos o inferior. - En BigQuery, establezca cuotas máximas de bytes escaneados en la cuenta de servicio para prevenir consultas excesivamente costosas.
- En Snowflake, utilice almacenes de tamaño
- Combinar análisis cuantitativo con documentación cualitativa: Un agente en Dust puede combinar la herramienta
Query TablesconSearch 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.