Tiempos de respuesta menores a un segundo con la nueva analítica en memoria de MicroStrategy 10 Fernando Gutiérrez-Cabello El alto rendimiento ya no es solo un plus en las aplicaciones analíticas Los usuarios esperan un rendimiento al nivel de Google de sus aplicaciones analíticas, especialmente en dispositivos móviles La explosión en volúmenes de datos y la variedad, exige consolidación y agregación en memoria Impulsores del gran rendimiento Las aplicaciones analíticas modernas contienen cientos de visualizaciones, distribuidas a miles de usuarios al día La caída drástica en el coste de la memoria, junto al procesamiento en paralelo, hacen posible un rendimiento económico 2 La nueva arquitectura en memoria de MicroStrategy combina 3 logros Almacenamiento de datos en memoria Procesamiento masivo en paralelo con hardware básico Analítica de anticipación: datos integrados y capas de visualización 3 Exploración interactiva de de terabytes por 100.000 de usuarios Cubos en memoria divididos en paralelo - PRIME • • 4 Paralelo Relacional In Memory Engine Escalabilidad lineal Esquema flexible De 3 a 10 veces más rápido De 7 a 20 veces más usuarios Exploración interactiva estrechamente vinculada Conexiones de datos en paralelo para una tasa de recuperación más alta. Renderización de visualizaciones en paralelo desde cubos en memoria. • Esquema de cubos mucho más flexible. • Capa en memoria muy mejorada. • Mejor gestión de memoria. • Acepta más de 2.000 millones (2B) de filas por cubo. Datos repartidos en múltiples trozos de 2B. • Motor en memoria estrechamente vinculado con motor de visualización. • Tiempos de respuesta muy rápidos. Los cubos divididos en paralelo coexisten con las bases de datos existentes • No sustituyen a las bases de datos. Cubos divididos en paralelo • Funcionan como capa de datos «caliente» para aplicaciones que requieren un gran rendimiento. • Acuden a las bases de datos para ofrecer más detalle. • Se cargan desde las bases de datos ,archivos y Hadoop. DATOS ORIGEN Procesamiento masivo en paralelo con hardware básico Ejecución en paralelo con MSTR 10 BI tradicional Motores de consulta Cuello de botella Memoria compartida Ejecución en paralelo Datos distribuidos Memoria Memoria • Ejecución y carga de consultas en paralelo • Hardware básico y económico Memoria Interacciones más rápidas: datos y capa de visualización integrada BI tradicional Capa de visualización Escasamente vinculado Capa de datos Motor de visualización ligado al dato La capa analítica optimiza las consultas para datos La capa de datos analiza el panel de indicadores y optimiza las estructuras Capa de visualización Capa de datos • La capa de datos no entiende el diseño de la capa analítica • Las capas muy integradas permiten la optimización • Conexiones optimizadas para el mínimo común denominador • La capa analítica optimiza globalmente las consultas enviadas a datos según estructuras de datos • La capa de datos se anticipa y planifica según el conocimiento del panel de indicadores Carga de datos más rápida con cubos en memoria divididos en paralelo Los cubos inteligentes se toman mucho tiempo porque la recuperación de datos ODBC (utilizando un solo hilo) es lenta. Cuello de botella API VISUALIZACIÓN Motores de aplicación Ajuste el número de conexiones a través de VLDB: el valor predeterminado es 2. Motores de analíticaMotores de analítica DATOS DATOSDATOS DATOS … 8 Ahora los datos se pueden cargar en paralelo, lo que permite una publicación de cubos más rápida. … DATOS Capacidades analíticas más amplias con cubos en memoria divididos en paralelo Cuello de botella Los set de datos estaban limitados a analíticas de un solo paso La división en paralelo es compatible con la generación de CSI de multipaso para admitir una amplia gama de analítica y estar a la par con el motor SQL. La analítica de multipaso incluirá la compatibilidad con cualificaciones métricas, filtros de relación, etc. 9 Volúmenes de datos más grandes con cubos en memoria divididos en paralelo Cuello de botella Limitación de datos de 2.000 millones (2B) de filas por cubo. Superar la limitación de 2B de filas al poder dividir datos en varios núcleos de una CPU y poder dividir los datos dentro del cubo en múltiples trozos de 2B. Aprovechar núcleos existentes de una CPU con mayor eficiencia. 9.4.1 MSTR 10 Cubo dividido en paralelo 2B Cubo OLAP 2B 2B …. 2B ……………. DATOS Núcleo 1 Núcleo 2 Núcleo 3 DATOS …....…. Núcleo 16 CPU de 16 núcleos 10 Núcleo 1 DATOS Núcleo 2 DATOS Núcleo 3 ….…... ………. DATOS Núcleo 16 CPU de 16 núcleos Servicios OLAP en memoria y cubos en memoria divididos en paralelo Acceda a la base de datos con una mayor producción Crear y publicar el cubo con una mayor escalabilidad de datos Analizar los datos con un tiempo de respuesta menor 9.4.1: Servicios OLAP Datos: 5M de filas Tasa de recuperación: 5.074 kB/seg. 9.4.1: Servicios OLAP Datos: 2,35B de filas Fallo por el límite de filas de 2.000 millones. 9.4.1: Servicios OLAP Datos: 8M de filas 11 Tiempo de respuesta: 0:06:33 MSTR 10: Carga de 8 hilos en paralelo Datos: 5M de filas Tasa de recuperación: 22.454 kB/seg. MSTR 10: División en 8 hilos Datos: 2,35B de filas Tiempo de publicación: 5:14:23 Tamaño del cubo: 265 GB Tiempo de respuesta: 0:04:25 Cargue datos 4 veces más rápido Aumente la escalabilidad de datos hasta 80 veces Interacciones de datos 50% más rápidas MSTR 10: Acceso de 8 hilos en paralelo Datos: 8M de filas Servicios OLAP en memoria y cubos en memoria divididos en paralelo 12 0 1 2 3 4 5 0 5 10 15 Potencia de salida (kilociclos) Cubo MSTR 10 con 8 divisiones en Linux con 8 núcleos Cubo MSTR 10 con 1 divisiones en Linux con 8 núcleos Cubo MSTR 10 sin divisiones en Linux con 8 núcleos Cubo MSTR 9.4.1 Tiempo de respuesta promedio (seg.) Tiempo de respuesta promedio (seg.) El cubo no dividido en paralelo presenta una capacidad un 20% mayor que los servicios OLAP 1 2 3 4 5 6 7 0 5 Potencia de salida (kilociclos) 10 Cubo MSTR 10 con 8 divisiones en Win64 con 8 núcleos Cubo MSTR 10 con 1 divisiones en Win64 con 8 núcleos Cubo MSTR 10 sin divisiones en Win64 con 8 núcleos Cubo MSTR 9.4.1 Servicios OLAP en memoria y cubos en memoria divididos en paralelo 490 30 390 Tiempo de respuesta (seg.) Tiempo de respuesta (seg.) 35 25 290 20 15 190 10 5 0 -10 R1 R3 R5 R7 R9 R11 R13 R15 R17 R19 R21 R23 R25 Informes del cliente A Cubo 9.4.1 Cubo MSTR10 sin divisiones Cubo MSTR10 con 32 divisiones • • 13 90 R1 R3 R5 R7 R9 R11 R13 R15 R17 R19 R21 R23 R25 R27 R29 Informes del cliente B Cubo 9.4.1 Cubo MSTR10 sin divisiones Cubo MSTR10 con 32 divisiones El cubo en memoria dividido presenta un aumento significativo del rendimiento en casi todos los casos, tanto para el cliente A como para el B. Los cubos sin divisiones y OLAP presentan prácticamente el mismo tiempo de respuesta.