【转载】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 ...
随机推荐
- centos7下载自定义仓库的镜像设置方法
1.vim /usr/lib/systemd/system/docker.service Description=Docker Application Container Engine Documen ...
- 排序:桶排序Bucket sort
补充说明三点 1,桶排序是稳定的 2,桶排序是常见排序里最快的一种,比快排还要快…大多数情况下 3,桶排序非常快,但是同时也非常耗空间,基本上是最耗空间的一种排序算法 无序数组有个要求,就是成员隶属于 ...
- 洛谷 P1967 货车运输(克鲁斯卡尔重构树)
题目描述 AAA国有nn n座城市,编号从 11 1到n nn,城市之间有 mmm 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 qqq 辆货车在运输货物, 司机们想知道每辆车在不超过车 ...
- 基于Struts2开发学生信息管理系统 源码
开发环境: Windows操作系统开发工具: Eclipse+Jdk+Tomcat+MYSQL数据库 运行效果图: 联系博主-Q:782827013
- Blend 2015 教程 (五) 自定义状态
本篇再补充一块内容,就是自定义状态的介绍. 自定义状态用于封装用户控件在各种状态之间切换时的外观变化及其动画效果,方便调用.比如有个用户控件用于实现类似舞台幕布打开和关闭切换的效果,可以创建幕布关闭和 ...
- python怎么生成requirements.txt文件
生成文件: pip freeze > requirements.txt 安装依赖: pip install -r requirements.txt
- 记一次很坑的python2与python3共存问题
当添加PYTHONPATH环境变量时,无论输入pip2 -V还是pip3 -V都显示的是python2的环境变量,使用pip3 install 时也是安装在了python2的三方库(因为python2 ...
- [JAVA]java复制文件的4种方式
尽管Java提供了一个可以处理文件的IO操作类. 但是没有一个复制文件的方法. 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候. 然而有几种方法可以进行Java文件复制操作,下面列举出 ...
- cesium编程入门(四)界面介绍及小控件隐藏
感性认识 界面介绍,viewer Geocoder : 查找位置工具,查找到之后会将镜头对准找到的地址,默认使用bing地图 Home Button :视角返回初始位置. Scene Mode Pic ...
- C博客作业05—指针
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1 学习体会 理解了指针在代码中的使用方法,学会使用指针进行参数操作 学会了结构体的定义方式与结构体的使用 经过持续一个周 ...