【转载】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 ...
随机推荐
- 在Linux(Ubuntu)下安装Arial、Times New Roman等字体
在Linux下做文档.作图的时候,可能需要用到Arial和Times New Roman等字体.但是由于版权问题,Linux一般是不直接提供这些字体的. 注意字体也是有版权的!不过有版权也不代表一定会 ...
- 用MapReduce读HBase写MongoDB样例
1.版本信息: Hadoop版本:2.7.1 HBase版本:1.2.1 MongDB版本:3.4.14 2.HBase表名及数据: 3.Maven依赖: <dependency> < ...
- Java程序设计16——Annotatio注释
Annotation是代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相应的处理.通过使用Annotation,程序开发人员可以在不改变原有逻辑的情况下,在源文件嵌入一些补充信息.代 ...
- 我们常说的CDN到底是什么?
程序员每天提及的无数词当中,有一个是「CDN」,Ta的中文名是「内容分发网络」,读中文是令人蒙逼的,英文名是Content Delivery Network. CDN有啥用呢?它主要用来解决什么问题呢 ...
- ZSTU4270 同源数 2017-03-22 14:34 82人阅读 评论(0) 收藏
4270: 同源数 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 1284 Solved: 224 Description 如果x和y的质因子集合完 ...
- Android Camera的使用(一) 读书笔记
原文地址 https://blog.csdn.net/junzia/article/details/52301199 拍照步骤1.添加权限2.开启相机时check一下是否有摄像头3.对预览大小.照片大 ...
- visual studio code中使用emmet插件在.vue文件失效
使用visual studio code编辑.vue文件时,emmet插件无法使用,可以通过以下两种试解决: 1.文件→设置,在右侧窗口添加以下代码: "emmet.syntaxProfil ...
- Spring学习(七)——开发Web Service的几种方式
本文作者在学习使用Java开发Web Service(不包括Restful)时,由于不知道Java有这么多框架支持开发Web Service一度陷入迷惘,不知道这些框架各有 什么不同,各有什么优缺点. ...
- WebApi 插件式构建方案:重写的控制器获取工厂
body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...
- 关于SqlServer连接错误
以前用数据库好好的,今天突然就出现连接错误,贴出出错误消息 出现这种错误的原因:服务里面sqlserver服务没有打开. 解决方案 : 计算机右键,打开管理,找到服务,把服务里面的SQL Server ...