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






