Analysis Services Tabular Mode contra Multidimensional Mode
Una nueva característica en SQL Server 2012 son los modelos tabulares de Analysis Services, y después de toparme con algunas sorpresas al preparar una demo para un evento reciente decidí terminar unas pruebas y comparar el performance de los modelos tabulares vs los modelos multidimensionales.
Antes que nada, ¿Qué es Analysis Services Tabular Mode?. SQL Server incluye no solo el motor relacional sino que también incluye un motor analítico. Antes de SQL Server 2012, había solo una clase de base de datos analítica en SQL Server (las bases de datos multidimensional o simplemente cubos). En SQL Server 2012 tenemos una nueva clase de base de datos analítica, Analysis Services en modo tabular, el objetivo es similar a las bases de datos multidimensionales, ser capaz de responder preguntas complejas acerca de la información (queries) tan rápido como sea posible, sin embargo, la arquitectura y lenguaje usados varían. En bases de datos tabulares el lenguaje utilizado es DAX en lugar de MDX y la arquitectura de modo tabular está basada en tener toda la información comprimida en memoria organizada en modo tabular a diferencia de las base de datos multidimensionales que organizan la información en registros y utilizan agregaciones para mejorar el performance de los queries. El modo Tabular no requiere índices ni agregaciones gracias a ésta nueva arquitectura. Para más detalles del modo tabular pueden leer la presentación relacionada con el tema que pueden encontrar en https://blogs.technet.com/b/sql_pfe_latam/archive/2012/06/27/1-176-simposio-latinoamericano-de-sql-server.aspx
En éste escenario, los datos usados son aleatorios y el equipo es un Workstation con 16Gb de RAM (no precisamente un High End Server), sin embargo sirve para ilustrar que hay que tener cuidado antes de escoger tabular mode sin hacer las pruebas de concepto apropiadas.
Tabular mode tiene algunas ventajas sobre modelos multidimensionales pero también tiene algunas desventajas.
Tres de las ventajas más grandes de los modelos tabulares son:
- Son más fáciles y rápidos de crear
- Si ya tienes proyectos en PowerPivot es muy fácil evolucionarlos a TabularMode
- Puedes usar PowerView para consumir éstos modelos
Dentro de las desventajas se encuentran los resultados de las pruebas que hice y que muestro a continuación.
El escenario consiste de una base de datos de 16.4 GB con una tabla de hechos con 100 millones de registros que tiene menos de 10 columnas. El comparativo al cargar ésta información tanto a Tabular Mode como a multidimensional se muestra a continuación:
Característica |
Tabular |
Multidimensional |
Procesamiento |
Más de 9 horas |
20 minutos |
Consumo de memoria |
11 GB |
1 GB |
Tamaño aprox. BD |
4.5 GB |
8.4 GB |
Query 1 |
88 ms |
94 ms |
Query 2 |
334 ms |
62 ms |
Query 3 |
5033 ms |
920 ms |
Los resultados anteriores no significa que no deben usar Tabular Mode, pero si que deben hacer una evaluación antes de tomar una decisión, dependiendo del conjunto de datos, de la cantidad de dimensiones, de la complejidad de las métricas, etc, los resultados van a beneficiar más a un modelo que al otro.
Aquí muestro los print screens que reflejan los datos anteriores.
Tamaño base de datos relacional (no se usó compresión)
Tamaño de base de datos modo Tabular
Tamaño de Base de datos en modo multidimensional
Queries en modo tabular
Queries en modo multidimensional
“Las opiniones e ideas expresadas en este blog son las de los Autores y no necesariamente declaran o reflejan la opinión de Microsoft”
Este material tambien lo podras acceder en https://blogs.technet.com/b/sql_pfe_latam/
Comments
- Anonymous
August 22, 2012
Excelente analisis felicidades y gracias por la informacion