Microsoft SQL Server Analysis Services(SSAS,微軟SQL Server分析服務)是Microsoft SQL Server 2008/R2的一部分,SASS支持多維數(shù)據(jù)和數(shù)據(jù)挖掘,并向報表工具、分析工具、預測工具提供穩(wěn)定的數(shù)據(jù)和模型支持。有了多維數(shù)據(jù)和數(shù)據(jù)挖掘的基礎(chǔ),使用聯(lián)機分析處理、Unified Dimensional Model(統(tǒng)一維度模型)和Microsoft Office的深度集成使SSAS的功能愈加強大,本文通過簡單案例從多維分析模型的應用價值、建模工具、數(shù)據(jù)庫擴展能力、性能和穩(wěn)定性方面來介紹,期望起到拋磚引玉的作用。
多維分析模型的應用價值
Microsoft SQL Server 2008 Analysis Services 以Analysis Services 2005所帶來的價值為基礎(chǔ),利用了它的可縮放性、高級分析能力以及 Microsoft Office 互操作性。通過在性能、可縮放性以及開發(fā)人員工作效率方面的巨大改善,用戶可以創(chuàng)建企業(yè)規(guī)模 Online Analytical Processing(聯(lián)機分析處理)解決方案。Unified Dimensional Model(統(tǒng)一維度模型)可以合并數(shù)據(jù)訪問,并提供各種分析功能,同時還與 Microsoft Office 和開放式可嵌入體系結(jié)構(gòu)進行深度集成。
多維分析模型的應用價值在于創(chuàng)建企業(yè)規(guī)模的解決方案、集中管理關(guān)鍵性能指標和記分卡、預測分析。
應用價值一:創(chuàng)建企業(yè)規(guī)模的解決方案
通過在若干 Analysis Services 服務器之間共享一個只讀的 Analysis Services 數(shù)據(jù)庫向外擴充 Analysis Services,實現(xiàn)了可縮放的基礎(chǔ)結(jié)構(gòu)。
由于Business Intelligence Development Studio 以Visual Studio 開發(fā)環(huán)境為基礎(chǔ),因此它可與Visual Studio/VSTS實現(xiàn)完全集成,從而提供設(shè)計、開發(fā)、協(xié)作、優(yōu)化和測試資源,在Visual Studio IDE中,開發(fā)人員的工作更快且更有效率。
應用價值二:集中管理關(guān)鍵性能指標和記分卡
可以把關(guān)鍵性能指標(KPI)和平衡記分卡的數(shù)據(jù)進行集中管理,并為Performance Point、Excel 、SharePoint和Reporting Services 應用程序的數(shù)據(jù)訪問提供了統(tǒng)一的入口。
應用價值三:預測分析
通過使用Microsoft SQL Server Data Mining Add-Ins for Office 2007 可以進行預測分析,用戶能夠通過 Office 2007 訪問數(shù)據(jù)挖掘功能,并在熟悉的 Office 環(huán)境中利用 Microsoft SQL Server 2008 Analysis Services 極為復雜的數(shù)據(jù)挖掘算法,因此商業(yè)用戶只需單擊幾次鼠標,即可輕松地獲得對復雜數(shù)據(jù)集。
我們可以使用SQL Server 2008 附帶的 AdventureWorks 示例數(shù)據(jù)庫來進行預測分析,以下案例根據(jù)M200 型號在各地區(qū)銷售情況的歷史記錄進行預測,演示的主要步驟如下:
(1)下載安裝SQL Server 2008 Office 2007 數(shù)據(jù)挖掘外接程序,其下載地址如下:
http://www.microsoft.com/downloads/details.aspx?FamilyId=896A493A-2502-4795-94AE-E00632BA6DE7&displaylang=zh-cn
(2)打開Excel文件DMAddins_SampleData.xlsx,選擇名稱為Forecasting 的Sheet
(3)連接數(shù)據(jù)庫,使用預測工具
最終結(jié)果如圖1所示:
SSAS的建模的目的是設(shè)計多維數(shù)據(jù)庫對象,建模的工具包括SQL Server Management Studio 和Business Intelligence Development Studio ,前者用于管理 Analysis Services、SQL Server、Integration Services 和 Reporting Services 的實例,可以管理 Analysis Services 對象(執(zhí)行備份、處理等),還可以使用 XMLA 腳本直接在現(xiàn)有的 Analysis Services 實例上創(chuàng)建新對象,并提供了分析服務器腳本項目。Business Intelligence Development Studio 是一種基于Visual Studio 2008的開發(fā)環(huán)境,用于創(chuàng)建和修改商業(yè)智能解決方案。使用 Business Intelligence Development Studio,可以創(chuàng)建包含 Analysis Services 對象(多維數(shù)據(jù)集、維度等)定義的 Analysis Services 項目。
使用Business Intelligence Development Studio建模的關(guān)鍵步驟有四步:
(1)定義 Analysis Services 項目
(2)配置 Analysis Services 項目屬性
(3)生成 Analysis Services 項目
(4)部署 Analysis Services 項目
SSAS數(shù)據(jù)庫的擴展能力,包括:數(shù)據(jù)挖掘、權(quán)限和訪問接口
與傳統(tǒng)的 OLAP平臺相比,SSAS提供了更多高級特性。這使組織能夠利用一種解決方案滿足多種分析需求,因為該解決方案提供的特性要比傳統(tǒng)的 OLAP 平臺多得多。在這方面,Unified Dimensional Model(統(tǒng)一維度模型)扮演了核心角色,它提供了豐富的分析功能。
統(tǒng)一維度模型(Unified Dimensional Model,UDM)對于 Analysis Services 而言是一個新概念,它最早是隨著 SQL Server 2005 的發(fā)布而出現(xiàn)的。它在用作數(shù)據(jù)源和專有多維數(shù)據(jù)集的物理關(guān)系數(shù)據(jù)庫與用于滿足用戶查詢的維度結(jié)構(gòu)之間提供了中間邏輯層。通過這種方式,可將 UDM 當作 OLAP 解決方案的核心部分。該模型還提供豐富的高級商業(yè)智能功能,以提供最優(yōu)的關(guān)系分析和 OLAP 分析,并進一步使組織能夠利用獨特的Key Performance Indicator Framework (關(guān)鍵性能指標框架)以及復雜的預測分析功能,輕松地擴展解決方案。SSAS不僅對解決方案易于擴展,對數(shù)據(jù)挖掘、權(quán)限和訪問接口也能做擴展,下面分別描述:
(1)數(shù)據(jù)挖掘擴展
SASS和數(shù)據(jù)挖掘的關(guān)系如圖2所示:
圖2 SQL Server數(shù)據(jù)挖掘
SASS對數(shù)據(jù)挖掘的擴展主要體現(xiàn)在:提供了一組行業(yè)標準的數(shù)據(jù)挖掘算法;通過數(shù)據(jù)挖掘設(shè)計器,能夠創(chuàng)建、管理和瀏覽數(shù)據(jù)挖掘模型,并在隨后使用這些模型創(chuàng)建預測;支持數(shù)據(jù)挖掘擴展插件 (DMX) 語言,可用于管理挖掘模型和創(chuàng)建復雜的預測查詢。
這些功能和工具,對數(shù)據(jù)挖掘提供了有效擴展,可以單獨使用某一種功能或工具,也可以組合使用這些功能和工具,以發(fā)現(xiàn)數(shù)據(jù)中存在的趨勢和模式,為決策做成數(shù)據(jù)支持。
(2)權(quán)限擴展
SASS 對數(shù)的保護分成了兩個級別:實例級和用戶級。實例級由 Analysis Services 實例使用的所有物理元素構(gòu)成,必須對這些元素實施保護以確保只有經(jīng)過授權(quán)的用戶才有權(quán)訪問它們。這些元素包括數(shù)據(jù)文件夾、應用程序等等。用戶級由授予用戶的權(quán)限構(gòu)成,這些權(quán)限允許用戶訪問存儲在 Analysis Services 數(shù)據(jù)庫內(nèi)的信息并阻止用戶訪問超出其特權(quán)的數(shù)據(jù),用戶級的權(quán)限實現(xiàn)方式有:
建立用戶身份驗證機制
定義服務器角色的用戶允許權(quán)限
定義 OLAP 對象級安全性
定義數(shù)據(jù)挖掘?qū)ο蠹壈踩?/p>
定義程序集和存儲過程級安全性
啟用或禁用實例配置屬性
(3)訪問接口擴展
在使用SSAS開發(fā)報表或進行數(shù)據(jù)挖掘的過程中,訪問接口的擴展包括:OLE DB for Data Mining 、ADOMD.NET、分析管理對象 (AMO) 、Analysis Services 腳本語言。
OLE DB for Data Mining擴展了Microsoft OLE DB for Data Mining 1.0 規(guī)范,能夠添加新的架構(gòu)行集、在現(xiàn)有架構(gòu)行集中添加列以及向數(shù)據(jù)挖掘擴展插件 (DMX) 語言添加用于創(chuàng)建和管理挖掘結(jié)構(gòu)的語法。
分析管理對象 (AMO) 是一個完整的對象庫,這些對象可通過編程方式進行訪問,該對象庫使應用程序能夠管理正在運行的 Microsoft SQL Server Analysis Services 實例。ADOMD.NET 是用于與 Microsoft SQL Server Analysis Services 進行通信的 Microsoft .NET Framework 數(shù)據(jù)訪問接口。ADOMD.NET 可使用 XML for Analysis 協(xié)議與分析數(shù)據(jù)源通信,方法為使用 TCP/IP 或 HTTP 連接傳輸和接收符合 XML for Analysis 規(guī)范的 SOAP 請求和響應。
Analysis Services 腳本語言(Analysis Services Script language,ASSL)是SASS客戶端應用程序與Analysis Services通信所使用的腳本語言,是一種特殊的XML語言,包括對象定義語言和向 Analysis Services 實例發(fā)送操作命令的命令語言。
性能、穩(wěn)定性和安全性
(1)性能
在大多數(shù)商業(yè)環(huán)境中,關(guān)系型數(shù)據(jù)庫是業(yè)務關(guān)鍵應用程序和服務的核心所在。SQL Server 作為關(guān)系型數(shù)據(jù)庫,對數(shù)據(jù)庫性能的分析我們從關(guān)系數(shù)據(jù)庫的性能以及SQL Server 2008的幾大功能組件:數(shù)據(jù)倉庫和分析服務、報表服務、集成服務這個方面來介紹其性能。
SQL Server 2008/R2提供了一個強大的數(shù)據(jù)庫引擎,它支持大型關(guān)系數(shù)據(jù)庫和復雜的查詢處理,是第一個發(fā)布更新的TCP-E基準結(jié)果的數(shù)據(jù)庫銷售商,通過一個創(chuàng)記錄的3GB的TPC-H結(jié)果顯示了它對大范圍的數(shù)據(jù)倉庫工作量的執(zhí)行能力;它包含SQL Server Profiler 和Database Engine Tuning Advisor。通過使用SQL Server Profiler,你可以捕捉應用程序典型負載中所發(fā)生的事件,然后在Database Engine Tuning Advisor 中將這些事件重現(xiàn),從而針對數(shù)據(jù)的索引和分區(qū)生成相應建議,這樣你就可以優(yōu)化應用程序的性能了;
它提供了性能套件,性能套件是一套用來收集、分析、排除故障和存儲SQL Server 診斷信息的集成框架。性能套件為性能監(jiān)控提供了一個端對端的解決方案,其中包括針對性能數(shù)據(jù)的低開銷收集、集中化存儲、以及分析報表。你可以使用SQL Server管理套件來管理收集工作,例如可以使用數(shù)據(jù)收集器、啟動一個收集集合并查看作為性能狀態(tài)面板的系統(tǒng)收集集合報表。你還可以使用系統(tǒng)存儲結(jié)構(gòu)和性能套件應用程序編程接口(API)來建立你自己的基于性能套件的性能管理工具。性能套件提供了一個統(tǒng)一的數(shù)據(jù)收集基礎(chǔ)架構(gòu),它在每一個你想監(jiān)控的SQL Server實例中都有一個數(shù)據(jù)收集器。這個數(shù)據(jù)收集器非常靈活,它可以管理數(shù)據(jù)收集范圍以適應開發(fā)、測試和生產(chǎn)環(huán)境。你使用這個數(shù)據(jù)收集框架就可以輕松地收集性能數(shù)據(jù)和一般的診斷數(shù)據(jù)。
在數(shù)據(jù)倉庫和分析服務性能上,查詢優(yōu)化器可以動態(tài)地導入一個最佳的位圖過濾器來加強星型模式(star schema)的查詢性能。支持數(shù)據(jù)分割、高級索引功能和索引視圖來支持更大型的數(shù)據(jù)存儲,還有稀疏列和有效的數(shù)據(jù)類型,例如VARDECIMAL,對于包含大量 NULL 值的大型表,它可以降低相關(guān)開銷(數(shù)據(jù)倉庫的一個普通特性)。在SQL Server分析服務中的塊計算使用默認的值,將要計算的表達式的數(shù)目降至最低,并將單元導航限制為整個空間只有一次,而不是每個單元一次,從而顯著提高了計算性能。
在報表服務性能上,報表服務引擎被重新開發(fā),以便通過按需處理過程對報表服務添加更好的性能和可擴展性。報表不再局限于內(nèi)存,提供了新的渲染器。
在集成服務性能上,實現(xiàn)了顯著改進的查找性能,它降低了包運行時間并優(yōu)化了ETL操作。具有變更數(shù)據(jù)捕獲(Change Data Capture, CDC) 功能來記錄對變更表的更新,當數(shù)據(jù)刷新按計劃進行時,可以實現(xiàn)對數(shù)據(jù)變更的跟蹤并確保數(shù)據(jù)倉庫的一致性。
(2)穩(wěn)定性
SQL Server 2008/R2 提供一系列技術(shù)支持確保零宕機,包括 16 節(jié)點集群、數(shù)據(jù)庫鏡像、發(fā)布訂閱、對等復制和日志傳送。這些功能結(jié)合熱插拔硬件支持、聯(lián)機備份和還原功能,讓 SQL Server 成為任務關(guān)鍵型應用程序的絕佳選擇。例如,根據(jù) Wipro Technologies 的一項研究,將 SAP ERP 環(huán)境遷移到 SQL Server 可以減少超過 20% 的意外停機時間。
(3)安全性
可以在多個級別對 Microsoft SQL Server Analysis Services 進行保護。必須保護 Analysis Services 的每個實例及其數(shù)據(jù)源,從而確保只有經(jīng)過授權(quán)的用戶才擁有所選維度、挖掘模型以及數(shù)據(jù)源的讀或讀/寫權(quán)限,并阻止未經(jīng)授權(quán)的用戶惡意破壞敏感商業(yè)信息。可以通過以下步驟來保護分析服務的實例:
安全體系結(jié)構(gòu)包括安全角色、安全屬性、使用 SQL Server Management Studio 管理 Analysis Services;
為 Analysis Services 配置登錄賬戶;
保護 Analysis Services 實例;