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






