【转载】Analysis Service Tabular Model #003 Multidimensional Model VS Tabular Model 我们该如何选择?
由于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 上的功能没有很好的嫁接过来, 但是不排除在后面的几个版本中陆续更新, 相信会做的更简单易用.
【转载】Analysis Service Tabular Model #003 Multidimensional Model VS Tabular Model 我们该如何选择?的更多相关文章
- 【转载】Analysis Service Tabular Model #002 Analysis services 的结构:一种产品 两个模型
Analysis Service 2012 Architecture – One Product, Two Models 在之前SQL Server 2008 R2 版本中的分析服务实际上只有一个版本 ...
- 修改 Analysis Service 服务器模式
原网址:http://cathydumas.com/2012/04/23/changing-an-analysis-services-instance-to-tabular-mode/ Say you ...
- (转)Qt Model/View 学习笔记 (二)——Qt Model/View模式举例
Qt Model/View模式举例 Qt提供了两个标准的models:QStandardItemModel和QDirModel.QStandardItemModel是一个多用途的model,可用于表示 ...
- (转)Qt Model/View 学习笔记 (一)——Qt Model/View模式简介
Qt Model/View模式简介 Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系.这种结构带来的 功能上的分离给了开发人员更大的弹性来定制数据项 ...
- http 连接 analysis service (ssas)
当数据仓库搭建好后,我们就可以通过sqlserver的管理工具查看服务器上的数据集了.但是这样挺不方便的,如果要远程访问,那么就可以通过http来连接数据仓库.要配置数据仓库http连接非常的简单.如 ...
- Sql Server Analysis Service 处理时找到重复的属性键、找不到属性键错误(转载)
这是两个非常常见的SSAS处理异常,网上也能找到很多文章讲解决办法,但很少见关于异常原因的分析,先来看看第一个" OLAP 存储引擎中存在错误: 处理时找到重复的属性键",一个维度 ...
- Sql Server Analysis Service 转换为UnknownMember的正确设置 (转载)
转载: http://www.cnblogs.com/OpenCoder/p/4754447.html#commentform 在SSAS中事实表数据被归类到为UnknownMember 的时候分为两 ...
- 转载:Service Mesh:重塑微服务市场--敖小剑
转载地址:https://skyao.io/talk/201805-service-mesh-rebuild-microservice-market/ 重点: 不要太过关注 Service Mesh ...
- Regularization: how complicated the model is? Regularization, measures complexity of model 使预测准确、平稳 predictive stable
http://www.kdd.org/kdd2016/papers/files/rfp0697-chenAemb.pdf https://homes.cs.washington.edu/~tqchen ...
随机推荐
- android studio升级方法
android studio 更新问题: 如果被墙则采用以下步骤: 一:看版本 help-->about AI***************** 二:查看android studio最新版 ...
- xshell上传下载文件(Windows、Linux)
经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下:之前我的做法现在看来好笨好繁琐,不过也达到了目的,笨人有本方法 ...
- Qt的安装和使用中的常见问题(简略版)
对于喜欢研究细节的朋友,可参考Qt的安装和使用中的常见问题(详细版). 目录 1.引入 2.Qt简介 3.Qt版本 3.1 查看安装的Qt版本 3.2 查看当前项目使用的Qt版本 3.3 查看当前项目 ...
- [C++] Test question(1-16)
code: C++ don't have static class
- mongodb的安装与启动(centos7)
公司迁移mongodb,查了半天资料,各种考证,各种资讯,最后我选择很野蛮的直接把库和日志直接scp过来了....... 记录下如何安装和启动mongodb: 1.解压mongodb: [root@i ...
- Java程序设计11——GUI设计与事件处理B
4 Java事件模型的流程 为了使图形界面能够接收用户的操作,必须给各个组件加上事件处理机制. 在事件处理的过程中,主要涉及3类对象: 1.Event Source(事件源):事件发生的场所,通常就是 ...
- UISwitch的常见属性
1.onTintColor属性:设置ON一边的背景颜色,默认是绿色. 2.tintColor属性:设置OFF一边的背景颜色,默认是灰色,发现OFF背景颜色其实也是控件”边框“颜色. 3.thumbTi ...
- Google Tango service outdated谷歌Tango的服务过时了
If you device showed "tango service outdated." It means that your Tango Core need to be up ...
- 深入浅出 MappedByteBuffer
前言 java io操作中通常采用BufferedReader,BufferedInputStream等带缓冲的IO类处理大文件,不过java nio中引入了一种基于MappedByteBuffer操 ...
- CentOS6.5中使用 iperf 检测主机间网络带宽
安装方式 # yum install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm# yum inst ...