martes, 2 de febrero de 2016

Conceptos básicos de Data Warehouse - Parte I. ¿Qué es un cubo de datos?



En anteriores entradas, vimos cómo podemos instalar la suite Pentaho Business Analytics junto al plugin Pivot4J para visualizar y extraer información de tablas dinámicas.

Hoy, vamos a ver algunos conceptos básicos acerca del mundo del Big Data, el Data Warehousing y el análisis de información a nivel empresarial.

El Data Warehouse surge como una solución a un problema que se empezó a originar allá por los años 80 al entrar en conflicto las bases de datos relacionales para producción y las necesidades de extracción de grandes cantidades de información para el análisis de la misma.

Así, sin entrar en mayor detalle de momento, podemos ver que las técnicas de Data Warehouse tienen como objetivo especializar las bases de datos en la extracción y análisis de información para toma de decisiones a nivel estratégico. Pasamos del modelo clásico de dos dimensiones organizadas en tablas relacionadas entre sí a un modelo n-dimensional. Un primer paso inmediato sería la introducción de la dimensión tiempo en cualquiera de los antiguos sistemas bi-dimensionales, obteniendo con ello un cubo de datos.

Veamos un ejemplo:


Como podemos observar, encontramos un par de dimensiones principales que podrían ser las mismas que encontraríamos en una tabla relacional tradicional (ya veremos más adelante que sin embargo la dimensión Measures -o medidas en español- tiene sus particularidades), ampliadas con una tercera dimensión que es el tiempo.

No obstante, recordemos que hemos definido un cubo de datos como una entidad n-dimensional. Esto quiere decir que puede (y suele) tener más de tres dimensiones, lo cual dificulta mucho su representación y es uno de los principales motivos que nos llevan a usar tablas dinámicas (pivot table en inglés). Precisamente esa, es la utilidad de la aplicación Pivot4J que vimos anteriormente, que haciendo uso de su interfaz gráfica y consultas en lenguaje MDX nos permite extraer las dimensiones (y agregaciones sobre estas) que nos interese estudiar.

Definamos ahora unos cuantos conceptos básicos acerca de los cubos de datos:

  • Dimensión: es cada uno de los parámetros que etiquetan las filas o columnas del cubo. Como hemos comentado, a diferencia de una tabla convencional, puede tener más una por eje.
  •  Miembro: es el valor que toma una determinada dimensión.
  • Medida: es una determinada variable cuantitativa almacenada en una celda (como podemos observar en la imagen de ejemplo más arriba en el eje de las X). 
Un  aspecto muy importante es que las distintas dimensiones pueden estar relacionadas entre sí de forma jerárquica, de manera que una dimensión puede contener otras dimensiones más concretas y otros sub-miembros. En el ejemplo anterior, la dimensión Product (Producto) contiene la categoría Bikes (Bicicletas) que a su vez podría estar formada por bicicletas de montaña, bicicletas de carretera, plegables, eléctricas, etc.

Así, podríamos afinar con estas relaciones jerárquicas el nivel de detalle de los datos que estamos analizando, lo que nos lleva a otro concepto importante: la dispersión (o sparsity en inglés). De esta manera, definiremos la dispersión en función del número de celdas vacías en el cubo de datos.

Como podemos intuir, según subimos el nivel de detalle (adentrándonos en las dimensiones más abajo en el nivel de jerarquía) sube también el nivel de dispersión porque empezamos a encontrar celdas sin valores. Por ejemplo, puede que no tengamos datos de unidades vendidas de bicicletas eléctricas en febrero de 2015 y sin embargo el total de bicicletas de todos los tipos (un nivel menos de detalle) en esa fecha sí que devuelva algún resultado.

Y con este importante concepto, concluimos este primer artículo sobre Data Warehouse y Big Data que seguiremos ampliando con más conceptos y técnicas de análisis en futuras publicaciones. En ellas, abordaremos cuestiones fundamentales como son las agregaciones y operaciones sobre cubos, que en el fondo fueron la razón por las que surgió este tipo de estructuras ante la dificultad de obtener resultados de manera analítica sobre bases de datos tradicionales.


No hay comentarios:

Publicar un comentario