【轉載】Analysis Service Tabular Model #002 Analysis services 的結構:一種產品 兩個模型

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 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 的結構:一種產品 兩個模型

相關文章
相關標籤/搜索