170 likes | 333 Views
Taller de Base de Datos. Consulta Típica en OLAP Encontrar el total y número de unidades vendidas para marca en el primer semestre de 1997. Taller de Base de Datos. Formulación de consultas en OLAP Inspeccionar las dimensiones
E N D
Taller de Base de Datos Consulta Típica en OLAP Encontrar el total y número de unidades vendidas para marca en el primer semestre de 1997
Taller de Base de Datos Formulación de consultas en OLAP • Inspeccionar las dimensiones • Imponer una condición sobre las dimensiones (ej. Semestre=1S97) • Seleccionar atributos y categorías (granularidad). • Seleccionar medidas y agregaciones(ej. Sum(f.pesos)) • Observar el resultado, e investigar por qué, lo que implica una nueva consulta.
Taller de Base de Datos • Operadores OLAP • Roll-up: Cambiar una categoría en la granularidad por una categoría menos fina. • Drill-down: inverso de Roll-Up. • Navegación: secuencia de roll-up y drill-downs • Drill-across: cruzar más de una tabla de hechos • Slice: imponer condiciones sobre las dimensiones • Pivot: elegir atributos para la tabla de salida y cambiar la disposición de los atributos. • Etc.
Taller de Base de Datos Cubo de Datos
Taller de Base de Datos Grafo de Dependencia de un Cubo de Datos
Taller de Base de Datos Almacenamiento de un Cubo de Datos en un Sistema OLAP Relacional
Taller de Base de Datos • Un cubo de datos puede tener hasta: E1xE2x…xEn hechos, donde Ei es el número de elementos de la dimensión i. • Tamaño del cubo es cercano a la tabla de hechos base si los datos son densos y la jerarquía se condensa fuertemente a medida que nos acercamos a All. • En general puede ser MUCHO MÁS grande (data cube explosión) • Ejemplo: benchmark TCP/Dpart customer supplier, la tabla de hechos base tiene 6 millones de tuplas, el cubo tiene 19 millones.
Taller de Base de Datos Algoritmo Básico para calcular un cubo de datos • Algoritmo 2N para cubos simples (dimensiones tiene una categoría a parte de All). • Procedimiento Iter(&handle,v) agrega el valor v a una dirección asociada a la tupla (punto) handle. • Leemos la tabla de hechos y por acada tupla t=<x1,…,xn,v> llamamos 2n veces Iter(handle,v). • Para cada tupla handle se despliega final(&handle) • Iter se puede implementar usando una tabla de hash. • Número de llamadas a Iter=2nxT,donde n es el número de dimensiones y T es la cardinalidad de la tabla de hechos base.
Taller de Base de Datos Computación Eficiente de Cubos de Datos Distributivos • Cubos de datos distributivos: funciones de agregación distributivas. Ejemplos: SUM, MAX, MIN. • Recordemos que cada granularidad define una vista cúbica. • <codProducto, codSuper, fecha> define un cuboide de 3 dimensiones. • <codProducto, codSuper, All> define un cuboide de 2 dimensiones. • Todo cuboide de dimensión K puede ser computado usando algún cuboide de dimensión K-1 • Ejemplo: Para todo punto <All, p1, All>, V(All,p1,All)=G({V(All, p1,fi) | fiєMi}).
Taller de Base de Datos Algoritmo PipeSort y PipeHash
Taller de Base de Datos Algoritmo PipeHash Idea general algoritmo PipeHash (S. Agrwal et al, VLDB 96): • Para cada vista cúbica definido por una granularidad G elegir un cuboide G’. • Es decir, tenemos que elegir un árbol del grafo de dependencia que cubra todos los nodos y cuya raíz sea el cuboide inferior (minimun Spannig Tree) • Hay muchos árboles posibles, si computamos el cubo usando tablas de hash, elegimos los antecesores más pequeños. • Particionar el árbol en subarboles, cada subarbol se computa por separado con una sóla lectura del cuboide de su raíz.
Taller de Base de Datos Procesamiento de Consultas en OLAP • Almacenar sólo tabla de hechos base, computar los cuboides en tiempo de consulta. • Problema: computar un cuboide sobre dimensiones simples toma tiempo proporcional al tamaño de la tabla de hechos base. • Materializar completamente el cubo (no siempre es posible) • Problema explosión del cubo • Costos de actualización • Materializar sólo algunos cuboides y usar navegación de agregados (Harinaraya et al 1996).
Taller de Base de Datos Navegación en Agregados Supongamos que queremos computar <All, proveedor, All> en TPC-D Benchmark Navegación en agregados: proceso en que se reformula un cuboide requerido por el usuario como una consulta que se refiere a otro(s) cuboide pre- computado.
Taller de Base de Datos Navegador en Agrados (cont)
Taller de Base de Datos Navegación en Agrados (cont) • Cuboide C: <codProducto, semestre> • Consulta Q: ¿Cuánto jabón se ha vendido cada año? • SELECT from C WHERE codProd=‘Jabón’: Roll-Up de semestre a año • En general si: • C y Q son sobre el mismo conjunto de dimensiones, • Las condiciones de Q implican las de C y • La granularidad de C es más fina que la granularidad de Q, Entonces C se puede usar para responder Q.
Taller de Base de Datos Herramientas para WareHouses OLAP • Back- End: extracción de datos, integración, limpieza, carga, mantención incremental • Servidor: procesamiento de consulta • Front-end: clientes OLAP, herramientas de consulta y visualización, reportes • Otras: monitoreo, administración, meta-datos
Taller de Base de Datos Actualidad y Futuro de OLAP • Extensiones del modelo multidimensional (ej., dimensiones heterogéneas), datos semiestruturados (XML), teoría de Diseño en este contexto. • Minería de datos organizados en modelos OLAP. • Sistemas MOLAP escalables: Sistema T3 de Microsoft, EMC, Knosys, Unisys. Cubo de datos de 1.2 Terabyte de datos base, 7.6 billones de hechos (tuplas), 50 usuarios concurrentes, respuestas a consolidaciones toman 0.02-0.08 seg.