Introducción a los cubos
Las herramientas OLAP (onLine Analitical Processing) tienen como objetivo fundamental soportar las consultas “ad-hoc” de los usuarios que analizan el negocio. Por lo general estos usuarios están familiarizados con el uso de las hojas de cálculo, las herramientas OLAP, básicamente realizan las mismas operaciones que podríamos realizar con una hoja de cálculo pero además ofrecen:
- Trabajan con grandes volúmenes de datos.
- Están optimizados semánticamente para la manejar términos de negocio (dimensiones geográficas, dimensiones de tiempo).
- Están combinados con capacidades de generación de informes.
- Trabajan con bases de datos dimensionales.
En 1993 E.F Codd propuso el término “On-Line Analytical Processing” (OLAP) para representar los datos corporativos en diferentes perspectivas multidimensionales, realizando un análisis en línea (on-line) de los datos usando fórmulas matemáticas, o técnicas estadísticas más sofisticadas, agregando y consolidando los datos de acuerdo a las diferentes dimensiones.
Los modelos de datos OLAP, basados en datos organizados de manera multidimensional, típicamente categorizan los datos como dimensiones que añaden características a los hechos. En la realidad las investigaciones alrededor de OLAP siempre han estado dirigidas a mejorar el rendimiento de obtención y manipulación de la información, contenida en las bases de datos dimensionales.
Los sistemas OLAP son frecuentemente comparados con lo que se denominan Bases de datos estadísticas (statistical databases), una clase de bases de datos que permiten la definición, manipulación, elaboración y almacenamiento de datos multidimensionales precalculados, la principal diferencia entre ambas estriba en que las bases de datos estadísticas calculan los datos sobre otras bases de datos, mientras que las bases de datos OLAP representan los datos directamente.
Otra de las características de OLAP es que incluye datos de definición de datos, esto es metadatos, Los metadatos son una información descriptiva y sistemática acerca del contenido y la organización de la información que puede ser obtenida, manipulada y mostrada de diferentes maneras. Los metadatos pueden ser simples y carentes de estructura o estructurados y complejos. OLAP hace uso de la información contenida en los metadatos para describir características de naturaleza estadística y para ofrecer información para la manipulación de los datos y su análisis.
Realmente los cubos como tal no existen, los cubos se utilizan para representar o visualizar un modelo dimensional. Podemos representar un modelo dimensional con tres dimensiones con un cubo (cube) tal como el de la figura, en cualquier caso lo habitual es tener modelos dimensionales con más de tres dimensiones, en ese caso su representación se realiza con cubos que reciben el nombre de hipercubos (hypercube).
Como los hipercubos son más difíciles de visualizar por eso se usa con mayor asiduidad el término cubo.
Operaciones básicas de OLAP
Existen cuatro tipos básicos de operaciones en OLAP para el análisis de datos. Las operaciones conocidas como “drill down” y “roll up” básicamente van ha definir el nivel de granularidad con la que queremos analizar los datos, mientras que las operaciones “slice” y “dice” nos permitirán navegar entre las dimensiones.
Drill down y Roll up
Las operaciones “drill down” y “roll up” son utilizadas para mover la vista hacia y desde un mayor nivel de detalle a un menor nivel de detalle. Para cada caso, hacia un mayor nivel de detalle realizamos un “drill down”, mientras que para un menor nivel de detalle realizamos un “roll up”. Recordemos que la granularidad de la información es directamente proporcional al nivel de detalle, por lo que estas operaciones básicamente nos ayudan a ver o analizar los datos desde diferentes niveles de granularidad.
La operación de Drill down también se conoce como agregación dinámica.
Slice y Dice
Las operaciones de Slice (trocear) y dice (dado) se corresponden a las operaciones para la visualización de los datos a través del cubo.
Slice y dice son las habilidades para acceder a un data warehouse a través de cualquiera de sus dimensiones por igual. Las operaciones de Slice y dice realizan el proceso de separar y combinar los datos de infinitas maneras.
La operación de Slice realiza un “corte” en el cubo para que los usuarios puedan centrarse en un área determinada del cubo. También puede decirse que define un subcubo.
La operación dice, rota el cubo hasta una nueva perspectiva, para que los usuarios puedan ver los datos desde diferentes perspectivas en su análisis de los datos.
Con estas operaciones el usuario que analiza la información, puede agruparla de una manera, analizarla, agruparla de otra y realizar otro análisis. Con las operaciones de slice y dice el usuario posee diferentes perspectivas para el análisis.
Implementación de OLAP
Una vez resueltas las necesidades del negocio mediante el diseño de los cubos relevantes, con sus correspondientes dimensiones y sus medidas, el siguiente paso se basa en la elección del tipo de almacenamiento del cubo OLAP.
La calidad del diseño inicial del proyecto de data warehouse es inversamente proporcional al coste de la implementación del cubo…a peor diseño mayor coste, ¿por qué?, básicamente un mal diseño llevará aparejado un mayor consumo de recursos, que se traduce en un incremento del coste de adquisición de los recursos necesarios para servir la información en tiempo y manera.
El diseñador del data warehouse puede seleccionar si quiere establecer un almacenamiento separado para los cubos, o si quiere almacenarlos junto con el resto de datos del data warehouse. Esto depende directamente del tamaño de los datos almacenados y la conexión prevista para la carga de los datos.
El diseño ideal de almacenamiento de cubos OLAP es el almacenamiento independiente en estructuras optimizadas para la naturaleza de las consultas que se llevan a cabo con OLAP (drill down, roll up, slice, dice), sobre todo en entornos donde se mueven grandes volúmenes de datos con consultas frecuentes.
Las consultas que los usuarios realizan contra los cubos OLAP consumen grandes recursos del sistema, no es posible un almacenamiento permanente de los resultados de agregación de las intersecciones entre las distintas dimensiones, ya que el volumen de datos sería desproporcionado debido a la multitud de combinaciones (exponenciales) posibles tal como se muestra en la tabla, aunque evidentemente los datos fuente no tendrían que ser consultados en la realización de las diferentes consultas.
Muchos de los cubos usados en la práctica, poseen alrededor de 10 dimensiones, y pueden soportar un promedio de 4 o más niveles. El resultado sería de 1.048.576 agregaciones. Pre-calcular 1 millón de agregaciones consumiría un número de recursos excesivos de la maquina y lo que es más importante de tiempo.
A veces en entornos de uso continuado, para realizar un ahorro de recursos es conveniente precalcular agregaciones de los cubos, siempre y cuando la cantidad de información no sea desmesurada (el sentido común es el mejor consejero), de esta manera se reduce la demanda a la base de datos. Es también habitual que las compañías restrinjan el uso de OLAP a un grupo selecto de usuarios.
El almacenaje de los cubos de OLAP es una de las decisiones críticas que se han de tomar a la hora de diseñar el data warehouse. Es posible almacenar los cubos OLAP de tres maneras:
MOLAP
OLAP Multidimensional. En MOLAP, los datos de fuente y las agregaciones son almacenes en un formato multidimensional. MOLAP es la opción más rápida para la recuperación de datos, pero requiere de mucho espacio en disco, aunque en nuestros días esto no es un gran problema debido al bajo precio de almacenamiento.
ROLAP
OLAP Relacional. Todos los datos, incluyendo las agregaciones se almacenan dentro de una estructura relacional de base de datos, que puede estar en la misma localización de la fuente o no. ROLAP es el método de almacenamiento más lento en la recuperación de los datos. ROLAP tiene sentido en pequeños volúmenes de datos.
HOLAP
OLAP Híbrido. HOLAP es una combinación de las anteriores (MOLAP, ROLAP). Las bases de datos HOLAP almacenan las agregaciones dentro de una estructura multidimensional, pero el almacenamiento de los mismos (pre-calculados) se produce de forma relacional. HOLAP ofrece las funcionalidades de MOLAP, pero es tan lento como ROLAP.
Debido a que los costes de hardware son cada vez más bajos, MOLAP se presenta como la mejor opción siempre que sea posible el acceso a una base de datos o fuente MOLAP independiente. Por otro lado ROLAP es más conveniente en el caso de que el número de consultas sea reducido y el volumen de datos relativamente bajo.