Download José Mayorga Vindas, Mag.

Document related concepts
no text concepts found
Transcript
José Mayorga Vindas, Mag.
Muldimenional Data Base
Design by means of BISM
Tabular Models
SQLMelody@gmail.com
http://sqlmelody.blogspot.ca/
@SQLMelody
ca.linkedin.com/in/melodyzacharias
José Mayorga Vindas, Mag.
• Master Computación ITCR / Economista UCR
• Microsoft Certified Professional
• Consultor con más de 15 años de experiencia implementación de
sistemas de Data Warehouse / Business Intelligence en Latinoamérica
(Microsoft, Softtek, McKinsey and Company, …)
• Jefe de desarrollo y Gerente de Sistemas en Instituciones Financieras
• Profesor de Postgrado en Data Warehouse / Business Intelligence
Universidad Cenfotec
• Actualmente es Data Specialist de Periscope - McKinsey and Company
José Mayorga V., Mag., 2015
Sponsors
Diamond
Silver
Bronze
Raffle
José Mayorga V., Mag., 2015
Modelo de Base de Datos
Multidimensional
Esquemas de Bases de Datos de
Estrellas
José Mayorga V., Mag., 2015
Tablas en Estrellas
Tablas de Hechos - mediciones
Cantidad unidades vendidas
Tablas de Dimensiones - categorías
Monto de las ventas
El Tiempo
Costo de las unidades
Catálogos de Productos
Saldos de Cuentas bancarias
Catálogo de Clientes
Promedios ponderados
Listas Empleados
Datos Geográficos
José Mayorga V., Mag., 2015
Modelo de Base de Datos
Multidimensional
Tablas de Dimensión
José Mayorga V., Mag., 2015
Tablas de Dimensiones
3 tipos de campos:
• llave primaria
• niveles de jerarquías
• campos de atributos
Recomendación:
• Las llaves primarias deben ser enteros, no se recomienda utilizar llaves del OLTP
• 1 nivel de 1 jerarquía equivale a 1 campo de la tabla
• Datos almacenados en los campos son miembros
Una tabla puede tener mas de una dimensión
Los atributos son datos adicionales
José Mayorga V., Mag., 2015
Tipos de Dimensiones
Fechas
• Año, Trimestre, Mes, Día
Des-normalizadas vs. Snowflakes
• Varias tablas relacionadas entre si
• Semi-normalizadas
Recursivas (parent-child)
José Mayorga V., Mag., 2015
Dimensiones de Tiempo – 2 Jeraquías
2 Jerarquías
Fecha de Entrega
…
José Mayorga V., Mag., 2015
Año
• Semestre
• Trimestre
• Mes
• Día
• Semana
• Día
Fecha Corte 2
Fecha de Compra/Venta
Fecha Corte 1
Fecha Corte (fecha de la foto)
Año
Modelo de Base de Datos
Multidimensional
Tablas de Hechos
José Mayorga V., Mag., 2015
Tabla de hechos con tres dimensiones de
tiempo
TD_Cliente
PK
TH_Ventas
PK_Cliente
NumeroIdentificacion
Nombre
Apellido1
Apellido2
TipoCliente
TD_Fechas
PK
PK_Fecha
Fecha
Año
Mes
José Mayorga V., Mag., 2015
PK,FK2
PK,FK3
PK,FK1
PK,FK4
PK,FK5
PK
PK
PK
PK_Cliente
PK_FechaCorte
PK_FechaVenta
PK_FechaEntrega
PK_Distrito
PK_TipoProducto
PK_Producto
PK_FormaPago
MontoVenta
CantidadUnidades
CostoVenta
ImpuestoVenta
Descuento
TD_Geografica
PK
PK_Distrito
PK_Canton
PK_Provincia
Distrito
Canton
Provincia
Snow Flake vs Esquema Desnormalizado
33
+
Provincia
Cantón
Distrito
José Mayorga V., Mag., 2015
125
Provincia
Cantón
Tabla de
Hechos de
Ventas
Distrito
Snow Flake no preserva historia
La Dimensión desnormalidaza preserva historia
+
75
Snow-Flake
= 233 regs
x 33 regs
x 125 regs
x 75 regs
= 309.375 regs
Desnormalizado
Estrella con Dimensión Snow-Flake
TD_Cliente
PK
TD_Distrito
PK_Cliente
TH_Ventas
NumeroIdentificacion
Nombre
Apellido1
Apellido2
TipoCliente
TD_Fechas
PK
PK_Fecha
Fecha
Año
Mes
PK,FK1
PK,FK2
PK,FK3
PK
PK
PK
PK_Fecha
PK_Cliente
PK_Distrito
PK_Producto
PK_TipoProducto
PK_FormaPago
MontoVenta
CantidadUnidades
CostoVenta
ImpuestoVenta
Descuento
PK
PK_Distrito
FK1
Distrito
PK_Canton
TD_Canton
PK
PK_Canton
FK1
Canton
PK_Provincia
TD_Provincia
PK
PK_Provincia
Provincia
José Mayorga V., Mag., 2015
Tabla de hechos con tres dimensiones de
tiempo
TD_Cliente
PK
TH_Ventas
PK_Cliente
NumeroIdentificacion
Nombre
Apellido1
Apellido2
TipoCliente
TD_Fechas
PK
PK_Fecha
Fecha
Año
Mes
José Mayorga V., Mag., 2015
PK,FK2
PK,FK3
PK,FK1
PK,FK4
PK,FK5
PK
PK
PK
PK_Cliente
PK_FechaCorte
PK_FechaVenta
PK_FechaEntrega
PK_Distrito
PK_TipoProducto
PK_Producto
PK_FormaPago
MontoVenta
CantidadUnidades
CostoVenta
ImpuestoVenta
Descuento
TD_Geografica
PK
PK_Distrito
PK_Canton
PK_Provincia
Distrito
Canton
Provincia
Modelo de Base de Datos
Multidimensional
Aditividad y granularidad
José Mayorga V., Mag., 2015
José Mayorga V., Mag., 2015
Tablas de Hechos - Aditividad
Capacidad para resumir mediciones por medio de agregaciones (Sum,
Count, Min, Max, …)
Aditivas: permiten
cualquier agregación
Semi-aditivas: son limitadas
No Aditivas: no se pueden
agregar
Cantidad de unidades
Saldos de Cuentas Bancarias
Porcentajes
Monto de retiros de cuentas
Acumulación de cuentas contables
Razones
Cantidad de retiros
José Mayorga V., Mag., 2015
Tasas de crecimiento
Tablas de Hechos - Granularidad
• Nivel de Granularidad
Nivel de detalle mínimo de los hechos
Todas las mediciones deben estar al
mismo nivel de granularidad
Definido por el nivel mínimo de detalles
de las dimensiones en su conjunto, o sea,
los mínimos niveles de las jerarquías
José Mayorga V., Mag., 2015
• Ej.: Granularidad de la Tabla de
Hechos de Ventas:
Ventas por:
•
•
•
•
Día
Vendedor
Producto
Cliente
 No existen las ventas por hora
 No es posible desagregar los datos
más allá de la granularidad ´”mínima”
The BISM Tabular Model
Modelos de Bases de Datos
Tabulares, Analysis Services 2014
José Mayorga V., Mag., 2015
El Modelo BISM y el motor VertiPacq
BISM: Business Intelligence Semantic Model
Paradigma de Bases de Datos Analíticas Tabulares
X-Velocity In-Memory Analytic engine = VertiPaq Engine
Este es un caso de una Base de Datos Columnar
• Columnas en vez de tablas
• Altos niveles de indexación
• Algoritmos de compresión avanzados
José Mayorga V., Mag., 2015
Arquitectura del Modelo BISM
• Para Tabulares, SSAS reutiliza casi toda la
infraestructura requerida para los modelos
Multidimensionales. Los motores de formulas y
queries se comparten, solo se require otro motor de
base de datos.
• Para el cliente es transparente si las conexiones son a
un Multidimencional o a un Tabular
• Los comandos desde las interfases (XMLA Listener,
HTTP pump, llamadas API con ADOMD.NET, etc.)
funcionan en términos de un modelo tradicional
Multidimensional (UDM), el servidor ejecutará esos
commandos vs. el motor de base de dats utilizado.
Compresión
Columnas
José Mayorga V., Mag., 2015
Modelo Columnar
• Dictionaries: definición de los
distintos valores de las columnas,
utiliza internamente un entero
para cada valor distinto
• Column segments: incluye un
índice que identifica los valores
por línea
• Segments en las particiones.
Cada partición tiene 1+
segmentos de columna. Por
defecto cada segmento contiene
8 millones de registros
• Columnas calculadas se
materializan al procesar, se
almacenan físicamente.
• Jeraquías para cada columna y
para cada Jerarquía multi-nivel.
• Relationships representan llaves
externas
Tabular vs Multidimensional
Un catalogo (database) = un modelo. Multidimensionales tienen múltiples cubos. Tabulares tiene un
solo modelo, pero puede tener varias perspectivas.
Tecnología In-memory : El motor de almacenamiento del Tabular utliliza la data en memoria, ésta
persiste en disco, y se carga en memoria al reiniciar el servicio. MOLAP almacena grandes volumenes de
datos en disco, está diseñado para pre-agregar y extraer esta data de manera eficiente.
No hay agregaciones, el Tabular se basa en almacenamiento columnar, el Multidimensional pre-agrega
mediciones
Ambos modelos son descritos por medio de metadata en XML para Anaysis Sercives (XMLA), el lenguaje
de metadata es compartido por ambos modelos
Performance MOLAP vs Tabular
Server
Scenario
Approximate Query
Performance
Multidimensional
If query hits an aggregation
~ seconds
Multidimensional
If query misses aggregations but the fact data is cached
in memory in the file system cache
~ minute
Multidimensional
If query misses aggregations and no fact data is cached in ~ minutes
memory in the file system cache
Tabular


~ milliseconds
Commodity laptop hardware can service VertiPaq scans at 5 billion rows per second or more and
can store in memory billions of rows.
Commodity server hardware tests have shown VertiPaq scan rates of 20 billion rows per second
or more, with the ability to store tens of billions of rows in memory.
Procesamiento de Consultas en Tabulares
Conexiones
del Tabular
Conexión a la base
de datos de final
Conexión a la fuente de datos
Conexión al
Workspace
José Mayorga V., Mag., 2015
Agregando nuevas tablas al modelo tabular
José Mayorga V., Mag., 2015
Relaciones principales y secundarias
José Mayorga V., Mag., 2015
Campos calculados por medio de DAX
José Mayorga V., Mag., 2015
Medición
programada por
medio de DAX
Deployment del modelo tabular
José Mayorga V., Mag., 2015
Aspectos a considerar en los Modelos
Tabulares
Tecnología relativamente nueva (p. Microsoft). Por lo tanto Best Practices apenas están creándose
Relativamente simples y rápidas de construir e implementar (hacer deployment)
En general tienen ventajas de rendimiento sobre BD Multidimensionales y Relacionales. Hay que
tener cuidado con volúmenes de datos crecientes, abusos metodológicos e infraestrctura no
óptima
Se pueden exportar a Power BI (Power Pivot)
DAX no es “nativo en SSRS”, pero se puede utilizar MDX
José Mayorga V., Mag., 2015
Ventajas y desventajas
Ventajas
• No require mayor manipulación para tener buen
rendimiento. Buen rendimiento sin tunning avanzado
• Sistema optimizado para buen rendimiento de
lectura, no de escritura
• Experiencia de modelado rápida e iterativa. Se
pueden hacer cambios en “caliente” si re-procesar
Desventajas
• Menos opciones de personalización que MOLAP
• Cargar nuevos datos en el modelo puede ser lento,
sobre todo si la base de datos es grande
• DAX no es “connatural” para SSRS
• Hay pocas herramientas para edición y pruebas con
DAX
José Mayorga V., Mag., 2015
Referencias
• SQL Server 2012 Analysis Services – The BISM Tabular Model. Marco Russo,
Alberto Ferrari, Chris Webb. Microsoft Press, 2012
• DAX Paterns. Marco Russo, Alberto Ferrari. SQLBI, 2015
• SQL Server Technical Article: Performance Tuning of Tabular Models in SQL Server
2012 Analysis Services. John Sirmon, Greg Galloway, Cindy Gross, Karan Gulati.
2013
http://download.microsoft.com/download/D/2/0/D20E1C5F-72EA-4505-9F26FEF9550EFD44/Performance%20Tuning%20of%20Tabular%20Models%20in%20S
QL%20Server%202012%20Analysis%20Services.docx
• SQL Server Technical Article: Hardware Sizing a Tabular Solution (SQL Server
Analysis Services). John Sirmon, Heidi Steen. 2013
http://download.microsoft.com/download/D/2/0/D20E1C5F-72EA-4505-9F26FEF9550EFD44/SSAS_HardwareSizingTabularSolutions.docx
Muchas Gracias
SQLMelody@gmail.com
http://sqlmelody.blogspot.ca/
@SQLMelody
José Mayorga V., Mag.,
2015
ca.linkedin.com/in/melodyzacharias