Una guía completa sobre OLAP: arquitectura, operaciones, tipos y aplicaciones
El término fue acuñado por E. F. Codd en 1993 como respuesta a las limitaciones de los sistemas transaccionales para el análisis estratégico. OLAP no es una base de datos en sí misma, sino un paradigma de consulta y análisis multidimensional.
Mientras que los sistemas relacionales almacenan datos en tablas bidimensionales (filas y columnas), OLAP organiza la información en estructuras multidimensionales llamadas cubos, que permiten explorar los datos desde múltiples ángulos de forma extremadamente eficiente.
Los datos se modelan con múltiples dimensiones de análisis (tiempo, geografía, producto, cliente…).
Las consultas analíticas complejas devuelven resultados en segundos, incluso sobre millones de registros.
Trabaja principalmente con sumas, promedios, máximos, mínimos y otras métricas consolidadas.
El usuario puede explorar los datos libremente sin necesitar consultas SQL predefinidas.
Siempre existe una dimensión temporal. Los datos históricos son clave para el análisis de tendencias.
OLAP se alimenta de un almacén de datos (DW), que consolida fuentes heterogéneas y limpias.
La distinción entre OLAP y OLTP es fundamental para entender cuándo y por qué se usa cada sistema. Son complementarios, no sustitutos.
| Característica | OLTP | OLAP |
|---|---|---|
| Propósito | Operaciones del día a día (transacciones) | Análisis estratégico y toma de decisiones |
| Tipo de operación | INSERT, UPDATE, DELETE frecuentes | SELECT masivos, pocas escrituras |
| Volumen de datos | Gigabytes | Terabytes o petabytes |
| Usuarios típicos | Personal operativo (cajeros, agentes…) | Directivos, analistas de datos |
| Diseño de BD | Modelo relacional normalizado (3FN) | Modelo dimensional (estrella, copo de nieve) |
| Tiempo de respuesta | Milisegundos por transacción | Segundos a minutos por consulta analítica |
| Historial | Días o semanas (datos actuales) | Meses o años (datos históricos) |
| Ejemplos | TPV, banca, e-commerce | Business Intelligence, dashboards ejecutivos |
El concepto central de OLAP es el hipercubo de datos. Un cubo representa los datos en múltiples dimensiones, donde cada celda contiene una medida (métrica numérica) y cada eje representa una dimensión.
Perspectivas o categorías de análisis. Ej.: Tiempo, Producto, Cliente, Canal, Geografía. Se organizan en jerarquías (Año → Trimestre → Mes → Día).
Valores numéricos que se analizan. Ejemplos: ingresos, coste, unidades vendidas, tiempo medio de entrega. Son los valores dentro de las celdas del cubo.
Niveles de agregación dentro de una dimensión. Permiten hacer drill-down (más detalle) o drill-up (más resumen). Ej.: País → Comunidad → Ciudad → Tienda.
Intersección única de todos los valores de dimensión. Cada celda almacena una o más medidas. Una celda vacía (sparse) es habitual en cubos grandes.
OLAP define un conjunto de operaciones estándar que permiten navegar y explorar el cubo de datos. Son el vocabulario del analista.
Agrupa datos subiendo en la jerarquía. Reduce el nivel de detalle. Ej.: de ventas por mes a ventas por trimestre o por año. Se aplica una función de agregación (SUM, AVG…).
Desglosa datos bajando en la jerarquía. Aumenta el nivel de detalle. Ej.: de ventas por país a ventas por ciudad. Es la operación inversa al roll-up.
Selecciona una "rebanada" del cubo fijando un valor en una dimensión. Ej.: ver solo las ventas del año 2024. El resultado es un subcubo de dimensión reducida en uno.
Selecciona un subcubo aplicando filtros en dos o más dimensiones simultáneamente. Ej.: ventas de electrónica en España durante el Q1-Q2 de 2024.
Rota los ejes del cubo para obtener una perspectiva diferente. Es equivalente a transponer una tabla dinámica. Ej.: cambiar filas de producto por filas de región.
Consulta múltiples cubos o tablas de hechos compartiendo dimensiones comunes. Permite cruzar datos de ventas con datos de inventario, por ejemplo.
Accede a los datos transaccionales originales (nivel atómico) desde una celda del cubo. Útil para auditar un valor agregado inspeccionando los registros individuales.
Existen tres grandes variantes arquitectónicas, cada una con ventajas según el volumen de datos, la velocidad requerida y los recursos disponibles.
Almacena los datos en una base de datos relacional (PostgreSQL, SQL Server…) con esquema estrella o copo de nieve. El motor OLAP genera SQL optimizado al vuelo. Soporta volúmenes muy grandes pero puede ser más lento en consultas complejas.
Precalcula y almacena los datos en estructuras multidimensionales propietarias (arrays de N dimensiones). Ofrece la mayor velocidad de consulta. La limitación es el tamaño del cubo y el tiempo de preprocesado. Ej.: Essbase, Analysis Services.
Combina ROLAP y MOLAP. Los datos de resumen se almacenan en estructuras multidimensionales (rápidas) y los datos detallados en el almacén relacional (económico). Mejor equilibrio entre rendimiento y escalabilidad.
Un sistema OLAP no opera de forma aislada. Se integra dentro de un ecosistema más amplio de inteligencia de negocio.
| Capa | Componente | Función |
|---|---|---|
| Fuentes | ERP, CRM, logs, APIs | Sistemas operacionales de origen de datos |
| ETL / ELT | Apache Spark, dbt, Airflow | Extracción, transformación y carga de datos |
| Data Warehouse | Snowflake, BigQuery, Redshift | Almacén centralizado y limpio |
| Servidor OLAP | SSAS, Apache Kylin, Druid | Motor de agregación multidimensional |
| Capa semántica | dbt metrics, LookML, Cube.dev | Define métricas y dimensiones de negocio |
| Visualización | Power BI, Tableau, Looker | Dashboards e informes para el usuario final |
Una tabla de hechos central rodeada de tablas de dimensión desnormalizadas. Consultas simples y rápidas. El más común en la práctica.
Las dimensiones están normalizadas en subtablas. Ocupa menos espacio pero las consultas son más complejas (más JOINs). Útil cuando las dimensiones son muy grandes.
Varias tablas de hechos que comparten dimensiones comunes. También llamado galaxy schema. Cubre múltiples procesos de negocio.
Existen dos lenguajes principales para consultar sistemas OLAP: MDX (diseñado para cubos multidimensionales) y SQL con extensiones analíticas (funciones de ventana en bases de datos relacionales).
Lenguaje de consulta específico para cubos OLAP, similar en concepto a SQL pero orientado a estructuras multidimensionales. Desarrollado por Microsoft y adoptado como estándar de facto.
-- Ventas totales por trimestre y categoría de producto SELECT { [Measures].[Ventas], [Measures].[Unidades] } ON COLUMNS, NON EMPTY { [Tiempo].[Año].[2024].Children } ON ROWS FROM [Ventas_Cubo] WHERE ( [Producto].[Categoría].[Electrónica], [Geografía].[País].[España] )
El SQL moderno incluye funciones de ventana (window functions) que permiten cálculos analíticos avanzados sin necesidad de un servidor OLAP dedicado.
-- Ventas con acumulado y ranking por región SELECT region, mes, ventas, -- Acumulado temporal (Roll-up parcial) SUM(ventas) OVER (PARTITION BY region ORDER BY mes ROWS UNBOUNDED PRECEDING) AS acumulado, -- Ranking dentro de cada región RANK() OVER (PARTITION BY region ORDER BY ventas DESC) AS ranking, -- Comparación con período anterior LAG(ventas, 1) OVER (PARTITION BY region ORDER BY mes) AS ventas_mes_anterior FROM fact_ventas ORDER BY region, mes;
-- Subtotales automáticos a múltiples niveles (OLAP en SQL puro) SELECT COALESCE(año::text, 'TOTAL') AS año, COALESCE(region, 'TODAS') AS region, COALESCE(categoria, 'TODAS') AS categoria, SUM(ventas) AS total_ventas FROM fact_ventas GROUP BY CUBE(año, region, categoria) ORDER BY año, region, categoria;
OLAP es omnipresente en el mundo empresarial. Cualquier organización que necesite convertir grandes volúmenes de datos históricos en decisiones estratégicas utiliza alguna forma de OLAP.
Análisis de ventas por producto, tienda, temporada y canal. Detección de patrones de compra y optimización de inventario.
Análisis de rentabilidad por producto financiero, segmento de cliente y región. Detección de fraude y reporting regulatorio.
Análisis epidemiológico, consumo de recursos hospitalarios, eficacia de tratamientos por demografía y período.
Optimización de rutas, análisis de tiempos de entrega, eficiencia de almacenes por zona y producto.
Análisis de métricas de producto (DAU, retención, churn), uso por feature, región y segmento de cliente.
Seguimiento presupuestario, análisis de indicadores sociales y económicos por territorio y período.
| Herramienta | Tipo | Entorno | Uso típico |
|---|---|---|---|
| Microsoft SSAS | MOLAP / ROLAP | On-premise / Azure | Cubos empresariales con Power BI |
| Apache Kylin | ROLAP (columnar) | Cloud / Hadoop | Big Data analítico a escala masiva |
| Apache Druid | ROLAP (columnar) | Cloud / On-premise | Análisis en tiempo casi real |
| Google BigQuery | ROLAP moderno | Cloud (GCP) | Data warehouse serverless |
| Snowflake | ROLAP moderno | Multi-cloud | Analytics escalable y compartido |
| Cube.dev | Capa semántica | Cloud / On-premise | API analítica sobre cualquier DW |