Caso de estudio · Data Engineering
Cortex · Semantic Data Layer

Toda la data.
Ninguna respuesta.

Cómo Campelsoft conectó —en 6 días— un Data Lake de AWS con 976 tablas a los usuarios y tableros que llevaban 7 meses esperando: una capa semántica consultable por API, para humanos y para IA.
SectorLogística (LATAM)
ServicioCortex · Semantic Layer + Tablero CMI
DocumentoAnonimizado · sin datos del cliente
Nota de anonimización
Caso de estudio divulgativo. Se removieron o sustituyeron nombre del cliente, dominios, nombres reales de bases y tablas, y datos de negocio. Los ejemplos técnicos son ilustrativos (modelos genéricos como flota.unidades, métricas como mantenimiento.costo_total).

01Por qué se construyó esta solución

El problema que lo originó.

Un grupo de logística había hecho la inversión correcta: centralizar su data en un Data Lake sobre AWS20 bases y 976 tablas en S3 (Parquet), catalogadas en Glue y consultables vía Athena. La data estaba completa y al día. Pero solo podía leerla quien supiera SQL y además supiera cuál de las 976 tablas usar, cómo cruzarlas y qué trampas evitar. Es decir: casi nadie.

Desde noviembre buscaban cómo conectar esa data con los usuarios y los tableros. Tenían herramientas BI de licencia con conexión al lake, pero este año decidieron eliminarlas y apostar por un modelo de consumo con IA. El resultado se quedó a medias: lograron un dash que construía paneles e indicadores, pero nadie aterrizaba el modelo de consulta — así que la data se le resubía a mano, en Exceles. Un data lake de 976 tablas, alimentando tableros por copy-paste.

El vacío que justificó la solución
El Data Lake resolvió el almacenamiento, no el acceso. Entre 976 tablas y una pregunta de negocio ("¿cuántas unidades activas tengo por territorio?") falta una traducción completa: qué tabla, qué joins, qué filtros, y cómo se define cada métrica. Sin esa traducción, una IA no puede consultar el lake: o inventa SQL sobre tablas que no entiende, o alguien le resube la data en Excel. Hacía falta una capa semántica: definir la traducción una sola vez, y que todo lo demás —tableros, IA, partners— la consuma por API.

02Qué resuelve

Las capacidades que entrega Cortex.

Habla negocio, no SQL
El consumidor pide flota.unidades por flota.territorio. Nunca escribe SQL ni toca una tabla.
Una sola definición de la verdad
Cada métrica vive una vez en un modelo YAML versionado. Los conteos inflados por snapshots diarios se resuelven de raíz.
Compila, no improvisa
La consulta semántica se compila a SQL parametrizado: identificadores solo del YAML validado, valores como bind params. Anti-inyección por diseño.
Para humanos y para IA
La IA lee el catálogo de métricas y arma un JSON — no inventa SQL ni alucina nombres de columnas.
Un hub, dos audiencias
Front interno con JWT; partners externos con API key, alcance por modelo y límite de consultas.
Rápido y barato
Cache Redis por consulta compilada: menos latencia y menos costo de Athena, que cobra por datos escaneados.
976
Tablas en el lake (20 bases)
150
Modelos semánticos definidos
7 meses
Buscando cómo conectar el lake
6 días
De arranque a backend + tablero

03Cómo lo resuelve

El recorrido, del archivo en el lake a la decisión de negocio.

Data Lake
S3 · Parquet, zonas crudo y curado — intacto
Catálogo
Glue + Athena: 20 bases, 976 tablas inventariadas
Modelo semántico
Métricas, dimensiones y joins en YAML — una sola vez
Compilador
Consulta semántica → SQL de Athena, parametrizado
API · FastAPI
Permisos, cache Redis, rate limiting
Tablero KPI
KPIs en vivo desde 2 fuentes del lake — sin Exceles
Por qué los intentos anteriores fallaron
Probaron BI de licencia conectado al lake, y luego un dash con IA: ninguno aterrizó. Conectar directo al lake obliga a cada consumidor a saber cuál de las 976 tablas usar, cómo cruzarlas y cómo esquivar los snapshots duplicados — y una IA sin modelo de consulta termina alimentada con Exceles resubidos a mano. Cortex invierte el problema: la lógica vive una sola vez en la capa semántica y los tableros (y la IA) se vuelven clientes ligeros de una API estable. Lo que llevaba 7 meses atorado quedó operando en 6 días.

04El stack tecnológico

Construido sobre el Data Lake existente del cliente — sin migrar ni duplicar la data.

Data Lake (existente)
AWS S3 · ParquetGlue Data CatalogGlue CrawlerAthena · Trino SQL
Capa semántica
150 modelos YAMLCompilador → SQLSQLAlchemy · PyAthenaJoins declarativos
API · Backend
Python · FastAPIPydanticJWT (compartido con el front)API keys · scopes
Performance & seguridad
Redis · cache + rate limitBind params (anti-inyección)Keys con hash, nunca en claro
Tablero KPI
Next.js · ReactChart.js · Recharts2 fuentes del lake, en vivo
Capa de IA
Catálogo de métricas para LLMsDashBuilder con IAClaude · OpenAI

05Cómo está compuesta la solución

Tres capas: el lake del cliente, el hub semántico de Campelsoft, y el consumo.

1 · Data Lake (infraestructura del cliente)
Sistemas origen
20 bases de los sistemas del negocio
S3 · zonas crudo y curado
976 tablas en Parquet — la data no se mueve ni se duplica
Glue + Athena
Catálogo de esquemas y motor de consulta sobre el lake
2 · Cortex — Semantic Layer Hub (Campelsoft)
Registro de modelos
150 modelos YAML: métricas, dimensiones, joins — recargables en caliente
Compilador semántico
De pregunta de negocio a SQL parametrizado de Athena
API consultable
Consulta semántica, dry-run y catálogo de métricas
Permisos
JWT interno · API keys externas con alcance por modelo
Cache + rate limit
Redis: respuestas rápidas y costo de Athena bajo control
Ingesta
Crawler de Glue y carga de Excel/CSV desde el panel
3 · Consumo (usuarios del negocio)
Tablero KPI
KPIs ejecutivos en vivo desde 2 fuentes del lake — listo para crecer por perspectiva
Partners externos
Consumen por API key solo los modelos de su alcance
Agentes de IA
Eligen métricas del catálogo y arman la consulta — sin inventar SQL

06Resultados

AntesCon Cortex
976 tablas accesibles solo para quien escribiera SQLMétricas de negocio por nombre, consultables por API
Conteos distintos según quién consultara (snapshots diarios)Una definición por métrica, en YAML versionado — todos ven el mismo número
Cada tablero reinventaba la lógica y se rompía con cambios del lakeLos tableros son clientes ligeros de una API estable
Acceso a datos vía SQL crudo, expuesto a inyecciónSQL compilado y parametrizado; identificadores solo del modelo validado
El dash con IA construía paneles, pero la data se resubía a mano en ExcelesKPIs conectados en vivo al lake — cero copias manuales
7 meses buscando la conexión: BI de licencia, luego IA sin modelo de consultaBackend + tablero operando en 6 días
Data invisible para herramientas de IALa IA consulta el catálogo y arma JSON — data gobernada, sin alucinar columnas

Lecciones transferibles a cualquier organización

¿Tu data lake responde preguntas, o solo guarda archivos?

Campelsoft construye Cortex sobre tu data lake existente — sin migrar ni duplicar tu data: una capa semántica consultable por API que conecta tu inversión en datos con tus usuarios, tus tableros, tus partners y tus agentes de IA. Te mostramos, sobre tu propio lake, qué tan lejos estás de la primera respuesta.

Solicita una evaluación →