En la era de la información y el desarrollo del Big Data, aparecen nuevos conceptos como el de dataware house que permiten manejar y trabajar con conjuntos masivos de datos.
Antes de desarrollar un caso práctico de datawarehousing vamos a introducir algunas ideas iniciales necesarias, para entender de qué estamos hablando.
¿Qué es un data warehouse?
Traducido como almacén de datos, se trata de una base de datos corporativos que se caracteriza por integrar y depurar la información para luego procesarla, permitiendo el análisis de la información desde distintos puntos de vista. La creación de un dataware house representa en la mayoría de las ocasiones el primer paso, desde el punto de vista técnico, para implantar una solución completa y fiable de Business Intelligence.
Un poco de historia…
El concepto de dataware house nación en la década de los 80, en la empresa IBM. Los investigadores que la desarrollaron buscaban establecer un sistema que permitiera un manejo fluido y permanente de datos que fuera al mismo tiempo organizado de acuerdo a necesidades específicas. Estos datos podían ser muy variados y abarcar diferentes áreas de la empresa. De este modo, no solo se ahorraría tiempo y energía, sino también los altos costos monetarios de los sistemas que se utilizaban previamente.
Características de un dataware house
La ventaja principal de estos sistemas se basa en la estructura de la información, que supone el almacenamiento de los datos de forma homogénea y fiable, en una estructura basada en la consulta y el tratamiento jerarquizado de la misma, y en un entorno diferenciado de los sistemas operacionales. Según Bill Inmon, quien acuñó el término, el dataware house se caracteriza por ser:
- Integrado: Los datos almacenados tienen que ser integrados en una estructura consistente, lo que conlleva a la eliminación de las inconsistencias existentes entre sistemas de operaciones.
- Temático: Para facilitar el acceso a los datos y el entendimiento de ellos se suelen organizar por temas.
- Histórico: Permite almacenar datos en momentos concretos, para realizar análisis de tendencias en esos momentos o periodos de tiempo y poder realizar comparaciones entre esos valores tomados.
- No volátil: Esto implica que la información almacenada en el dataware house es para ser leída pero no modificada. Por lo que la información es permanente.
Otra característica importante del dataware house es que contiene metadatos, es decir, datos sobre los datos. Los metadatos permiten saber la procedencia de la información, su periodicidad de refresco, su fiabilidad, forma de cálculo, etc.
Los metadatos serán los que permitan simplificar y automatizar la obtención de la información desde los sistemas operacionales a los sistemas informacionales.
Ventajas de un dataware house
- Proporciona una herramienta para la toma de decisiones en cualquier área funcional, basándose en información integrada y global del negocio
- Facilita la aplicación de técnicas estadísticas de análisis y modelización para encontrar relaciones ocultas entre los datos del almacén
- Proporciona la capacidad de aprender de los datos del pasado y de predecir situaciones futuras en diversos escenarios
- Simplifica dentro de la empresa la implantación de sistemas de gestión integral de la relación con el cliente
- Supone una optimización tecnológica y económica en entornos de centro de información, estadística o de generación de informes.
Ejemplo de dataware house paso a paso
Introducidos los conceptos anteriores, vamos a exponer a continuación un ejemplo que iremos elaborando a partir de las diferentes fases de construcción de un dataware house.
“La compañía de alquiler de vehículos Rent4you desea diseñar un dataware house como sistema de soporte de ayuda a la toma de decisiones estratégicas. La compañía tiene varias sucursales, en las cuales ofertan alquileres de una amplia variedad de vehículos como, coches, motos, caravanas, furgonetas, etc.
El dataware house pretende centralizar la información de todas las sucursales con el objetivo de definir nuevas estrategias de negocio. Se quiere analizar tanto las ventas (alquileres realizados en cada sucursal) así como los gastos para poder estudiar cuáles son los puntos de venta que más beneficios aportan, los perfiles de los clientes por tipo de vehículo para ajustar los seguros, la eficiencia de los empleados por sucursal, etc.
El dataware house se va a alimentar de grandes bases de datos operacionales como son la de ventas, gastos, clientes y administración de RRHH.”
Fases de Construcción
En la etapa de construcción vamos a modelar las tablas relacionales en una gran estructura desnormalizada compuesta por tabla de hechos, y tablas más pequeñas que definirán las n-dimensiones llamadas tablas de dimensiones.
El modelo dimensional divide el mundo de los datos en dos grandes tipos: las medidas y las dimensiones de estas medidas. Las medidas, siempre son numéricas, se almacenan en las tablas de hechos y las dimensiones son textuales y se almacenan en las tablas de dimensiones.
La tabla de hechos es, por tanto, la tabla primaria del modelo dimensional, y contiene los valores del negocio que se desea analizar. Entendidos estos conceptos pasamos a detallar a continuación los pasos a seguir en la construcción del dataware house.
1. Análisis y diseño del modelo en estrella
En esta primera etapa de construcción se lleva a cabo el modelado de los datos, en el que se determinan las tablas de dimensiones y la tabla de hechos.
2. Programa de carga de las tablas de dimensiones y de hechos
En esta etapa se debe llevar a cabo el proceso ETL (Extracción, transformación y carga) que permita leer las tablas de los sistemas transaccionales para que puedan ser cargadas en las tablas de dimensiones. En este proceso se deben considerar todas las restricciones y lógica exclusiva y necesaria para almacenar los datos. Por ejemplo, puede ocurrir que dos empleados de sucursales diferentes tengan el mismo código de empleado, por lo que será necesario el uso de tablas de equivalencias o conversión durante el proceso ETL para evitar inconsistencia y duplicidad de los datos.
Lo primero a tener en cuenta para el proceso ETL es la periodicidad, la cual debe establecerse basándonos en las necesidades del negocio; es decir, con qué frecuencia es necesario tener los datos actualizados para el análisis. También debe contemplarse la disponibilidad de los recursos, tanto de las fuentes de datos (de las que se nutre el dataware house) como la del propio dataware house, ya que el rendimiento será afectado durante el proceso ETL.
En nuestro caso de estudio, se podría establecer la política de actualización de los datos de manera mensual, extrayendo las transacciones del mes vencido en la madrugada del primer día del mes siguiente. Esta periodicidad es suficiente para los analistas, y se establece en un período de tiempo en el que hay disponibilidad de recursos para el procesamiento y no se interrumpe el uso normal de las fuentes de datos.
Esquema del proceso ETL
3. Desarrollo de cubo OLAP
Los cubos OLAP son las herramientas que se basan en la capacidad de analizar y explorar los datos, nos proporcionan un análisis interactivo por las diferentes dimensiones de los datos (por ejemplo, tiempo, producto, cliente, criterios geográficos, etc.) y por los diferentes niveles de detalle. En el siguiente enlace se explica cómo crear un cubo OLAP a partir de Excel 2010.
En conclusión, en el desarrollo de un dataware house o almacén de datos se debe tener muy clara la información que se pretende analizar y qué objetivos se persiguen, ya que es la base del proceso ETL que nos permite nutrir de información las tablas de hechos y dimensiones definidas para nuestro almacén de datos.
Comentarios
Thank you for writing such an informative post and interesting article.
Hola buen día, si tengo una base de datos relacional, normalizada, y a partir de eso quiero hacer un data warehouse con su tabla de hechos y dimensiones, saben si hay algún software o herramienta que haga el proceso de denormalización? Gracias de antemano
Hola buenos días o buenas tarde, soy un estudiante de ing de sistemas y me dejaron un trabajo sobre data warehouse, si me puede ayudar con que herramienta puedo realizar un método para construir un modelo molap y olap, me puede colaborar gracias.