La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estimación de Almacenamiento para Agregados Multidimensionales en Presencia de Jerarquías Shukla, Deshpande, Naughton, Ramasamy, VLDB ‘96.

Presentaciones similares


Presentación del tema: "Estimación de Almacenamiento para Agregados Multidimensionales en Presencia de Jerarquías Shukla, Deshpande, Naughton, Ramasamy, VLDB ‘96."— Transcripción de la presentación:

1 Estimación de Almacenamiento para Agregados Multidimensionales en Presencia de Jerarquías Shukla, Deshpande, Naughton, Ramasamy, VLDB ‘96

2 El Problema Query optimization en OLAP: precomputar agregados
En presencia de jerarquías: explosión de agregados (producto de lattices, Harinarayan et al, 1996) Necesidad de estimar el espacio a ocupar por los agregados.

3 Métodos Muestreo Aproximación matemática Conteo probabilístico

4 Ejemplo Sales(IdProd,IdStore,Qty) Products(IdProd,Type,Category)
Stores(IdStore,Region)

5 Ejemplo Region California Wisconsin s1 s2 s3 s4 s5 s6 s7 s8 s9 s10
PERSONAL HYGIENE SOAP P X X P X X X X X P X P X X X P X X P X P X P X SHAMPOO Volúmenes de venta Type Category

6 Ejemplo Region California Wisconsin s1 s2 s3 s4 s5 s6 s7 s8 s9 s10
PERSONAL HYGIENE SOAP P X X X X X P X X X X X P X X X X X P4 P5 P6 P7 P8 DATABASE DB1 SHAMPOO Type Category

7 Ejemplo Region California Wisconsin s1 s2 s3 s4 s5 s6 s7 s8 s9 s10
PERSONAL HYGIENE SOAP P X X X P X X P X X P X P X P X X P X X P X X SHAMPOO DATABASE DB2 Type Category

8 Impacto de las Jerarquías
En la primer BD, sin Jerarquías, hay 34 tuplas en el cubo : All =1, Products = 8, Stores = 10, (Products, Stores) = 16 En la primer BD, con Jerarquías, hay 73 tuplas en el cubo.

9 Impacto de las Jerarquías
Group By BD 1 BD2 () 1 (Products) 3 8 (Type) 2 (Category) (Stores) 5 10 (Regions) (Products, Stores) 15 (Type, Stores) (Category, Stores) (Products, Region) 14 (Category, Region) 4 (Type, Region) TOTALES 42 84 Aún para el mismo número de tuplas, y el mismo esquema, el tamaño de los agregados puede variar.

10 Método Analítico Basado en el resultado de Feller (1957): Si r elementos se eligen al azar de un conjunto de n elementos, el número esperado de elementos distintos que se obtienen es: n – n(1 – 1/n)r Se utiliza para determinar la cota superior en el tamaño del cubo.

11 Método Analítico Ej: dado ABCD, si queremos estimar el tamaño de Group By AB, dado que size(A) = n1 y size(B) = n2, son conocidos (del catálogo de la BD), n = n1 * n2; r es el número de tuplas de la relación. El número total de agregaciones está dado por: ¶ i=1,k (hi + 1) Donde la dimensión i tiene una jerarquía de tamaño h (en el ejemplo anterior: h(prod)= 3, h(store)=2 => nro. de agregaciones = 12

12 Método Analítico Cualquier desvío en los datos reduce el tamaño del cubo. Este método, entonces, sobreestima el tamaño de los agregados, en un porcentaje que no puede ser estimado apriori.

13 Método de Muestreo Toma un subset de tamaño s de la base de datos de tamaño D, y computa el cubo sobre ese subset. Cube (s) = D / s

14 Método de Conteo Probabilístico
Se basa en el hecho de que para computar el número de tuplas de, p.ej. (type, stores), agrupamos sobre productos y contamos el número de elementos distintos de stores que genera esta operación. Basado fundamentalmente en un trabajo de Flajolet & Martin de 1985 para conteo de valores distintos en multisets en bases de datos.

15 Ejemplo Region California Wisconsin s1 s2 s3 s4 s5 s6 s7 s8 s9 s10
PERSONAL HYGIENE SOAP P X X P X X X X X P X P X X X P X X P X P X P X SHAMPOO Volúmenes de venta Type Category

16 Ejemplo s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 X X X X X X X X SOAP
SHAMPOO

17 Método de Conteo Probabilístico
Se asume que existe una función de hash que mapea uniformemente registros a números enteros entre 0 y 2L –1 (nros. representables como bitmaps de longitud L). Definimos (y) como el bit “1” menos significativo en la representación binaria de y, con (0) = L. Denotamos M a un multiset y n al # de valores distintos en M.

18 Método de Conteo Probabilístico
For i = 1 to L-1 do BITMAP[i] = 0 For all x in M do Begin Index = (hash(x)) ; If BITMAP (index) = 0 then BITMAP[index] = 1 End Si la distribución de la función de hash es uniforme, quiere decir que el patrón 0k1 aparece con probabilidad 2-k-1 . Luego, BITMAP[0] será accedido n/2 veces, BITMAP[1] n/4 veces, etc. BITMAP[i] = 0 si i >> log2 n y BITMAP[i] = 1 si i << log2 n.

19 Método de Conteo Probabilístico
Supongamos que luego de |M| pasadas, se obtiene el siguiente vector de bits: El 0 más a la izquierda aparece en la posición 12, mientras que el 1 de más a la derecha aparece en la posición 15. Flajolet y Martin proponen que el primero (denotado R), sea considerado como una aproximación a log2n, donde el valor esperado de R está dado por: E( R )  log2 n , con  =

20 Método de Conteo Probabilístico
Este método tiene una dispersión muy grande, aunque en general puede ser muy preciso. Para mejorarlo, Flajolet & Martin proponen generar una familia de m funciones de hash, obteniendo valores de R1, R2,...., Rm . La idea es distribuir cada registro en M posiciones usando una función de tipo a = h(x) mod m. Solo se actualiza en cada caso el BITMAP de la posición a con la información de h(x). Luego, se computa el promedio: A = (R1 +R Rm) / m Si la distribución es uniforme, cada balde tendrá n/m elementos, y (1/).2A será la estimación de n/m, por lo tanto n = (m/) 2A

21 Estimando el tamaño del data cube
Inicializar los bitmaps en 0 For cada tupla T do For cada combinación C de jerarquías do T’ := Proyección C (T) Bitset(C, a(T’,bit(T’)); End Count :=0 For cada combinación C de jerarquías do Sumar el estimado a partir de C a Count Donde bit(T’) devuelve un entero representando el bit a setear en el bitmap, y a devuelve el balde cuyo bitmap se actualizará. Bitset() setea el bit correspondiente.

22 Actualizaciones Para inserciones alcanza con mantener los bitmaps antes de la actualización Para borrados, es necesario mantener el nro de hits de cada posición.

23 Conclusiones Muestreo: sobreestimación del tamaño del cubo, y el resultado depende del número de duplicados en la base => a menor nro de duplicados, peores resultados. Método analítico: funciona muy bien si los datos se distribuyen en forma uniforme. Si los datos están sesgados, la estimación es inexacta, pero independiente del sesgo. Probabilistic counting: se conporta bien para cualquier sesgo en los datos, con un error acotado. No obstante, requiere un scan de toda la base.


Descargar ppt "Estimación de Almacenamiento para Agregados Multidimensionales en Presencia de Jerarquías Shukla, Deshpande, Naughton, Ramasamy, VLDB ‘96."

Presentaciones similares


Anuncios Google