Data Warehousing Diseño e implementación de un data warehouse Marta Millan [email protected] www.eisc.univalle.edu.co/materias Estrategia de división • ¿Por qué dividir las tablas?: • Facilidad de manejo • Mejora en el rendimiento • Dos estrategias: • Horizontal • Vertical División horizontal • Dividir tablas horizontalmente acelera las consultas minimizando el conjunto de datos • Formas de dividir: • Segmentos de tiempo iguales • Segmentos de tiempo diferentes • Dividir por una dimensión diferente al tiempo Segmentos de tiempo iguales • Forma más común de división • Se divide la tabla de hechos usando el tiempo como medida, usando periodos de tiempo significativos para la empresa (mes, trimestre, año) • Algunas divisiones tendrán muchos datos, mientras que otras tendrán muy pocos Segmentos de tiempo diferentes Cuando datos antiguos no se utilizan: dividir la tabla de hechos en segmentos de tamaño diferente: Divisiones pequeñas para los datos recientes Divisiones algo más grandes para datos mas antiguos Las divisiones mayores para los datos más antiguos Dividir por una dimensión diferente al tiempo • División por tiempo más común. En ocasiones dividir por producto, región, proveedor o cualquier otra dimensión • No dividir nunca usando una dimensión que pueda cambiar durante la vida del data warehouse División vertical Se dividen los datos verticalmente. Dos formas: Normalización División por columnas División vertical (ii) División vertical: normalización Normalizar los datos dentro de un data warehouse puede producir “joins” muy grandes y muy ineficientes, evitar División vertical: división por columnas • La división por columnas acelera el acceso a las tablas más grandes reduciendo su tamaño • Hacerlo si se sabe con seguridad que algunas columnas generalmente no se acceden Agregaciones Aceleran consultas más comunes Costo de crear y de gestionarlas vs. beneficios de hacerlo ¿Qué es una agregación? • • La mayoría de las consultas sobre un subconjunto o agregación de datos detallados Ejemplo:conocer las ventas de un determinado producto en un depto.: usar tablas resumen Diseñando tablas resumen Diseño similar a las tablas de hechos: Determinar las dimensiones por las cuáles agregar Determinar la agregación de múltiples valores Agregar varios hechos en la tabla resumen Determinar el nivel de agregación Diseñar el tiempo en la tabla resumen Hacer un índice de la tabla resumen Determinar las dimensiones por las que agregar Dos técnicas: Incorporar la dimensión: consulta frecuente de datos agregados, crear una tabla con los datos resumidos y prescindir de la dimensión Agregar la dimensión: consultas sobre datos agregados. Crear tablas resumen prescindiendo de la dimensión agregada Determinar la agregación de múltiples valores Si existen muchas consultas que usan más de un valor agregado sobre la misma dimensión, agregar los valores requeridos en un conjunto de columnas dentro de las misma tabla resumen Determinar el nivel de agregación • • Agregaciones de un nivel, se pierden datos sobre el nivel inferior Opción: agregar los datos a un nivel inferior al deseado para no perder datos Ejemplo: Si se quieren datos mensuales, considerar agregar datos a nivel de semana. No se pierde el detalle, y siempre se pueden tener los datos mensuales Diseñar el tiempo en la tabla resumen Para acelerar las consultas, se puede almacenar el tiempo de varias formas: Como una fecha física: lo más recomendable Como un desplazamiento: no es apropiado. Se tarda mucho en calcular el desplazamiento Como un rango: nada recomendado Hacer un índice de la tabla resumen Indexar tablas resumen por los posibles accesos, nivel de indexación muy alto sobre las tablas resumen Estrategia para acelerar consultas