Analysis Service 2012 Architecture – One Product, Two Models

在之前SQL Server 2008 R2 版本中的分析服务实际上只有一个版本 – 就是我们所熟悉的多维数据模型 Multidimensional Model. 但是在 SQL Server 2012 版本中, 除了这个多维数据模型外还多了另外一种模型 – 表格模型 Tabular Model.

多维数据模型和表格模型本质上是完全不同的两个产品, 所以在安装分析服务的时候就需要选择安装的实例是 Multidimensional Model 方式还是 Tabular Model 方式. 尽管这两种模型在底层很多方面是相同的, 但是仍然是两种不同的产品, 所以安装的时候两者只能选择其一. 并且这两种模型下的项目也不能相互转换, 那么如果需要安装另外一模型的时候就需要重新安装新的实例, 然后选择合适的模型.

表格模型 Tabular Model

在表格模型中,表格模型数据库是最高级别的,这个数据库的概念和我们所熟悉的关系型数据库非常相似. 分析服务的实例可以包含很多数据库, 并且每个数据库关联到一个单独的业务解决方案或者项目, 所以不会存在比如在建某张报表的时候需要去跨库查询.

表格模型的设计是在 SSDT (SQL Server Data Tools) 中完成的, 那么在SSDT中的每一个项目都对应着分析服务的一个数据库.

表格模型的数据库也是由很多表组成的, 这里的表与关系型数据库中的表也很类似, 但是表格模型中的表对列的类型是有所要求的, 比如列的类型智能是 Integer 整数, text 文本 或者 Decimal 小数类型.

并且与关系型数据库还有所不同的就是, 表格模型可以在查询阶段定义表与表之间的关系,不像普通的SQL 中所有查询表的关联关系需要预先被定义好才能使用. 表格模型中表之间的关系可以标识为Active 或者 inactive, 那么在执行查询阶段表与表之间的关系可以在实际调用的时候来决定采用哪种关联.

表格模型的表之间的关系只能是一对多并且只允许单列关联, 没有一对一或者多对多, 也不支持自引用的关联关系.

表格模型采用的是内存分析引擎, 相当于从磁盘中拷贝了一份数据到内存中, 这样即使分析服务重启磁盘上的数据也不会丢失.

表格模型采用的是内存中列式存储技术 xVelocity in-memory analytics engine, 这样能很大的提升查询的性能, 而关系型数据库采用的是传统的行式存储格式.

了解更多 xVelocity 请访问 http://msdn.microsoft.com/zh-cn/library/hh922900.aspx

在表格模型中定义的查询和表达式使用的是DAX 语句 (Data Analysis eXpressions), 这是表格模型和PowerPivot 用到的本地查询语言. 使用客户端工具Power View 能生成DAX 查询从表格模型中查询出数据来. 但基于表格模型的数据库也支持MDX查询, 所以它能够兼容支持MDX的客户端查询工具.

为了增加用户体验,可以直接在表格模型的表中设计层次结构模型.

The Multidimensional Model 多维数据模型

在最上层多维数据模型和表格模型几乎是一样的, 数据被分析服务数据库管理, 数据库的设计也是在SSDT 或者以前版本的BIDS (BIDS 只支持多维数据模型) 中完成的.

数据的组织形式是一系列的Cube 和 Dimension 组成, 而不像表格模型中直接使用的是表. 并且每一个Cube 中是有一个或者多个 Measure Group,并且每一个Measure Group 对应的是数据仓库中的一个事实表 Fact Table. 每一个Cube 包含两种Dimension, 一种是普通的Dimension, 另一种就是Measure Dimension. 还有其它很多的概念, 应该来说多维数据集模型现在已经非常成熟了, 在功能和特性方面都很完善, 而表格模型要稍微欠缺点.

比如在数据存储方面, 多维数据集模型有三种存储方式:

  • Multidimensional OLAP (MOLAP) 所有的数据都存储在分析服务中
  • Relational OLAP (ROLAP) 分析服务中不存储数据, 当请求Cube 时, 数据是从关系型数据仓库中查询.
  • Hybrid OLAP (HOLAP) 与ROLAP 类似, 但是部分预先聚合的值可以保存在MOLAP中.

另外的一个区别就是Multidimensional Model 在定义查询和表达式时只支持MDX, 并且目前有很多第三方客户端工具也都支持MDX, 已经形成了一个业界的标准. 但是在SQL Server 2012 版本之后, Power View 支持同时查询 Multidimensional Model 和 Tabular Model.

Why Have Two Models?

Multidimensional Model 的设计是按照32位系统1个或者2个处理器并且小内存的标准来设计的, 而现在硬件的发展为了追求更高的效率 , 这种设计存在瓶颈.

学习Multidimensional Model 的成本比较高, 包括像MDX 语言它们的一些概念和处理过程需要花费比较多的精力来学习, 而微软希望让这种学习的过程变得更加简单以吸引更多的用户.

Self-Service BI 市场的壮大需要更简单的工具和更简单的概念来帮助用户完成自定义的BI开发.

在表格模型中, 数据类型更加精简和准确, 这样不同的模型给开发者也会带来更多的选择.

对于两者如何选择? 微软也明确的表示不会放弃 Multidimensional Model, Tabular Model 不会是它的代替品. 所以对于开发者可以根据自己掌握的程度来选择合适的模型, 并且以后分析服务的真正趋势是朝着云服务的方向来发展. 目前微软正在建设基于云的BI产品, 比如基于云的分析服务再加上 SQL Azure, SQL Azure Reporting Services 和 Office 365 等等.

文章出处:Analysis Service Tabular Model #002 Analysis services 的结构:一种产品 两个模型

【转载】Analysis Service Tabular Model #002 Analysis services 的结构:一种产品 两个模型的更多相关文章

  1. 【转载】Analysis Service Tabular Model #003 Multidimensional Model VS Tabular Model 我们该如何选择?

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

  2. http 连接 analysis service (ssas)

    当数据仓库搭建好后,我们就可以通过sqlserver的管理工具查看服务器上的数据集了.但是这样挺不方便的,如果要远程访问,那么就可以通过http来连接数据仓库.要配置数据仓库http连接非常的简单.如 ...

  3. Nios II系统在Quartus II编译后Timing requirements for slow timing model timing analysis were not met. See Report window for details

    来自http://wenku.baidu.com/link?url=h0Z_KvXD3vRAn9H8mjfbVErVOF_Kd3h-BZSyF1r4sEYj3ydJGEfBHGY1mvntP4HDuF ...

  4. Tabular Model下的ADOMD.NET

    ADOMD.NET是一套对象架构体系,它包含需要向SSAS数据库做访问的一切支持的对象和方法.很多微软官方以及第三方的SSAS客户端应用都是通过这个对象来操作数据. 多维模式的ADOMD.NET在我以 ...

  5. [转载]Web Service到底是什么

    转自:http://blog.csdn.net/wooshn/article/details/8069087/  武僧的专栏 一.序言 大家或多或少都听过WebService(Web服务),有一段时间 ...

  6. Service官方教程(3)Bound Services

    Bound Services 1.In this document The Basics Creating a Bound Service Extending the Binder class Usi ...

  7. phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建

    phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建 场景:当前有一张表:Ntime,因为表太大了,考虑要分表: Ntime2017 Nti ...

  8. Sql Server Analysis Service 处理时找到重复的属性键、找不到属性键错误(转载)

    这是两个非常常见的SSAS处理异常,网上也能找到很多文章讲解决办法,但很少见关于异常原因的分析,先来看看第一个" OLAP 存储引擎中存在错误: 处理时找到重复的属性键",一个维度 ...

  9. Sql Server Analysis Service 转换为UnknownMember的正确设置 (转载)

    转载: http://www.cnblogs.com/OpenCoder/p/4754447.html#commentform 在SSAS中事实表数据被归类到为UnknownMember 的时候分为两 ...

随机推荐

  1. sublime相关资源

    Sublime Text 全程指南 http://zh.lucida.me/blog/sublime-text-complete-guide/ Sublime官网Package安装 https://p ...

  2. IntelliJ IDEA包名在一行

    1.导入项目必须正确 选择左上角File--->NEw---->Module from Existing Sources 2.根据路径找到项目,如果是maven项目需要找到其pom.xml ...

  3. Spring3.x错误----java.lang.ClassNotFoundException:org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException

    Spring3.x错误: 解决方法: 缺少aspectjweaver.jar包 下载地址: https://cn.jarfire.org/aspectjweaver.html

  4. TogetherJS本地部署,基于websocket的网页即时视频、语音、文字聊天

    TogetherJS分为两大部分,一个是hu文件夹中的服务端:另外一个是TogetherJS文件夹中的Together.JS文件,包含了所有的网页文字.语音等操作. 需要预先安装Node.js,可以百 ...

  5. 18-11-2 Scrum Meeting 5

    1. 会议照片 2. 工作记录 - 昨天完成工作 1 把数据导入数据库 2 中译英选择题和英译中选择题的查询接口 - 今日计划工作 1 配置页面 2 实现中译英选择题和英译中选择题的查询接口 3 整理 ...

  6. Android-bindService本地服务-音乐播放(后台播放)-下

    在上一篇  Android-bindService本地服务-音乐播放-上,博客中是不能在后台中播放到,这次博客增加了一个后台播放 通常情况下,Activity切换到后台,Service提升到前台进程, ...

  7. HTML5使用总结(一)

    自己在“上海某985大学”待了五年,有蛮多的不舍.但是终究还是要离开.下面对这几年HTML5的使用做一个总结.总结是一种技术的沉淀.HTML5大家现在很火,它的标准已经出来.在标准还没有成型的时候,相 ...

  8. Ubuntu 16.04.2 LTS 安装 jdk1.6 和 tomcat6 (一)

    java和tomcat环境配置已经有很多教程和文章,最近项目需要配置Ubuntu 16.04.2下的古老的java6和tomcat 6,遇到小坑,特记录和分享. 网上的教程不是太新,就是太老,还有一些 ...

  9. c#设计模式之策略者模式(Strategy Pattern)

    场景出发 假设存在如下游戏场景: 1:角色可以装备木剑,铁剑,魔剑3种装备,分别对怪物造成20HP,50HP,100HP伤害(未佩戴装备则无法攻击); 2角色可以向怪物攻击,一次攻击后损失角色所佩戴装 ...

  10. 多彩浏览器win10版 隐私声明

    (一)隐私保护 the  app need internet access,we won't need your private information, in other words, your i ...