Microsoft Premier Support (PFE) Latin America

Este Blog está dedicado a todo aquel interesado en tecnología Microsoft, y con deseos de aprender de la experiencia y vivencias de los PFES de Latinoamerica y del grupo de Incubation Support & Services (ISS)

July, 2012

  • Analysis Services Tabular Mode vs Multidimensional Mode

    A new feature in SQL Server 2012 is the tabular models in Analysis Services, and after facing some issues when I was preparing a demo for a recent event I decided to finish some tests to compare the performance of Tabular Models vs multidimensional models.

    First, what it is Analysis Services Tabular Mode. SQL Server includes not only the relation engine but also the analytical engine. Prior to SQL Server 2012, there was only one kind of analytical database in SQL Server (multidimensional database or cubes), now in SQL Server 2012 we have a new kind of analytical database engine, Analysis Services in tabular mode, the objective is similar to the multidimensional database, be able to answer questions about the data as fast as possible, however, the internal architecture and the language used (DAX instead of MDX) are different. Analysis Services in tabular mode holds all the information in memory in columnar storage (instead of the classic row based storage), this significantly improves query performance without requiring indexes or aggregations. For more details about tabular mode you can read the related ppt that you can found in http://blogs.technet.com/b/sql_pfe_latam/archive/2012/06/27/1-176-simposio-latinoamericano-de-sql-server.aspx        

    In these scenarios, the data used was random and I run this test on a 16GB of RAM Laptop (not a high end Server), however it is useful to illustrate that we need to be careful before choosing one modelo r the other doing the appropriate proof of concepts.

    Tabular mode has some advantages over multidimensional but it also has disadvantages.

    Some of the advantages of tabular models are:

    -          They are easier and faster to develop.

    -          If you already have PowerPivot models in production is very easy to evolve these models to tabular models.

    -          You can use PowerView on tabular models.

    Some disadvantages can be seen in the results of my tests. The scenario consists of a 16.4 GB relational database with data compression containing 100 million rows with less than 10 columns. Here is some data about the size and behavior on both tabular models and multidimensional models on this database.

    Característica

    Tabular

    Multidimensional

    Processing time

    More than 9 hours

    20 minutes

    Memory consumption

    11 GB

    1 GB

    Database Size

    4.5 GB

    8.4 GB

    Query 1

    88 ms

    94 ms

    Query 2

    334 ms

    62 ms

    Query 3

    5033 ms

    920 ms

    The previous results don’t mean that you shouldn’t use tabular mode, but should evaluate if it is your best option. Depending on the data, the amount of dimensions, the complexity of measures, etc., the results can change.

    Here are the print screens of the previous tests.

    The relational database size (no data compression)

    Tabular Mode Database size

    Multidimensional Database Size

    Queries response time in Tabular mode

    Queries response time in multidimensional mode

     

    “The opinions and views expressed in this blog are those of the author and do not necessarily state or reflect those of Microsoft”

  • 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 http://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 http://blogs.technet.com/b/sql_pfe_latam/