Post on 28-Apr-2017
Mejores Prácticas para el
Modelado de Datos
Objetivos
• Entender por qué QlikView es diferente de SQL
• Entender cómo funciona QlikView sin un Datawarehouse
• Adoptar las mejores prácticas de modelado de datos que sean aplicables al caso
QlikView no es SQL
• SQL:▫ SQL hace consultas
sobre tablas específicas en un gran esquema.
▫ Cada consulta crea un nuevo esquema temporal con solo algunas tablas.
▫ Los resultados de cada consulta son independientes.
QlikView no es SQL
• QlikView:▫ QlikView construye
esquemas mas pequeños y amigables para hacer reportes desde la base de datos transaccional.
▫ Este esquema es persistente y reacciona como un todo ante las consultas del usuario.
▫ Una selección afecta a todo el esquema.
QlikView no es SQL
• Agregación y Granularidad
Tabla Store
Tabla Sales
SELECT * FROM STORE A,
SALES B WHERE A.STORE = B.STORE
Note que la expresión SUM(SqrFootage) devolverá 4600La única forma de obtener el valor correcto es consultar la tabla Store por separado!
Store SqrFootage
A 1000
B 800
Store Prod Price Date
A 1 1,25 € 01/01/2012
A 2 0,75 € 01/02/2012
A 3 2,50 € 01/03/2012
B 1 1,25 € 01/04/2012
B 2 0,75 € 01/05/2012
SqrFootage Store Prod Price Date
1000 A 1 1,25 € 01/01/2012
1000 A 2 0,75 € 01/02/2012
1000 A 3 2,50 € 01/03/2012
800 B 1 1,25 € 01/04/2012
800 B 2 0,75 € 01/05/2012
QlikView no es SQL
• Beneficios:
▫ QlikView le permite ver el resultado de una selección a través de todo el esquema y no solo en un conjunto limitado de tablas.
▫ QlikView agregará al nivel de granularidad de la expresión y no del esquema como SQL.
▫ Esto supone que el usuario podrá interactuar con un rango de datos mayor al que podría con SQL.
QlikView no es SQL
• Desafíos:
▫ Varias consultas SQL pueden unir distintas tablas de distintas maneras.
▫ En QlikView hay una sola manera en que las tablas pueden unirse en cada qvw.
▫ Esto supone que el diseño del esquema es mucho mas importante en QlikView.
Requerimientos
• Los requerimientos siempre determinarán el diseño del esquema.
• Si no entiende completamente los requerimientos, o estos no se encuentran documentados apropiadamente, no debe comenzar a programar.
• Los requerimientos están centrados en el dominio del problema, no en el dominio de la solución
Datawarehouse Tradicional
Como utilizar Qlikview
Observaciones
• No existe una sola forma correcta de modelado de datos.
• El modelado de datos depende completamente de los requerimientos.
• Las mejores practicas no son universales, deben ser aplicadas a situaciones donde sea necesario.
• A veces, inclusive, QlikView puede no ser la solución adecuada!
Modelado Relacional vs. Dimensional
Relacional Dimensional
Modelado Relacional vs. Dimensional
• Relacional:
▫ Esquemas complejos
▫ Almacenamiento eficiente de los datos
▫ Esquemas construidos rápidamente
▫ Esquemas de fácil mantenimiento
▫ Consultas mas complejas
▫ Confusos para usuarios finales
Modelado Relacional vs. Dimensional
• Dimensional:
▫ Esquemas simples
▫ Esquemas desnormalizados
▫ Esquemas complejos de construir
▫ Esquemas difíciles de mantener
▫ Consultas simples
▫ Simples de entender para los usuarios finales
4 Pasos para el Modelado Dimensional
1. Seleccione el proceso de negocio a modelar
2. Determine la granularidad
3. Elija las dimensiones que aplican a cada fila de cada tabla de hecho
4. Identifique los hechos numéricos que poblarán cada fila de cada tabla de hecho
Esquemas de Estrella Múltiples y
Dimensiones Conformadas
Proceso de
NegocioDate Product Store Promotion Wharehouse Vendor Contract Shipper
Store Sales x x x x
Store Inventory x x x
Store Deliveries x x x
Wharehouse
Inventoryx x x x
Wharehouse
Deliveryx x x x
Purchase Orders x x x x x x
Dimensiones Comunes
Utilización de Archivos QVD para
Conformar las Dimensiones
Dimensiones Cambiantes
• Los valores de las dimensiones pueden cambiar a lo largo del tiempo.
• Por ejemplo:
▫ Reorganización de las zonas de la Fuerza de Venta
▫ El CP 24829 era de la zona A1 pero a partir del 1ro de Enero del 2012 paso a ser de la zona D3
Dimensiones Cambiantes
• Tres formas para tratar estos casos:1. Sobrescribir el valor original: Muy simple
Ahora todas las ventas del CP 24829 pasan a ser de la zona D3, sin importar la fecha
2. Agregar una fila de dimensión agregando una clave:
Preserva la historia
1. Agregar una columna a la dimensión:
Permite la comparación
ID CP Zona
123 24829 A1
124 24829 D3
CP Zona ZonaAnt
24829 D3 A1
Referencias Circulares
• Cada vez que detectemos una área en el visor de tablas, nos encontraremos con una referencia circular.
Referencias Circulares
• Las referencias circulares son comunes en QlikView porque solo tenemos una forma de unir las tablas en cada archivo.
• Cuando exista una referencia circular lo mejor es eliminar la relación que menos afecte al resultado final.
• De no ser posible la eliminación de la relación, debemos recurrir a la concatenación de las tablas o a una tabla de relaciones.
Tablas de Relaciones
• Las tablas de relaciones permiten esencialmente unir dos o mas tablas de hechos con un conjunto de dimensionesen común, evitando asi las relaciones circulares.
Tablas de Relaciones
Preguntas?
Muchas Gracias!