SQL Server 2008數據庫Analysis Services基礎知識介紹
SQL Server 2008數據庫的Analysis Services的很多功能都建立在UDM之上。這包括層次結構、分類、時間表示、語言轉換和透視。甚至一些高級功能(如主動緩存和分析)也成為UDM的內置部分,相應地也是Analysis Services的功能。本文我們主要就介紹了SQL Server 2008數據庫的Analysis Services的知識,接下來就讓我們來一起了解一下吧。
體系結構
圖20-1給出了Analysis Services體系結構的一個高層視圖。主要組件是UDM(Unified Dimensional Model,統一維度模型),這是一個表示關系型和多維數據存儲庫的內聚維度模型。UDM提供了從客戶程序(如Excel或SQLServer Reporting Services)到各種異構數據源的一個橋(標準表示)。不必使用各個數據源的本機語言(如特定的SQL語言)來訪問數據源,UDM允許客戶程序向UDM發出命令。
隨著XML和Web服務變得越來越重要,Analysis Services以一種全面的方式支持這些當前的技術主流。AnalysisServices服務器的行為方式類似于一個Web服務,毫無疑問,管理這個服務器要采用基于XML的語言。所有與Analysis Services服務器的客戶端通信都通過基于標準的XML/A協議完成。

微軟仍在繼續支持各種技術,目的是與XML/A提供的功能(ADOMD、ADOMDB.NET、OLE DB for OLAP和Win32)實現向后兼容。XML/A實際上是ASSL(Analysis ServicesScripting Language,Analysis Services腳本語言)的一個子集,XML/A發送操作命令,如Create、Alter和Process(分別創建一個多維數據集、修改一個多維數據集,以及處理一個多維數據集)。ASSL也是用來指定Analysis Services中對象的語言。XML/A處理命令,ASSL的其余部分是面向Analysis Services對象的一個DDL。
BIDS作為SQL Server BI的開發環境,使用了Visual Studio的開發風格(解決方案、項目和源文件)。與一個BIDS Analysis Services項目相關的源文件包含與Analysis Services對象相關的元數據。可以將這些文件提交到標準源代碼控件(如Visual SourceSafe或Visual Studio TeamFoundation Server)。元數據語言是XML,存儲在文件中。SQL Server Management Studio和BIDS使用XML/A與Analysis Services通信。
微軟在SQL Server 2005的Analysis Services中引入了主動緩存,使得低延時應用有最小的管理開銷。主動緩存的主要目的是對數據的過時性進行管理。例如,可以將主動緩存配置為在底層數據改變時進行更新。如果緩存正在更新過程中,Analysis Services會足夠聰明,指示查詢不要從緩存取結果,而應對底層數據源運行查詢。主動緩存最適合用在當底層數據改變時發出通知的關系數據庫中。
SQL Server 2008中的Analysis Services不會將整個維度都緩存在內存中。類似于操作系統在內存中保留某些頁而將某些頁面切換到磁盤上,Analysis Services也使用了物理內存和磁盤空間。這種方法的好處是現在Analysis Services可以支持無限的維度大小。例如,SQLServer 2000的AnalysisServices要根據可用的物理RAM限制維度大小。現在Analysis Services可以利用緩存(將結果部分存儲在磁盤上),因此不受RAM的限制。
開發環境
BIDS是Analysis Services開發的主要環境。這個應用實際上是Visual Studio 2008的一個版本,隨SQL Server2008發布而沒有額外費用。
在開發人員將Analysis Services項目部署到一個服務器上之前,BIDS支持離線開發。這種離線開發是可行的,因為BIDS會使用所訪問的數據源的模式快照。它創建的AnalysisServices對象(多維數據集、維度、事實表,等等)只是這些對象的本地副本。開發人員必須將它們部署到一個特定的Analysis Services服務器。這樣做真正的好處是,即使AnalysisServices未在本地運行,而且即使開發人員沒有連接網絡,也可以進行開發。
在離線開發之上,BIDS為計算的創建提供了管理對話框和基于向導的支持。這些用戶界面改進可以自動完成計算的管理,包括時間管理和解釋、賬戶智能(account intelligence)、財務聚合(financialaggregation)、對多種貨幣的支持,以及半累加(semi-additive)度量值。如果不使用這些對話框和基于向導的支持,另一種做法就是手動編寫這些計算。
注意:要理解術語半累加度量值,需要對Analysis Services對象有所了解。計算會在由維度組成的多維數據集上運行。完全累加度量值是對一個多維數據集的所有維度進行計算。半累加度量值則是對一個多維數據集的一部分而不是全部維度進行計算。
BIDS的另一個好處是對多種配置的支持。這樣就可以對Analysis Services的多個實例部署項目。另外還支持本地化對象和轉換,所以Analysis Services支持采用多種語言部署。
Analysis Services對象和概念
Analysis Services包括很多我們感興趣的特性。在這里,我們將回顧其中最重要的一些對象和概念,這些對象和概念對于有效的BI實現尤其有用。
1.數據源視圖
DSV(Data source views,數據源視圖)在數據源之上形成了一個虛擬層,包含與數據源相關的對象的一個子集(只是相關元素)。例如,一個DSV可能包含與工資處理有關的表和視圖的一個子集。利用這種可視化,開發人員可以重命名對象,還可以創建計算列和命名查詢。命名查詢支持的另一個好處是,開發人員可以訪問基礎視圖而無需要求用戶對數據源有CREATEVIEW權限。
2.多維表達式
前面提到過,MDX是Analysis Services支持的語言,來實現計算和安全性規則。開發人員使用MDX查詢AnalysisServices,并建立計算和KPI。
3.KIP框架和透視
KPI在SQL Server 2005中引入,這是一些服務器端對象,可以圖形化表示一個值、該值的一個期望目標、指標的狀態(好、壞等),以及度量值的走向。
例如,一個證券所可以使用大拇指朝上(thumb-is-up)或大拇指朝下(thumb-is-down)的圖片來指示是否買入或賣出某只股票。確定這一點的底層算法可能相當復雜(涉及值、目標、狀態和走向),不過KPI(公司度量值)可以很簡單:買入(大拇指朝上的圖片)或是賣出(大拇指朝下的圖片)。
走向是一個方向性行為,可以與一個圖片關聯,如溫度計、燃料表或者一個向上或向下的箭頭。例如,一輛車可能在比賽中領先(KPI的狀態),但是另一輛車可能很快追上(走向)。開發人員要使用MDX語言定義一個KPI的值、目標、狀態和走向。
還有一個功能可以支持用戶特定的信息上下文,這就是透視。透視(perspective)是特性、用戶定義的層次結構、操作和度量組的一個邏輯集合,經過優化可以為給定的一類用戶提供底層數據的一種相當精美的定制視圖。可以認為AnalysisServices中的透視就相當于關系型引擎中的視圖。
4.CLR集成
有些情況下,Analysis Services開發人員可能仍需要用到采用某種高級語言完成的計算,如CLR(common language runtime,通用語言運行時)語言C#和VB.NET。在SQL Server 2008中,可以使用這種CLR語言創建SQL Server對象(如用戶定義的函數等)。這個CLR語言支持不僅包括用戶定義的函數,還包括存儲過程和觸發器。
可以使用Visual Studio 2008為SQL Server開發這種CLR插件。同一個Visual Studio解決方案完全有可能既包含一個AnalysisServices項目,同時包含一個C#或VB.NET項目來提供Analysis Services項目要用到的用戶定義的函數(相當于一個應用和一個開發環境)。
***MO
從管理的角度看,AMO(Analysis Management Objects,分析管理對象)為創建和維護AnalysisServices對象公開了一個API。AMO可以處理管理任務,包括安全性和處理,甚至包括備份和恢復。
關于SQL Server 2008數據庫的Analysis Services的知識就介紹到這里了,如果您想了解更多的關于SQL Server數據庫的知識,可以看一下這里的文章:http://database.51cto.com/sqlserver/,希望能夠帶給您收獲吧!
【編輯推薦】


















