Which model should you use, Multidimensional vs Tabular?
Well, there is no clear-cut answer, but there are some factors that can make you choose one over the other:
- If you want to use DAX, you have to use Tabular
- If you want to use Power View, you have to use Tabular
- If your dataset is extremely large, go with Multidimensional
- If you need writeback support, you have to use Multidimensional
- If you need access to many different external data sources, choose Tabular
- If you need complex calculations, scoping, and named sets, choose Multidimensional
- If you need extreme speed and consistently fast query time, choose Tabular
- If you need Many-to-Many relationships, choose Multidimensional (can be done in Tabular but difficult)
- If your solution requires complex modeling, choose Multidimensional
- If you need any of the following features, you must use Multidimensional: Actions, Custom Assemblies, Custom Rollups, Custom Drillthrough Actions (but BIDS Helper adds support for actions in a PivotTable in Excel but not in PerformancePoint), Linked objects, or Translations.
I would recommend going with Tabular if possible, as it is better to use for these reasons:
It uses your existing relational model, so there is usually no need to create a star schema (which usually means using ETL to create new dimension and fact tables in a Data Mart or Data Warehouse). Complex DAX may require a star schema
It uses DAX, which is much easier to use than MDX, and least for the basics (but mastering DAX and optimizing DAX is hard)
It uses xVelocity/Vertipaq, which is much faster than Multidimensional
It is faster to develop
It’s less expensive to use in terms of time, resources and skill requirement
You can extend the data model without reprocessing the whole database by using calculated columns. Instead it requires a much faster “Process Recalc”
In situations where a multidimensional model requires the use of snapshots (i.e. quantity totals by day), tabular is better because it can avoid snapshots by making up-to-date calculations at query time (thanks to its speed because the data is in memory)
In situations where a multidimensional model requires a distinct count (i.e. how many new distinct customers this month), tabular is better because it stores data in a way that discount count is very fast (writing a measure vs changing the data model and reprocessing the data)
Keep in mind the option on creating both types of models against the same data warehouse. Say you built a multidimensional model before tabular was released, but now want to use Power View. You can always just build a tabular cube to allow for the use of Power View. Also note that Tabular will only work if there is sufficient memory for the entire cube in memory, otherwise you won’t be able to open the database.
You can also use the tabular model to prototype in since it’s so much easier and quicker to use, and then decide later whether to convert it to a full-blown multidimensional model. And because of its ease of use, the tabular model could also be used by power business users to prototype a cube in, and then later IT can take that model and enhance it in tabular or convert it to multidimensional (self-service BI at it’s best).