Analysis Service 2012 Architecture – One Product, Two Modelshtml
在以前SQL Server 2008 R2 版本中的分析服务实际上只有一个版本 – 就是咱们所熟悉的多维数据模型 Multidimensional Model. 可是在 SQL Server 2012 版本中, 除了这个多维数据模型外还多了另一种模型 – 表格模型 Tabular Model.数据库
多维数据模型和表格模型本质上是彻底不一样的两个产品, 因此在安装分析服务的时候就须要选择安装的实例是 Multidimensional Model 方式仍是 Tabular Model 方式. 尽管这两种模型在底层不少方面是相同的, 可是仍然是两种不一样的产品, 因此安装的时候二者只能选择其一. 而且这两种模型下的项目也不能相互转换, 那么若是须要安装另一模型的时候就须要从新安装新的实例, 而后选择合适的模型.工具
表格模型 Tabular Modelpost
在表格模型中,表格模型数据库是最高级别的,这个数据库的概念和咱们所熟悉的关系型数据库很是类似. 分析服务的实例能够包含不少数据库, 而且每一个数据库关联到一个单独的业务解决方案或者项目, 因此不会存在好比在建某张报表的时候须要去跨库查询.性能
表格模型的设计是在 SSDT (SQL Server Data Tools) 中完成的, 那么在SSDT中的每个项目都对应着分析服务的一个数据库.学习
表格模型的数据库也是由不少表组成的, 这里的表与关系型数据库中的表也很相似, 可是表格模型中的表对列的类型是有所要求的, 好比列的类型智能是 Integer 整数, text 文本 或者 Decimal 小数类型.url
而且与关系型数据库还有所不一样的就是, 表格模型能够在查询阶段定义表与表之间的关系,不像普通的SQL 中全部查询表的关联关系须要预先被定义好才能使用. 表格模型中表之间的关系能够标识为Active 或者 inactive, 那么在执行查询阶段表与表之间的关系能够在实际调用的时候来决定采用哪一种关联.spa
表格模型的表之间的关系只能是一对多而且只容许单列关联, 没有一对一或者多对多, 也不支持自引用的关联关系.设计
表格模型采用的是内存分析引擎, 至关于从磁盘中拷贝了一份数据到内存中, 这样即便分析服务重启磁盘上的数据也不会丢失.htm
表格模型采用的是内存中列式存储技术 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 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 的结构:一种产品 两个模型