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