一、Analysis Services
Analysis Services是用於決策支持和BI解決方案的數據引擎。它提供報表和客戶端中使用的分析數據。
它可在多用途數據模型中創建高性能查詢結構,業務邏輯和KPI(企業關鍵績效指標),該數據模型可由任何支持Analysis Services作為數據源的客戶端程序訪問。
多用途數據模型的創建:使用SQL Server Data Tools,並選擇則表格或者多維和數據挖掘項目模板。
多用途數據模型的數據填充:通常是數據倉庫
多為數據模型的使用:將它部署在特定服務器模式下運行數據庫的Analysis Services實例。並使數據對應用程序連接的授權用戶可用。
Analysis Services實例:
- 表格實例,運行表格模型
- 多維和數據挖掘實例,運行OLAP多維和數據挖掘模型(默認)
- PowerPivot for SharePoint,在SharePoint中運行PowerPivot或Excel數據模型。
二、SSAS體系結構
SSAS使用服務器組件和客戶端組件為商業智能程序提供聯機分析處理(OLAP)和數據挖掘功能。
- 服務器組件:SSAS的服務器組件是應用程序msmdsrv.exe,它作為Microsoft Windows服務來實現。支持來自一個計算機的多個實例,每個Analysis Services實例作為單獨的Windows服務實例來實現。該應用程序包含很多組件其中包括XMLA監聽組件,查詢處理器組件等。
- 客戶端組件:使用XMLA(XML for Analysis)與Analysis Services進行通信。XMLA基於SOAP的協議,用於發出命令和接收響應。查詢語言:SQL,MDX(一種用於分析的行業標准查詢語言),DMX(面向數據挖掘行業的查詢語言)
- OLAP的支持:允許用戶設計、創建和管理由多個數據源聚合的數據的多維結構。多維分析是OLAP的核心。
- 數據挖掘功能:允許用戶設計、創建和處理數據挖掘模型。
三、多維數據分析的基本概念:
觀察變量:如數字1000
度量值:沒有上下文的數字是數據而不是信息,在尋找數字信息的過程中,首先要做的就是確定數據的度量值,如銷售量、銷售額等。通過增加標簽,數字由數據變成了信息,這個標簽就是元數據,將數據轉換為信息的方式之一就是增加元數據。 度量值所在的表是事實數據表,常規多維數據集結構中只能有一個事實數據表。
維:人們觀察客觀世界的角度,是一種高層次的類型划分。維包含着層次關系,可以把多項重要的屬性作為多個維。如時間維,產品維,模型維等。時間維,產品的銷售量隨着時間的變化。包含維度信息的表叫做維度表。
維度成員:維的一個取值稱為維成員。如時間維上的某年某月某日。維成員不一定要在每個維層次上取值,如某年某月。
層次結構:維度成員的集合以及這些成員的相對位置。如時間維的年月日三個層次。地理維的州 國家 城市 區 街道 門牌號。
多維數據集(Cube):是一個數據集合,由數據倉庫的子集構造。
維度表:包含某維度信息的表。維度表由主鍵和維屬性組成,維屬性是維度表的列屬性;產品維度表:Prod_id, Product_Name, Category, Color, Size, Price 時間維度表:TimeKey, Season, Year, Month, Date。維度表的主鍵是整型值,為了節省事實表的存儲空間。
事實表:包含度量值的表。如銷售事實表:Prod_id(引用產品維度表), TimeKey(引用時間維度表), SalesAmount(銷售總量,以貨幣計), Unit(銷售量)
四、多維數據模型與結構
目前主流的數據倉庫建模分為兩種,一種是實體關系建模(Entity-Relationship Modeling)和維度建模(Dimension Modeling)。這里討論維度建模,這一部分是數據倉庫的核心,模型的優劣至關重要。
1、概念模型
概念模型也就是通常所說的需求分析。即在與用戶交流的過程中,確定數據倉庫索要訪問的信息,這些信息包括當前、將來以及與歷史用關的數據。
概念模型的目標是建立面向主題的信息包圖。由於超立方體在表現上缺乏直觀性,尤其當維度超過三維以后,數據的采集和表示都比較困難。因此信息包圖的目標也就是在平面上展開超立方體,使用二維表格表現多維特征。利用信息包圖設計概念模型需要確定三大內容,以產品的銷售情況分析和預測主題分析為例:
a)確定維度
獲取對電子商城中銷售數據的多維特性分析,確定影響銷售的維度:這里的時間、商品、商店、客戶
b)確定類別
對每個維度進行分析,確定它與類別之間的傳遞和映射關系。如時間有年、季度、月、周、日等。商品有大類、小類、具體商品等。
c)確定指標
確定用戶需要的指標體系,指標是用戶最關系的信息。以銷售情況作為依據確定相關的銷售指標,如本期銷售量,本期銷售額,累計銷售量,累計銷售額等。
2、邏輯模型
采用星型圖建模技術可為數據倉庫建立完善的邏輯模型。星型圖用來描述數據倉庫需求,因此也包括三個邏輯實體,維度、指標和詳細類別。由信息包圖可以知道,一個維度內的每個單元式一個類別,代表該維度內的一個詳細的層次。
a)星型模式
星型模式是一種多維的數據模型,它由一個事實表和邏輯上圍繞這個事實表的維表組成。事實表是星型模式的核心,用於存放大量業務性質的事實數據,事實表中包含了度量屬性和指向周圍維表的外碼,事實表中的一個事實指向每個維表中的一個元組。事實表中存放的大量數據是同主題密切相關的、用戶最關心的、對象的度量數據。用戶依賴於維度表中的維度屬性,對事實表中的數據進行查詢、分析進而得到支持決策的數據。
b)雪花模式
雪花模式是星型模式的進一步擴展和規范化,也就是將與事實表關聯的維表分為直接關聯的主維表和與主維表關聯的次維表。雪花模式比星型模式增加了層次結構,體現了維的不同粒度的划分。
c)星系模式
當多個主題之間有公共的維時候,可以通過共享維表,把事實表連接起來。
雪花模式與星型模式的優缺點比較:
從數據格式來看:雪花型使用規范化數據,星型使用反規范化數據。
從加載內容來看,星形模型加載維度表,不需要在維度之間添加附屬模型;雪花模型加載數據集市。
從ETL復雜程度來看:星形模型ETL就相對簡單,而且可以實現高度的並行化。
從查詢性能角度來看,在OLTP-DW環節,由於雪花型要做多個表聯接,性能會低於星型架構;但從DW-OLAP環節,由於雪花型架構更有利於度量值的聚合,因此性能要高於星型架構。
從模型復雜度來看,星型架構更簡單。
從層次概念來看,雪花型架構更加貼近OLTP系統的結構,比較符合業務邏輯,層次比較清晰。
從存儲空間角度來看,雪花型架構具有關系數據模型的所有優點,不會產生冗余數據,而相比之下星型架構會產生數據冗余。
一般建議使用星型架構。因為我們在實際項目中,往往最關注的是查詢性能問題,至於磁盤空間一般都不是問題。 當然,在維度表數據量極大,需要節省存儲空間的情況下,或者是業務邏輯比較復雜、必須要體現清晰的層次概念情況下,可以使用雪花型維度。
五、OLAP以及分析服務
OLAP:OLAP是一種技術,它能夠使分析人員快速、一致、交互地從各個方面觀察信息,以達到深入理解數據的目的。根據數據存儲方式不同,olap可以分為rolap,molap,holap
ROLAP:關系數據庫來存儲數據。
優點:
MOLAP:多維數據庫來存儲數據
優點: