代码改变世界

Analysis Service Tabular Model #003 Multidimensional Model VS Tabular Model 我们该如何选择?

2013-05-29 16:00  BIWORK  阅读(1415)  评论(3编辑  收藏  举报

由于Multidimensional Model 和 Tabular Model 并不能互相转换, 所以在项目之初就应该要考虑好选择哪一种模型进行开发.

以下只是一些建议:

Licensing 许可和版本的限制

Analysis Service 2012 适用于 SQL Server Standard, SQL Server Business Intelligence 和 SQL Server Enterprise. 但是在 SQL Server Standard 版本中 Analysis Service 只包含了 Multidimensional Model, 并且不包含分区等特性. SQL Server Business Intelligence 版本包含了Multidimensional Model 和 Tabular Model, SQL Server Enterprise 也是如此. 所以如果预算有限并且也不需要考虑分区等特性, 那么就可以使用 SQL Server Standard 中的Multidimensional Model.

Upgrading from Previous Versions of Analysis Services 升级的问题

如果当前的项目已经是Multidimensional Model 并且开发者对于这一种模型也非常熟悉, 那么没有必要使用 Tabular Model.

Ease of Use 难易程度

如果在使用SQL Server 2012 以前开发者没有任何Multidimensional Model 或者 Tabular Model 的开发经验, 那么选择Tabular Model 无论在概念上还是使用难易程度上 Tabular Model 要更好一些.

Compatibility with Power Pivot 与Power Pivot 的兼容性问题

Tabular Model 和PowerPivot 在模型的设计上是一样的, 并且都可以使用DAX 语言. 并且PowerPivot 模型可以被一些工具生成 Tabular Model , 但是Tabular Model 确不能转换成 PowerPivot Model. 所以如果要使用 PowerPivot 来开发一些Self-Services BI 的话, 那完全可以使用Tabular Model.

Query Performance Characteristics 查询性能方面

两者查询性能相当, 但是Tabular Model 在某些面要方更好一些. 比如像Distinct Count Measures, 在Multidimensional Model中很明显是一个弱点, 但是在Tabular Model中表现的要非常好. 并且在查询大量行和低粒度方面的数据时, 在Tabular Model 中使用DAX 查询效率也明显的要比Multidimensional Model 中的 MDX 查询效率要高. 但是如果出现像多对多关系的这种查询, 就很难说哪种效率更好了.

Processing Performance Characteristics 处理性能方面

在Tabular Model 下处理大量的数据表的效率应该比在Multidimensional Model下处理相当的 Measure Group 要稍微低一些. 因为Tabular 没有并行处理表中分区的能力, 但是Multidimensional Model 确可以并行的处理同一个Measure Group的多个分区.

Tabular Model 在处理的过程中相对于 Multidimensional Model 还是有非常显著的特点. 首先, 在处理阶段Tabular Model没有聚合要处理. 第二, 处理某一个对表格模型中的其它表没有直接的影响. 但是Multidimensional Model 处理表的改动可能就需要处理所有涉及到的Fact和 Dimension.

Hardware Considerations 硬件考虑方面

两者对硬件的要求区别比较大, Multidimensional Model 主要消耗的是磁盘空间, 同时也需要一部分内存来缓存一些数据. Tabular Model 是 In-memory database, 因此对内存的需要会比较高, 而对磁盘空间的要求相对较低. 所以往往添加硬盘比较容易, 特别是数据量特别巨大的情况下, 使用Multidimensional Model 可以使用相对低廉的磁盘以获得更多的空间, 而不是耗费大量的内存来保存数据.

Client Tools 客户端工具

Multidimensional Model 和 Tabular Model 都支持MDX查询.

微软最新推荐的Power View可视化操作工具只支持 Tabular Model, 所以如果要使用Power View的话那么还是应该选择Tabular Model.


Feature Comparison 特性比较

有一些 Multidimensional Model 的特性在Tabular 中不存在:

  • Write back – 回写功能, 用户可以将一些修改后的值回写到Multidimensional database 中, 特别是财务领域中对于预算数据的操作会经常用到回写.
  • Translations – 翻译功能
  • Dimension security on measures – 允许用户访问某一个 measure 或者拒绝访问
  • Cell security – 单元格的访问, 实际上这个功能即使在Multidimensional Model 中使用的也比较少
  • Ragged hierarchies – 父子层次结构的使用在Tabular Model 中暂时不支持
  • Role-playing dimensions – 角色扮演维度. 与Tabular Model 中表与表之间的多个连接关系比较类似.
  • Scoped assignments and unary operators – 在MDX中使用到的高级计算特性, 但是在Tabular Model中这里没有对应的操作.

在Tabular Model 中部分实现的功能:

  • Parent/Child hierarchy support – Tabular Model 不支持这种父子关联关系, 也不支持在同一个表中自引用. 但是这个层次结构有时确实需要, 比如在公司的层次结构中就会使用到这种关系. Tabular Model 通过DAX函数比如像PATH 来解决这些问题, 但是在设计阶段要实现指出这种层次的深度.
  • Support for many-to-many relationship – 多对多的关系可能在Multidimensional Model 中经常使用到, 但是Tabular Model 不支持这种关系, 然而可以通过DAX来建立这种关系, 只是维护的成本会比较高.
  • Drill through – 钻取在Multidimensional Model 中很容易实现, 但是在Tabular Model 中实现起来却要困难一些, 要通过编辑XMLA 手工定义这个操作.

个人总结 - 感觉微软偏向 Tabular Model 要更多一些:

第一  Tabular Model 较之于 Multidimensional Model 使用起来要更加简单一些, 没有在Cube 设计中那么多复杂的过程.

第二  Self-Service BI 的市场将会越来越大, 微软也比较看重这一块市场, 所以推出了Power View 利器并且 Power View 目前只支持 Tabular Model.

第三  微软往往喜欢打破标准自建体系, 光有MDX还不够, DAX的支持不多, 因此更希望通过对DAX的支持扩大客户端工具的占用率, 这样一来用户如果选择了支持DAX的微软分析服务, 那么客户端工具的选择上就没有太多的选择了. Analysis Service 只是一个服务, 真正要卖的是 Office 这一系列客户端工具.

目前虽然有一些 Multidimensional Model 上的功能没有很好的嫁接过来, 但是不排除在后面的几个版本中陆续更新, 相信会做的更简单易用.


访问其它笔记 SQL Server 2012 Analysis Services Tabular Model 读书笔记