Capa Semántica de Analítica (ADA)

Capa semántica sobre un sistema transaccional PostgreSQL de ~500 tablas, con catálogo de módulos, datasets, métricas y dimensiones que actúa como contrato de datos para la analítica.

📋 Descripción del Proyecto

Este proyecto consiste en el diseño e implementación de una capa semántica de analítica (ADA) sobre un sistema transaccional PostgreSQL que cuenta con aproximadamente 500 tablas. La capa semántica actúa como un contrato de datos entre el sistema transaccional y las herramientas de análisis, definiendo un catálogo estructurado de módulos, datasets, métricas y dimensiones que abstrae la complejidad del modelo relacional subyacente.

El núcleo del sistema es una API de reportes dinámicos construida con FastAPI y SQLAlchemy. Esta API valida toda consulta entrante contra el catálogo semántico antes de ejecutarla, evitando SQL libre y garantizando trazabilidad de la lógica de negocio replicada en todos los reportes. Cada métrica y dimensión tiene una definición única en el catálogo, eliminando inconsistencias entre distintos reportes que calculaban la misma métrica de formas diferentes.

El diseño está pensado como base evolutiva hacia autoservicio analítico y consultas en lenguaje natural gobernadas por el catálogo (NL → payload estructurado, no NL → SQL directo). Esto permite que en el futuro un agente de IA pueda responder preguntas de negocio sin acceder directamente a la base de datos transaccional, manteniendo el gobierno de datos y la trazabilidad como principios fundamentales.

Características y Funcionalidades

Catálogo semántico

Registro centralizado de módulos, datasets, métricas y dimensiones con definición única por concepto.

API de reportes dinámicos

Endpoints que validan toda consulta contra el catálogo antes de ejecutar, garantizando trazabilidad.

Gobierno de datos

Toda métrica tiene una definición única, eliminando inconsistencias entre reportes distintos.

Abstracción del modelo relacional

Las herramientas de análisis consumen el catálogo, no el modelo de 500 tablas directamente.

Base para NL2Payload

Arquitectura preparada para consultas en lenguaje natural convertidas a payload estructurado, no SQL directo.

Trazabilidad completa

Cada reporte generado es rastreable hasta su definición en el catálogo semántico.