INTRODUCCIÓN A BODEGAS DE DATOS Y TECNOLOGÍA OLAP Sistemas ROLAP En los sistemas ROLAP (Relational On Line Analytic Processing), los Cubos Multidimensionales se generan en el momento en que se realizan las consultas. Esta arquitectura accede a los datos almacenados en un Data Warehouse para proporcionar los análisis OLAP. La premisa de los sistemas ROLAP es que las capacidades OLAP se soportan mejor contra las bases de datos relacionales. El sistema ROLAP utiliza una arquitectura de tres niveles. La base de datos relacional maneja los requerimientos de almacenamiento de datos, y el motor ROLAP proporciona la funcionalidad analítica. El nivel de base de datos usa bases de datos relacionales para el manejo, acceso y obtención del dato. El nivel de aplicación es el motor que ejecuta las consultas multidimensionales de los usuarios. El motor ROLAP se integra con niveles de presentación, a través de los cuáles los usuarios realizan los análisis OLAP. Después de que el modelo de datos para el Data Warehouse se ha definido, los datos se cargan desde el sistema operacional. Se ejecutan rutinas de bases de datos para agregar el dato, si así es requerido por los modelos de datos. Se crean entonces los índices para optimizar los tiempos de acceso a las consultas. Los usuarios finales ejecutan sus análisis multidimensionales, a través del motor ROLAP, que transforma dinámicamente sus consultas a consultas SQL. Se ejecutan estas consultas SQL en las bases de datos relacionales, y sus resultados se relacionan mediante tablas cruzadas y conjuntos multidimensionales para devolver los resultados a los usuarios. La arquitectura ROLAP es capaz de usar datos precalculados si estos están disponibles, o de generar dinámicamente los resultados desde los datos elementales si es preciso. Esta arquitectura accede directamente a los datos del datawarehouse, y soporta técnicas de optimización de accesos para acelerar las consultas. Estas optimizaciones son, entre otras, particionado de los datos a nivel de aplicación, soporte a la desnormalización y joins múltiples. Este proceso se puede resumir a través de los siguientes pasos: 1. Se describe la metadata del Cubo: Indicadores, Atributos, Jerarquías, etc. 2. Se almacena la metadata. 3. El Motor Multidimensional del visor OLAP que se esté utilizando, carga la metadata con la cual realizará un mapeo entre los datos del DW y los Atributos, Indicadores, etc. 4. Cada vez que se actualiza el DW, se debe borrar la caché del Motor Multidimensional a fin de visualizar los nuevos datos. Esto se debe a que los motores ROLAP hacen uso exhaustivo del caché, lo cual permite que el motor evite consultar dos veces el mismo dato, ya que una vez consultado será almacenado en caché. Sistemas MOLAP MOLAP (Multidimentional On Line Analytic Processing) precalcula los Cubos Multidimensionales y los almacena físicamente. Esta arquitectura usa unas bases de datos multidimensionales para proporcionar el análisis, su principal premisa es que el OLAP está mejor implantado almacenando los datos multidimensionalmente. Por el contrario, la arquitectura ROLAP cree que las capacidades OLAP están perfectamente implantadas sobre bases de datos relacionales Un sistema MOLAP usa una base de datos propietaria multidimensional, en la que la información se almacena multidimensionalmente, para ser visualizada en varias dimensiones de análisis. El sistema MOLAP utiliza una arquitectura de dos niveles: la bases de datos multidimensionales y el motor analítico. La base de datos multidimensional es la encargada del manejo, acceso y obtención del dato. El nivel de aplicación es el responsable de la ejecución de los requerimientos OLAP. El nivel de presentación se integra con el de aplicación y proporciona un interfaz a través del cual los usuarios finales visualizan los análisis OLAP. Una arquitectura cliente/servidor permite a varios usuarios acceder a la misma base de datos multidimensional. La información procedente de los sistemas operacionales, se carga en el sistema MOLAP, mediante una serie de rutinas por lotes. Una vez cargado el dato elemental en la Base de Datos multidimensional (MDDB), se realizan una serie de cálculos por lotes, para calcular los datos agregados, a través de las dimensiones de negocio, rellenando la estructura MDDB. Tras rellenar esta estructura, se generan unos índices y algoritmos de tablas hash para mejorar los tiempos de accesos a las consultas. Una vez que el proceso de compilación se ha acabado, la MDDB está lista para su uso. Los usuarios solicitan informes a través de la interface, y la lógica de aplicación de la MDDB obtiene el dato. La arquitectura MOLAP requiere unos cálculos intensivos de compilación. Lee de datos pre compilados, y tiene capacidades limitadas de crear agregaciones dinámicamente o de hallar ratios que no se hayan pre calculados y almacenados previamente. Este proceso se puede resumir a través de los siguientes pasos: 1. Se seleccionan los Indicadores, Atributos, Jerarquías, etc., que compondrán el Cubo Multidimensional. 2. Se pre calculan los datos del Cubo, es decir, todas las combinaciones posibles entre los niveles de las Jerarquías de cada Dimensión. 3. Se ejecutan las consultas sobre los datos precalculados del Cubo. 4. Cada vez que se actualiza el DW, se debe pre calcular y guardar el Cubo, para que contenga los nuevos datos. Sistemas HOLAP HOLAP (Hybrid On Line Analytic Processing) constituye un sistema híbrido entre MOLAP y ROLAP, que combina estas dos implementaciones. Los datos agregados y precalculados se almacenan en estructuras multidimensionales y los de menor nivel de detalle en estructuras relacionales. Es decir: Se utilizará ROLAP para navegar y explorar los datos a bajos niveles de granularidad y Se utilizará MOLAP para la explotación de datos precalculados, por lo general sumatorias o funciones de alto de nivel de agregación, suelen ser los más utilizados en los dashboards. 2. Describe y ejemplifica el método de Multi-way array aggregation o Multi array aggregation para el cálculo de cubo de datos. El método Multiway Array Aggregation (o simplemente MultiWay) calcula un cubo de datos completo utilizando una matriz multidimensional como su estructura de datos básica. Eso es un enfoque típico de MOLAP que utiliza direccionamiento de matriz directa, donde se accede a los valores de dimensión a través de la posición o índice de su matriz correspondiente ubicaciones. Por lo tanto, MultiWay no puede realizar ningún reordenamiento basado en valores como técnica de optimización. Se desarrolla un enfoque diferente para el sistema construcción de cubos, de la siguiente manera: 1. Dividir la matriz en trozos. Un trozo es un subcubo pequeño suficiente para caber en la memoria disponible para el cálculo del cubo. Fragmentación es un método para dividir una matriz ndimensional en pequeñas n-dimensiones fragmentos, donde cada fragmento se almacena como un objeto en el disco. Los trozos son comprimidos para eliminar el espacio desperdiciado resultante de celdas de matriz vacías. Una celda está vacía si no contiene ningún dato válido, es decir, su recuento de celdas es cero. Por ejemplo, "chunkID + offset" se puede utilizar como direccionamiento de celda mecanismo para comprimir una estructura de matriz dispersa y al buscar para celdas dentro de un fragmento. Tal técnica de compresión es poderosa en manejo de cubos dispersos, tanto en disco como en memoria. 2. Calcule agregados accediendo a los valores en las celdas del cubo. El orden en el que se visitan las celdas se puede optimizar para minimizar el número de veces que cada celda debe ser revisada, reduciendo así costos de almacenamiento y acceso a la memoria. La optimización consiste en explotar este orden que las porciones de las celdas agregadas en múltiples cubo se pueden calcular simultáneamente, y se evita cualquier revisión innecesaria de las celdas. Esta técnica de fragmentación implica superponer algunos de los cálculos de agregación, por lo tanto, se denomina agregación de matriz de múltiples vías. Eso realiza agregación simultánea, es decir, calcula agregaciones simultáneamente en múltiples dimensiones. 3. Describe y ejemplifica el método Bottom-up-Computation para el cálculo de cubo de datos. BUC es un algoritmo para el cálculo de cubos dispersos e iceberg. A diferencia de MultiWay, BUC construye el cubo desde el vértice hacia la base cubo. Esto permite que BUC comparta los costos de partición de datos. Este orden de procesamiento también permite a BUC podar durante la construcción, utilizando la propiedad Apriori. La figura muestra una red de cubo, formando un cubo de datos 3-D con las dimensiones A, B y C. Figura1. Exploración BUC para un cubo 3-D [5] El vértice (0-D) cubo, que representa el concepto (es decir, (∗, ∗, ∗)), está en la parte superior del enrejado. Este es el más agregado o nivel generalizado. El cubo de base tridimensional, ABC, se encuentra en la parte inferior del enrejado. Eso es el nivel menos agregado (más detallado o especializado). Esta es una representación con el ápice en la parte superior y la base en la parte inferior, se acepta comúnmente en el almacenamiento de datos. Consolida las nociones de desglose (donde podemos pasar de una celda muy agregada a una celda más baja y más detallada celdas) y roll-up (donde podemos pasar de celdas detalladas de bajo nivel a celdas de nivel superior más agregadas). Los autores de BUC ven un entramado de cubo en orden inverso, con el vértice cubo en la parte inferior y la base cubo en la parte superior. Desde ese punto de vista, BUC realiza una construcción de abajo hacia arriba. Sin embargo, porque adoptamos la visión del mundo de las aplicaciones donde la exploración en profundidad se refiere a la perforación desde el vértice cubo hacia abajo hacia el cubo base, el proceso de exploración de BUC se considera de arriba hacia abajo. Exploración de BUC para el cálculo de un 3-D Figura 2. El algoritmo BUC [5] Inicialmente, el algoritmo es llamado con la relación de entrada (conjunto de tuplas). BUC agrega toda la entradalínea 1) y escribe el total resultante (línea 3). (La línea 2 es una función de optimización.) Para cada dimensión d (línea 4), la entrada está dividido en d (línea 6). Al regresar de Partition (), dataCount contiene el número total de tuplas para cada valor distinto de dimensión d. Cada uno distinto. El valor de d forma su propia partición. La línea 8 recorre cada partición. Línea 10 prueba la partición para obtener un soporte mínimo. Es decir, si el número de tuplas en la partición satisface (es decir, es ≥) el soporte mínimo, entonces la partición se convierte en la relación de entrada para una llamada recursiva realizada a BUC, que calcula el cubo de iceberg en las particiones para las dimensiones d + 1 a numDims (línea 12). 4. Describe y ejemplifica la inducción orientada a los atributos Esta aproximación toma consultas de minería de datos expresadas en un lenguaje similar al SQL y guarda los grupos de datos relevantes en la base de datos. La generalización se hace entonces sobre un conjunto de datos relevantes utilizando diferentes técnicas, como árboles de decisión, extracción de atributos, funciones de agregación, entre otras. La generalización de datos se expresa en una forma de relaciones generales, donde cada uno de los operadores o transformaciones puede transformar los datos generalizados en diferentes tipos de conocimiento o presentarlos en formas diferentes. Por ejemplo, las operaciones de drill – down o roll – up pueden presentar vistas de los datos con múltiples niveles de abstracción, la relación generalizada puede ser presentada por medio de tablas de sumarización, gráficas, curvas, etc. De aquí se puede extraer reglas características las cuales sumarizan, las características de los datos generalizados. Una aplicación de este tipo de minería, se presenta en la Figura Figura 3. Identificación de los grupos en los subespacios del espacio de datos original [4] La cual presenta las características generales de la base de datos de donaciones para investigación del Natural Science and Engineering Research Council of Canada (NSERC). Aquí se muestran los resultados de ejecutar consultas de minería de datos sobre las donaciones recibidas por dos provincias vecinas al oeste de Canadá, en la disciplina de ciencias de la computación; las provincias comparadas son: British Columbia y Alberta. Figura 4. Ejemplo: Comparación de donaciones para investigación [4] La tabla de la figura anterior, se compone de varias columnas: clase, la cual indica la provincia; disciplina, que indica la disciplina de investigación; la categoría de la donación; cantidad por categoría; porcentaje de soporte, el cual representa el número de las donaciones de investigación en la categoría analizada vrs el total de donaciones en la respectiva provincia; y el porcentaje de comparación, el cual representa el número de donaciones de una categoría específica en una provincia vrs la otra. Por ejemplo, la primera fila de la tabla indica que para donaciones de infraestructura en la disciplina de computación, en el rango de 40Ks a 60Ks, British Columbia tomó el 2% del total de donaciones en computación. Por su parte, Alberta, tomó el 1.72%; sin embargo si se realiza una comparación entre ambas provincias, se observa que British Columbia tomó el 66.67%, mientras que Alberta tomó solamente el 33.33%. [4]. Referencias [1] Fernandez V, ¿Qué son los esquemas multidimensionales?, https://datamanagement.es/2020/04/03/esquemas-data-warehousing recuperado de [2] Jiawei H, 2011, Data Mining: Concepts and Techniques, 3rd ed. Morgan Kaufmann Publishers, July 2011. ISBN 978-0123814791 [3] Quesada O, 2003, Establecimiento de un grupo de indicadores de un grupo de indicadores para la toma de desiciones en el sector vivienda utililizando técnicas de minería de datosOS, tesis para optar por el grado de Máster en Computación, Departamento de Computación, Instituto Tecnológico de Costa Rica. [4] Chen, Ming-Syan,1996, Data Mining: An Overview from a Database Perspective. Recuperado de: http://hanj.cs.illinois.edu/pdf/survey97.pdf [5] Jiawei Han, 2013, Data Mining: Concepts and Techniques 3rd Edicion, Kamber & Pei