Analysis Services Tabular Mode vs 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