Cada vez más observamos la creciente necesidad de tomar decisiones en tiempo real. Nuestro negocio esta vivo y el tomar decisiones cuanto antes nos puede suponer una ventaja competitiva respecto al resto.
Durante la siguiente sesión vamos a explorar todas las mejoras que trae SQL Server 2014 y que podemos aprovechar para dar un empujón de velocidad a nuestro sistema de BI.
2. Nuevos escenarios BI gracias
a SQL Server 2014
Rubén Pertusa López (rpertusa@solidq.com)
Data Platform Architect – SolidQ , MAP, MCSA
@rpertusa
Miguel Egea(megea@solidq.com)
Mentor – SolidQ , MVP, MCSE
@miguelEgea
3. Objetivos de la charla
3
• Repasar las diferentes novedades de SQL Server 2014 y
ver escenarios donde aplicarlas en nuestras arquitecturas
BI
• Dar nuevos usos a técnicas tradicionales del mundo BI
gracias a SQL Server 2014
4. Agenda
4
• ¿ Novedades en SQL Server 2014 Business Intelligence ?
• DAXMD
• Escenarios de integración de datos
• Escenarios de análisis de datos en tiempo real
• Conclusiones y Preguntas
5. Novedades para BI
5
Nosotros también tenemos novedades!
• Directas
‐ DAXMD
• Indirectas… (todo relacional )
‐ InMemory OLTP
‐ Indices columnares
‐ Transacciones diferidas, Escenarios Híbridos, etc
7. De SSAS 2012 a SSAS
2014
7
Multidimensional
Excel, SSRS, PPS, etc.
Bases de datos LOB Aplicaciones Archivos OData Feeds
Tabular
Analysis Services
Origenes de datos
Herramientas
cliente
Power View
MDX DAX
8. Power View (SSRS)
soporta Metadata
CSDL v1
Primer release final de
DAXMD v1
La historia completa de DAXMD
Versión Preview del
motor DAXMD
20122008 R2
Power View (SSRS)
soporta nueva
Metadata
Cambios en la sintaxis
Motor DAXMD en
Formula Engine RTM
2014 RTM
DAXMD
Preview
2012 SP1
CU4
9. DAXMD llega a SSAS Multi
RTM
9
Analysis Services
Arquitectura interna Motor de consultas
Motor de almacenamiento
Soporte MDX Soporte DAX
Consulta MDX Consulta DAX
MOLAP ROLAP
10. Algunas consideraciones…
10
• Mejores tiempos de consulta en informes de detalle con
consultas DAX
• Menor complejidad que las consultas MDX
• Soportado
‐ Soporta propiedades avanzadas de Reporting
‐ SCOPEs, Métricas, Time intelligence, Jerarquías…
• No soportado
‐ Seguridad a nivel de celda
‐ Algunas funciones DAX, Algunos formatos, Acciones…
11. Correspondencia
Multidimensional - Tabular
11
Objetivo Multidimensional Objeto correspondiente en Tabular
Cubo Modelo
Dimensión Tabla
Atributos (Claves y Nombres) Columnas
Grupo de Medidas Tabla
Medida Medida
Medida calculada Medida en una tabla “Measures”
Relación entre Grupo de Medidas -> Dimension Relación entre tablas
Perspectiva Perspectiva
KPI KPI
Jerarquías de Usuario o Padre-Hijo Jerarquías
14. Novedades SQL 2014 aplicables
14
• Nuevo motor In-Memory OLTP (a.k.a. Hekaton)
‐ Tablas en memoria SCHEMA_ONLY y
SCHEMA_DATA
‐ Nuevas estructuras de datos latch-free
‐ Procedimientos almacenados compilados
• Transacciones diferidas
• Índices columnares clustered
15. El tiempo real en BI
15
BI en tiempo real es el proceso de entregar la información sobre operaciones de
negocio a medida que ocurren. Tiempo real significa latencia cercana a cero y
acceso a la información siempre que sea requerido.
Real Time Business Intelligence for the Adaptive Enterprise
Azvine, B. ; Cui, Z. ; Nauck, D.D. ; Majeed, B.
3rd IEEE International Conference on Enterprise Computing,
E-Commerce and E-Services (EEE 2006)
16. El tiempo real en BI
Dos variables
• Latencia
• Tiempo de consulta
DatoDisponible
Paraconsulta
Latencia
Tiempo de
Consulta
17. Proceso de nuevos datos
17
DB DW Cubo
Carga
Inc.
DataQuality
Procesado
Recons.
Índices
Recons.
Índices
ModeladoETL
Latencia T. Consulta
Usuario
Nuevos
Datos
Datos
Disponibles
30 min 1 min 15 min1 min 10 seg
Bloqueos
I/O
Red
Staging
Validar
Carga
Total
18. Tiempo real en ETL
18
Objetivo:
Reducción de la
latencia en la carga de
datos
Optimizaciones
Staging
• Entrada / Salida (IO)
• Eliminar bloqueos
Datos
carga ETL
Staging
SCHEMA_ONLY
Data WareHouse
Transformaciones
nativamente compiladas
21. Tiempo real en SSAS
Objetivo:
Reducción de la latencia
del dato +
Tiempo de consulta óptimo
Optimizaciones SSAS
• Particiones ROLAP/DirectQuery
• Indices Columnares Clustered
• Estrategia de particiones
DW CuboProcesado
Usuario
Datos
Disponibles
22. Cuidado con la cache
Multidimensional
22
Analysis Services
Arquitectura interna Motor de consultas
Motor de almacenamiento
Soporte MDX Soporte DAX
Consulta MDX Consulta DAX
MOLAP ROLAP
Caché
Caché
23. Aprovechando la cache SSAS Multi
23
• Definir la propiedad SLICE
• Deshabilitando la cache SIEMPRE
‐ Propiedad “Real Time Olap=True” en la CS
• Deshabilitando la cache cuando se actualiza el origen
‐ Caché Proactiva ROLAP
24.
25. ¿Mejoras en funciones
MDX?
25
El caso del Distinct Count
• Calculo complejo para el motor analítico
Propiedad “EnableRolapDistinctCountOnDataSource”
• Novedad en SSAS 2012
• Una sola partición ROLAP
• Origen SQL Server
Hay dos puntos fundamentales para conseguir mejorar los tiempos de latencia: Mejorar el sistema de entrada y salida (mejor dispositivo de almacenamiento y mejor sistema de obtención de datos – procedimientos almacenados nativamente compilados- )Reducir el latching (protección de datos mientras se está escribiendo) para poder insertar en paralelo y aumentar la ratio de filas insertadas/segundoAdemás, usando transformaciones dentro de procedimientos nativamente compilados reducimos la carga de procesador y aceleramos el proceso de ciertas fases muy comunes en cargas incrementales de DWH (Agregados, filtrados, ordenaciones, etc.)
Mismo escenario (origen rápido -> tabla intermedia -> output a tabla final) Volcado incremental a la tabla DW con SSIS y con SP compilado, comparar rendimiento.Limitaciones de In-Memory OLTP: Nos quedamos sin memoria Purgador de datos, va volcando los top N a tabla en discoCon schemaonly el dato se volatiliza cuando se cae el servicio o reiniciamos (pero si solo queremos la tabla para staging, nos vale
IO mejorada: al no tocar disco ni para hacer logging de las inserciones optimizamos muchísimo el throughputSin bloqueos podemos aumentar la concurrencia al insertar aumentando el ratio de filas / segundo y no tener miedo a leer mientras seguimos insertando (acercarnos al real time OLAP)Si las transformaciones que en SSIS penalizarían mucho el rendimiento (bloqueantes) las hacemos ya en memoria y además con procedimientos nativamente compilados ganamos en el proceso de ETL propiamente dichoHay que tener en cuenta las restricciones de memoria, pero no más que si hablamos de un proceso ETL con SSIS, por ejemplo, que también puede fallar o ralentizarse muchísimo por falta de memoria.