Analysis Services基礎知識——深入SQL Server 2008
Analysis Services基礎知識
這一節中,我們將介紹Analysis Services的體系結構,這個體系結構在SQLServer2005中建立,並在SQL Server 2008中得以延續。我們還將研究Analysis Services的一些基礎特性。
本書相關連結:http://blog.csdn.net/turingbooks/article/details/6643167
體系結構
圖20-1給出了Analysis Services體系結構的一個高層檢視。主要元件是UDM(Unified Dimensional Model,統一維度模型),這是一個表示關係型和多維資料儲存庫的內聚維度模型。UDM提供了從客戶程式(如Excel或SQLServer Reporting Services)到各種異構資料來源的一個橋(標準表示)。不必使用各個資料來源的本機語言(如特定的SQL語言)來訪問資料來源,UDM允許客戶程式向UDM發出命令。
很多Analysis Services功能都建立在UDM之上。這包括層次結構、分類、時間表示、語言轉換和透視。甚至一些高階功能(如主動快取和分析)也成為UDM的內建部分,相應地也是Analysis Services的功能。
隨著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實現尤其有用。我們將在下一節介紹更多特定於OLAP應用的概念。
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專案要用到的使用者定義的函式(相當於一個應用和一個開發環境)。
5.AMO
從管理的角度看,AMO(Analysis Management Objects,分析管理物件)為建立和維護AnalysisServices物件公開了一個API。AMO可以處理管理任務,包括安全性和處理,甚至包括備份和恢復。
相關文章
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- SQL Server 2008中Analysis Services的新特性SQLServer
- SQL Server 連線基礎知識(轉)SQLServer
- JS基礎知識深入總結JS
- SQL 基礎知識掃盲SQL
- 深入mysql基礎知識的詳解MySql
- sql入門基礎知識分享SQL
- sql基礎知識(筆記)(一)SQL筆記
- Java基礎知識回顧 -SQLJavaSQL
- Sql Server 知識點SQLServer
- SQL SERVER 知識筆記SQLServer筆記
- SQL Server小知識:CheckPointSQLServer
- Sql Server 知識收集錄SQLServer
- SQL隱碼攻擊預備知識-sql基礎SQL
- Q&A:SQL Server 2008的升級與部署知識SOSQLServer
- 基礎知識
- [翻譯]SQL Server 2005 Analysis Services效能指南 Part 1 - 理解查詢構架SQLServer
- SQL Server小知識:Processor AffinitySQLServer
- SQL Server小知識:Recovery IntervalSQLServer
- Service官方直譯深入理解(基礎知識完)
- Linux下Shell基礎知識深入淺出(轉)Linux
- mysql資料庫sql語句基礎知識MySql資料庫
- SQL Server 2008 Reporting Services實現匿名訪問報表SQLServer
- AI 基礎知識AI
- Webpack 基礎知識Web
- Dart基礎知識Dart
- RabbitMQ基礎知識MQ
- webpack基礎知識Web
- javascript基礎知識JavaScript
- ThinkPHP基礎知識PHP
- Laravel基礎知識Laravel
- Redis基礎知識Redis
- Docker基礎知識Docker
- 程式基礎知識
- Envoy基礎知識
- DockerFile基礎知識Docker
- Nginx基礎知識Nginx
- CSS基礎知識CSS