El diseño de la base de datos de un Data Warehouse

Anuncio
El diseño de la base de datos
de un Data Warehouse
Marta Millan
[email protected]
www.eisc.univalle.edu.co/materias
El modelo Multidimensional
Principios básicos
Marta Millan
[email protected]
www.eisc.univalle.edu.co/materias
Introducción
Un data warehouse se construye de
manera heurística
En un primer momento, no se conocen bien
los requerimientos
Proceso de construcción nuevos
requerimietos
Motivaciones
¿Cómo diseñar una base de datos que
permita ejecutar consultas desconocidas?
Entender la forma usar información en el
data warehouse
Motivaciones
La mayor parte de las consultas a un data
warehouse sobre un hecho esencial, analizado de
distintas formas:
Número medio de ventas de micros por tienda el último
mes
Los diez programas por cable más vistos la semana
pasada
Ventas previstas de natilla en Navidad comparado con el
stock actual
E/R vs. Multidimensional
Los modelos E/R intentan eliminar la
redundancia en los datos
La búsqueda de consistencia hace que los
procesos de consulta sean difíciles y
costosos.
Modelos dimensionales: meta
comprensión y el rendimiento
Modelos Multidimensionales
Técnica de diseño lógico para diseño de
Data Warehouses
Proporcionan los mejores resultados
Diseños de acuerdo a un estándar que es
intuitivo y fácil de entender
Permite accesos de alto rendimiento
Modelos Multidimensionales
Formado por una tabla cuya clave es
compuesta -Table Fact (tabla de hechos) y
un conjunto de tablas más pequeñas
denominadas Tablas de Dimensión.
Su apariencia hace que se les denomine
diagramas STAR
Diagramas en estrella
Dimensión
Cliente
Dimensión
Tabla de hechos
Producto
Ventas
Dimensión
Dimensión
Almacen
Fecha
Hechos
Transacciones que han ocurrido.
Poco probable que cambien en el
futuro.
Los hechos se pueden analizar de
diferentes formas dependiendo de la
información de referencia
Los hechos suelen tener pocos atributos,
puesto que no tiene datos operacionales
Dimensiones
Representa factores por los que se puede
analizar un determinado área de negocio.
Son tablas más pequeñas
A menudo se desnormalizan
Hechos y dimensiones
Tiendas
Región
VENTAS
Producto
Diseño STAR: Etapas
Un diagrama E/R se divide en múltiples
diagramas en estrella
Separar en procesos discretos de negocio
(hechos) y modelizar cada hecho
separadamente
Seleccionar relaciones n:m con atributos
numéricos
Desnormalizar las tablas de dimensión
El esquema final serán de 10- 25 STAR cada
uno de ellos con 5-10 dimensiones
Una metodología de trabajo para
el diseño de la base de datos de
un Data Warehose
Marta Millan
[email protected]
www.eisc.univalle.edu.co/materias
Método de diseño:
Enfoque 1
Diseñar la base de datos del Data
Warehouse global:
•
•
•
•
Mucho esfuerzo
Mucho tiempo
Resultados tardan mucho tiempo en aparecer
No es abordable en la mayoría de los casos
Método de Diseño
Enfoque 2
• Diseñar la base de datos de cada Data
Mart por separado:
•
•
•
•
Mucho más sencillo
Menos tiempo
Menos recursos
La integración posterior de varios
complica
Data Mart se
Método de Diseño
SOLUCIÓN:
Diseñar la Base de Datos de cada Data Mart sin
perder de vista el objetivo final de integración.
Definir una estructura común (bus del data
warehouse) sobre la que se apoyen todos los
data marts
Unión de los
modelos STAR
Construir todo el DW desde el principio o
hacer diseños separados para cada area de
negocio??
Planifiquemos Data Marts separados
pero que compartan aquellas definiciones
comunes a la organización
Data Marts con arquitectura de bus
común
La arquitectura del
BUS común del DW
Crear una arquitectura que defina todo el
marco de la organización.
Construir Data Marts dentro de ese
marco común
Dimensiones conformadas
Definición estándar de hechos
Dimensiones
conformadas (I)
Es una dimensión que significa lo mismo
para cada posible tabla fact
Ejemplos: cliente, producto, tiempo,
localización
Es responsabilidad del equipo diseñador
establecer, publicar y mantener las
dimensiones conformadas
Dimensiones
conformadas (II)
Sin un uso estricto de dimensiones conformadas el
datawarehouse nunca funcionará como un todo.
Hacen posible:
Una única tabla de dimensión se puede usar
contra múltiples tablas de hechos en el mismo
espacio de bases de datos
Las interfaces de usuario y el contenido de los
datos son consistentes dondequiera que se use
Hay una interpretación consistente de atributos
Dimensiones
conformadas (III)
Puede llevar mucho tiempo la
identificarlas
Se diseñan al nivel de granilaridad más bajo
que sea posible
Deben tener una clave no significativa para
poder permitir cambios en el futuro
La creación de las mismas es tan decisión
técnica como política
Definiciones de hechos conformadas
Se realiza al mismo tiempo que las dimensiones
conformadas
Ejemplos: costos, precios, beneficio, ...
Mismas unidades de medida
Mismos periodos
Mismas localizaciones
Si es imposible conformar un hecho único
asegurarse de dar a las distintas interpretaciones
diferentes nombres
Data Marts con múltiples fuentes de datos
data mart con una única fuente de datos son los
más fáciles de construir.
Ej: sistema de pedidos disponible y diseño del
data mart de pedidos.
Es recomendable empezar con estos data marts
porque minimiza el riesgo de implementaciones
demasiado ambiciosas.
Una implementación de data marts sencillos
permitirá al equipo de desarrollo seguir trabajando
mientras los usuarios ya van realizando sus
consultas.
Data Marts con múltiples fuentes de datos
(II)
Cuando se hayan implementado suficientes
data marts de una única fuente es
razonable combinarlos para conseguir un
data mart de más de una fuente.
Ej: Conseguir el data mart de beneficios
combinado distintos componentes de costos y
ganancias
La arquitectura
común del DW
Las dimensiones conformadas y las
definiciones estándar de los hechos
configuran la arquitectura del bus del data
warehouse.
La definición del bus en un determinado
entorno permite añadir un nuevo data mart
que puede coexistir con los ya existentes.
Aspectos de diseño a tener en
cuenta en el diseño de las tablas
de un Data Mart
Marta Millan
[email protected]
www.eisc.univalle.edu.co/materias
4 pasos para diseñar
tablas de hechos
Elegir el data mart
Decidir el grano de la tabla de hechos
Empezar con data marts de una fuente
Establece lo que significa cada registro de la tabla de
hechos
Decidir las dimensiones
Decidir los hechos de la tabla de hechos
Deben ser específicos para el grano elegido para la tabla
de hechos
Buscar las transacciones
en el proceso del negocio
Transacciones que describen sucesos
fundamentales para el negocio
Para cada hecho potencial, preguntar:
¿se usa de verdad esta transacción en
el proceso de negocio?
Determinar dimensiones principales
En modelo lógico que entidades están
asociadas con la entidad que representa la
tabla hecho
No todas las dimensiones principales están
asociadas directamente a la tabla hecho en
el modelo lógico
Preguntarse cuál va a ser el enfoque en el
análisis del negocio
Comprobar si un hecho
es una dimensión
Buscar dimensiones no normalizadas en las
tablas candidatas a hechos. Se puede dar
el caso de que un candidato a hecho sea
una dimensión que contenga grupos
repetidos de atributos hechos
Comprobar si un hecho
es una dimensión
Diseñar tablas hecho para almacenar filas que
no varíen en el tiempo. Si la entidad parece
que varía en el tiempo, considerar el crear
una tabla hecho que represente eventos
que cambien el estado de esa entidad
Comprobar si una dimensión es un hecho
¿Puedo ver esta entidad en otra
dimensión?. ¿En cuántas?
Si la respuesta es más de tres, la entidad
no es una dimensión, sino un hecho
Diseñar las tablas
de hechos
¿Cómo puede ser una tabla de grande?
Existen una serie de técnicas para reducir
el tamaño de las tablas de hechos.
Reducir el tamaño de la tabla de hechos
1. Identificar el periodo histórico significativo para los
distintos procesos, y el grado de detalle requerido.
2. Si los requisitos del negocio no necesitan todos los
datos hecho detallados, se puede considerar
almacenar algunos ejemplos y agregar el resto
3. Eliminar todas las columnas de la entidad hecho
que no sean requeridas para responder a
preguntas de toma de decisiones
Reducir el tamaño de la tabla de hechos (II)
4. Asegurarse de que cada byte de cada columna se
necesita
5. No usar claves automáticas en las tablas hecho, a
menos que se tenga la certeza de que los
identificadores no cambian durante la vida del dw
6. Usar fechas en la tabla de hechos, y no construir
una tabla especial para el tiempo
Diseñar las tablas dimensión
PRODUCTO
Nombre, color,
estilo, tamaño
Desnormalizar las entidades
consultadas muy a menudo para
acelerar el rendimiento de las
consultas (Esquemas estrella)
Sección
PRODUCTO
Departamento
Sección, departamento,
negocio, nombre, color,
Negocio
estilo, tamaño
Jerarquías
A veces no es posible desnormalizar todas
las entidades en esquemas en estrella.
Entidades que se relacionan entre si con
relaciones muchos-a-muchos no se
deberían desnormalizar en un esquema en
estrella
Jerarquías
Las jerarquías son muy usadas para
representar diferentes vistas. En estos
casos, es más efectivo determinar cuál es la
jerarquía que va a ser más consultada. Ésta
será desnormalizada, y el resto
permanecerán como están
Esquemas starflake
En el diseño de un data warehouse, se usa
una combinación de esquemas
normalizados (esquemas snowflake) y
desnormalizados (esquemas estrella)
La combinación de ambos recibe el nombre
de esquemas starflake
Localización
Ventas
Localización
Localización
Tiempo
Tiempo
Mes
Semana
Drill up, Drill down
Drilling down:más detalle de los datos por
ejemplo añadiendo una nueva restricción.
No es sólo cuestión de navegar en las
jerarquías
Drill up es la operación contraria esto es
eliminar cabeceras de los informes
Snowflaking
Una dimensión está “snowflaked” cuando los
atributos de baja cardinalidad se llevan a tablas
separadas.
Generalmente no se recomienda en DW
A veces se usa para ahorrar espacio de
almacenamiento
No permite hacer uso de los índices bitmap
Sin embargo existen situaciones (datos
demográficos) en las que son aconsejables.
Claves primarias y foráneas
Todas las claves que se utilicen en tablas
del data warehouse deben ser claves sin
significado.
Nunca se deben usar claves de producción
Nunca se deben usar claves con
significado
Facilitan los cambios
La importancia de
los atributos
La calidad del Data warehouse se mide por
la calidad de los atributos:
Descriptivos
Completos (sin valores nulos)
Indexados
Palabras enteras
Documentados (metadata)
Calidad asegurada
Degenerate Dimension
La mayoría de los diseños multidimensionales
están alrededor de un documento de control: nº de
pedido, factura, ticket, ...
Generalmente son contenedores con más de un
producto
Generalmente en estos casos el grano de la tabla
es producto
¿Qué se hace con los números?
Se ponen en las tablas pero no tienen una
dimensión con la que hacer join
Junk Dimension
En ocasiones se tienen atributos textuales y flags
de distinta naturaleza que no parecen organizarse
de manera coherente.
La solución no parece sencilla:
Dejar los atributos en la tabla fact
Hacer dimensiones separadas para cada atributo
Quitar directamente estos atributos
La mejor solución es compactarlos todos en lo que
se denomina una “junk dimension”
Aditividad
Siempre que sea posible, los hechos de la
tabla fact deberían elegirse para que sean
perfectamente aditivos.
Esto significa que se pueden sumar por
cualquier dimensión.
Las medidas de actividad (ventas) son
generalmente aditivas
Aditividad
Las medidas de intensidad no siempre lo
son (niveles de inventario, balance de
cuentas...). Estas medidas generalmente son
aditivas por todas las dimensiones menos
por el tiempo.
Existen otras medidas que no se pueden
sumar por ninguna dimensión
(temperaturas).
Familias de tablas
de hechos (I)
Hay negocios con un flujo lógico con un
principio y un fin (value chain):
Ciclo de vida de un producto
Ciclo de vida de un cliente
Seguros
Familias de tablas
de hechos (I)
Todos estos casos se pueden enfocar de la
misma manera:
Se define una tabla fact y un conjunto de
dimensiones asociadas para cada paso de la
cadena
Se deciden las dimensiones conformadas y se
utilizan para cada paso de la cadena
Familias de tablas
de hechos (II)
Otros negocios se organizan como círculos.
En estos casos todas las entidades miden
la misma transacción:
Organizaciones de salud
Ejemplo
Clave Cuenta
Clave por tipo de cuenta
Tiempo
Cuenta
Tiempo
Sucursal
Titular
Sucursal
Balance
Clave por tipo de
cuenta
Atributos por tipo
Cuotas pagadas
Clave de fact1
Num_transacciones
Hechos
particulares
Clave para unir con
fact personalizada
Clave de factn
Hechos
particulares
Agregados
Las tablas de agregados son resúmenes que
se construyen y almacenan para mejorar el
rendimiento de las consultas
Se genera una familia de tablas que se
derivan de la tabla de hechos a nivel
detallado
Cada miembro de la familia representa un
grado determinado de resumen en relación a
una o más dimensiones
Tablas fact sin hechos
diseño final una tabla fact sin hechos, solo
interesa el suceso en sí:
Afluencia de público
Coberturas
Tablas fact sin hechos (II)
Fecha
Fecha
Fecha
Producto
Persona
Establecimiento
Establecimiento
Promoción
Producto
Persona
Establecimiento
Promoción
Relaciones n:m
relaciones n:m desde la “table fact” a las
tablas de dimensión (titulares de cuentas
bancarias,....)
El problema se soluciona añadiendo una
tabla puente
Roles
Dimensiones comunes requiere la creación
de vistas sobre las tablas de dimensión
Fin: identificar cada uno de los posibles roles
de la dimensión
Ciudad:
–
–
Ciudad de destino
Ciudad de origen
Roles
Fecha:
–
–
–
Fecha de entrega
Fecha de venta
Fecha de devolución
Operador
–
–
Larga distancia
Metropolitana o Local
Agregaciones
Aceleran las consultas más comunes
costo de crear y de gestionar las
agregaciones vs. beneficios
¿Qué es una agregación?
La mayoría de las consultas sobre un
subconjunto o una agregación de los datos
detallados
Ejemplo: se desea conocer las ventas de un
determinado producto en un dpto. En
Colombia: uso de tablas resumen
Diseñando tablas resumen
Proceso similar al de las tablas de hechos
Determinar las dimensiones por las cuales 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: consultar con frecuencia datos
agregados, se crea una tabla con los datos resumidos y
se prescinde de la dimensión
Agregar la dimensión: consultas se hacen sobre datos
agregados, con lo que se pueden crear tablas resumen en
los que se prescinde 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, se puede agregar los valores
requeridos en un conjunto de columnas
dentro de las misma tabla resumen
Determinar el nivel de agregación
Cuando se hacen agregaciones de un nivel, se
pierden datos sobre el nivel inferior
Se puede considerar 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. De este modo,
no se pierde este 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
Maximizar la velocidad de las consultas sobre
las tablas resumen indexando todos los
posibles accesos, es decir, considerar usar
un nivel de indexación muy alto sobre las
tablas resumen
Descargar