SQL Server 2005 中的商務智能和數據倉庫

微軟發佈了SQL Server 2005,對於微軟與BI來說這是一個非常重要的版本,它完善了微軟在BI方面的產品線。SQL Server 2005以及 Visual Studio .net2005的整合,有着龐大的開發用戶,必將給BI領域的市場帶來衝擊。下面轉載了一篇介紹性的文章共十部分,下面是第一部分,其他的請看回復。

SQL Server 2005 中的商務智能和數據倉庫(1)

【導讀】本文概述了 SQL Server 2005 Beta 2 中“商務智能”平臺的增強功能。本文並非實施指南,而是爲讀者提供了關於“商務智能”平臺增強功能的信息。

一、簡介

Microsoft SQL Server 2005 是一個完整的商務智能 (BI) 平臺,其中爲用戶提供了可用於構建典型和創新的分析應用程序所需的各種特性、工具和功能。本文簡要介紹了您在構建分析應用程序時將要用到的一些工具,並着重介紹了一些新增功能,這些新增功能使複雜 BI 系統的構建和管理比以往更加輕鬆。

下表概述了商務智能系統的組件,以及與之相應的 Microsoft SQL Server 2000 和 SQL Server 2005 組件。

組件 SQL Server 2000 SQL Server 2005
提取、轉換和加載
數據轉換服務 (DTS)
數據轉換服務 (DTS)

關係數據倉庫
SQL Server 2000 關係數據庫
SQL Server 2005 關係數據庫

多維數據庫
SQL Server 2000 Analysis Services
SQL Server 2005 Analysis Services

數據挖掘
SQL Server 2000 Analysis Services
SQL Server 2005 Analysis Services

託管報告
SQL Server 2000 Reporting Services
SQL Server 2005 Reporting Services

特殊查詢和分析
Microsoft Office 產品(Excel、Office Web Components、Data Analyzer、Sharepoint Portal)
Microsoft Office 產品(Excel、Office Web Components、Data Analyzer、Sharepoint Portal)

數據庫開發工具
SQL Server 2000 企業管理器、分析管理器、查詢分析器,以及各種其他工具
SQL Server 2005 Business Intelligence Development Studio (新增!)

數據庫管理工具
企業管理器、分析管理器
SQL Server 2005 SQL Server Management Studio (新增!)


SQL Server 2005 新增了兩個組件:SQL Server Management Studio 和 SQL Server Business Intelligence Development Studio。其他主要的 BI 組件——DTS、Analysis Services OLAP、Analysis Services Data Mining 和 Reporting Services——在 SQL Server 2005 中得到了改進,與以前有很大的不同。SQL Server 2005 關係數據庫包含一些重要的新增功能。雖然 Microsoft Office 查詢和門戶工具並沒有包含在 SQL Server 中,但當前的發行版本力爭在 SQL Server 2005 之前實現這一功能。Office 工具的 BI 功能將在 Office 產品發行週期內將得到逐步實現。

SQL Server 2005 Business Intelligence 工具集提供了一種端到端的 BI 應用程序集成:

• 設計:Business Intelligence Development Studio 是第一款專門爲商務智能系統開發人員設計的集成開發環境。Business Intelligence Development Studio 構建於 Visual Studio 2005 技術之上,它爲 BI 系統開發人員提供了一個豐富、完整的專業開發平臺。調試、源代碼控制以及腳本和代碼的開發均可用於所有的 BI 應用程序組件。

• 合成:“數據轉換服務”已被重新編寫,現在的 DTS 可以高速執行超大數據量的複雜數據集成、轉換和合成。Business Intelligence Development Studio 使程序包的構建和調試變得更加生動有趣。DTS、Analysis Services 和 Reporting Services 共同提供了一個源自異類源的無縫數據視圖。

• 存儲:在 SQL Server 2005 中,關係數據庫和多維數據庫之間的界限變得更加模糊。您可以將數據庫存儲在關係數據庫、多維數據庫中,或使用新增的“主動緩存”功能,充分利用兩種數據庫各自的優點。

• 分析:一直以來,Microsoft 的數據挖掘都十分簡單易用。現在,結合了其他的重要新算法(包括關聯規則、時間序列、迴歸樹、序列羣集、神經網絡和貝葉斯算法),使得這一功能更加完美。而在 Analysis Services 多維數據集中也添加了一些重要的新增功能:關鍵績效指標框架、MDX 腳本,以及其他的內置高級業務分析方法。Reporting Services 報告提交和管理框架使得複雜的分析方法更易於向最廣泛的潛在受衆分發。

• 交付:Reporting Services 將 Microsoft Business Intelligence 平臺的用戶羣體延伸至那些需要使用分析功能的商務用戶。Reporting Services 是一種企業託管報告環境,它通過 web 服務進行嵌入和管理。您可以用大量的交互和打印選項,以各種不同的格式個性化設置和提交報告。通過將報告以數據源的形式分發至下游商務智能,複雜分析可以覆蓋更廣泛的受衆。Microsoft 及其合作伙伴的特殊查詢和分析工具將繼續承擔在 Analysis Services 和關係數據庫中訪問數據的常用工具角色。

• 管理:SQL Server Management Studio 集成了對 SQL Server 2005 所有組件的管理。Business Intelligence 從業者都將得益於 Microsoft 服務器“能力”擴展這一用戶盼望已久的功能增強,即從關係引擎(伸縮性、可靠性、可用性、可編程性,等等)擴展爲全套的 BI 平臺組件。


SQL Server 2005 Business Intelligence 組件的主要目標是支持在各種規模的企業中開發和使用商務智能,並使其能夠供所有員工使用,不僅包括管理層和分析師,還包括操作人員和外部委託人。就此目標而言,SQL Server 2005 具有完整、集成、易用的特點,它以 web 服務的形式發佈數據,而且僅通過日常硬件便可提供極佳的性能,另外它還包含許多新增功能,您可以使用這些新增功能開發創新的分析應用程序。

二、SQL Server2005 Beta 2 入門
在安裝 SQL Server 2005 時第一點要注意的就是它的集成安裝體驗。您不再需要爲某些功能(如 Analysis Services)而分別運行安裝程序。如果某個功能(如 Reporting Services)不可安裝,則說明您的計算機不滿足該功能的安裝要求。您可以查看說明文件,以獲得有關功能必要條件的完整討論。在大多數配置得當的機器上,安裝過程中應接受所有默認設置,安裝所有的主要功能:

• SQL Server 關係數據庫引擎

• DTS

• Analysis Services

• Reporting Services

• SQL Server Management Studio(數據庫管理工具集)

• Business Intelligence Development Studio(BI 應用程序開發工具集)


Reporting Services 要求在機器上安裝並妥善配置 IIS。由於 Reporting Services 是 2005 Business Intelligence 功能組的一個重要組成部分,我們強烈建議您花費一定的時間,執行這些配置和安裝步驟。

熟悉 Analysis Services 的客戶可能會因缺少 Analysis Services 元數據倉庫而感到迷惑。在 SQL Server 2000 中,Analysis Services 倉庫被作爲 Microsoft Access 數據庫發行。Analysis Services 2005 不包含元數據倉庫。相反,Analysis Services 數據庫元數據信息被存儲爲 XML 文件格式,由 Analysis Services 進行管理。如果需要,還可以將這些 XML 文件放置在源代碼控制之下。

我們建議您使用 Business Intelligence Development Studio 進行開發,同時使用 SQL Server Management Studio 來操作和維護 BI 數據庫對象。雖然您能夠在 SQL Server Management Studio 中設置 DTS 包以及 Analysis Services 多維數據集和數據挖掘模型,但 Business Intelligence Development Studio 卻爲設計和調試 BI 應用程序提供了更好的體驗。

對於 Beta 2 而言,建議您從掌握新的應用程序入手,因爲與升級現有 DTS 包或 Analysis Services 數據庫相比,這樣可以學到更多東西。如果您已有一個可用的包或數據庫,您會發現,“重新創建”現有的包或數據會十分有用。在您熟悉了這些新增工具、功能和概念之後,便可試着升級現有對象。

許多客戶都藉助 SQL Server 工具,使用熟悉的來自一個或多個源系統的商務智能結構來開發新的系統,使用 DTS 填充維度關係型數據倉庫,然後再用數據倉庫來填充 Analysis Services 數據庫。但是,SQL Server 2005 提供了許多選項,通過消除或淡化不同的組件使其背離了這種一般化設計。



評論列表
SQL Server 2005 中的商務智能和數據倉庫(2)

三、關係型數據倉庫
SQL Server 2005 關係數據庫引擎包含一些對數據倉庫樣式應用程序設計和維護大有幫助的功能。這些功能包括:

• 對於超大型的表而言,表分區可快速數據的加載速度,並簡化維護過程。

• 輕鬆創建報告服務器

• Transact-SQL 方面的改進包括新增的數據類型和新增的分析功能

• 聯機索引操作

• 細化備份/還原操作

• 快速初始化文件


報告服務器
要想將關係操作報告從事務處理數據庫中分離出來,經常採用的一項技術便是維護一臺報告服務器。報告服務器對事務處理數據庫映像的維護一般都有一定的時間延遲,通常截止到前一天。報告服務器多用於報告功能和數據倉庫提取。

Microsoft SQL Server 2005 新增了兩項功能,使報告服務器的創建和維護過程變得更加簡單。SQL Server 報告服務器的延遲時間與以前相比大大縮短。同時,報告服務器被設計爲充當事務處理系統的備選系統。

要創建報告服務器,先要創建一個數據庫鏡像,這是 SQL Server 2005 的新增功能,它爲系統的高可用性提供了一個緊急備用系統。更多信息,請閱讀聯機叢書的“數據庫鏡像概念”主題。數據庫鏡像不能夠直接查詢,這時第二個新增功能就能派上用場了。

在鏡像上創建一個數據庫視圖。數據庫視圖是數據庫在某個時點的只讀副本。數據庫視圖並非數據庫的完整副本;極爲節省空間。多個數據庫視圖還是可以同時共存,雖然維護數據庫視圖會對數據庫視圖所基於的事務處理數據庫產生一定的影響。更多信息,請閱讀聯機叢書的“瞭解數據庫視圖”主題。

通過在數據庫鏡像上創建數據庫視圖,您可輕鬆爲系統的高可用性創建備用服務器,此服務器還可用作報告服務器,起着雙重作用。

表分區
分區表和分區索引將數據分割到多個水平單元中,以便於將行組映射到單獨的分區中。而對數據執行操作(如查詢)時,又可以將整個表或索引作爲一個整體來執行。

分區可以:

• 改善數據表和索引的可管理性。

• 改善多 CPU 機器上的查詢性能。




在關係型數據倉庫中,事實數據表比較適合應用表分區,而按日期範圍分區又是最常見的分區策略。

正如聯機從書的“創建分區表和索引”主題中所描述的,定義分區表可分爲三個步驟:

1.
創建一個分區函數,指定使用此函數的表如何分區。

2.
創建一個分區方案,指定應用此分區函數的分區在文件組上的位置。

3.
使用此分區方案創建一個表或索引。


多個表可以使用同一個分區方案。

本文討論了事實數據表的“範圍”分區,但其目的並非是針對表分區的完整討論或教程。有興趣的讀者請參閱 SQL Server 聯機叢書。

最常用的分區方案是按日期範圍(如年、季、月或甚至天)對事實數據表進行分區。在大多數情況下,對大型事實數據表進行日期分區可以提供良好的可管理性收益。爲了改善查詢性能,應儘量使用相同的分區方案對時間維度表進行分區。

• 分區表和未分區表的行爲方式相同。

• 針對表的查詢能夠得到正確解析。

• 針對表的直接插入、更新和刪除會被自動解析到適當的分區。


使用數據表分區快速加載數據
許多數據倉庫應用程序都力求在越來越小的加載窗口中加載越來越多的數據量。典型的流程是這樣的,先從幾個源系統中提取數據開始,接下來便是在這些系統間清理、轉換、合成和合理化數據。數據管理應用程序被限制爲在加載窗口中完成整個提取、轉換和加載流程。通常,系統的業務用戶都強烈要求將數據倉庫查詢時的不可用時間降至最低。在設計時,數據管理應用程序的“寫入”步驟(即將新數據插入到現有數據倉庫的步驟)必須在短時間內完成,且要最小化對用戶造成的影響。

爲了非常快速地加載數據,數據庫恢復模型必須爲“批量記錄”恢復模式或“簡單”恢復模式,而數據表必須爲空,或是包含數據但不包含索引。如果滿足這些條件,不作記錄的加載便成爲可能。在 SQL Server 2000 中,分區表出現以前,這些條件通常只在初始歷史數據倉庫加載中才能滿足。一些具有大型數據倉庫的客戶已通過在分散的物理表上搭建 UNION ALL 視圖,構建了一個準分區結構;這些數據表都使用不記錄技術填充每個加載週期。這一方法並不盡如人意,而 SQL Server 2005 分區表則提供了更爲優秀的功能。

在 SQL Server 2005 中,您不能直接在分區中執行不記錄加載。但是,卻可以將數據加載到將調用僞分區的單獨表中。在特定條件下,您可以用執行速度極快的元數據操作將僞分區切換到分區表中。此技術可滿足我們的兩個要求:

• 最小化整體加載時間:在不作記錄的情況下執行僞分區加載,以及

• 最小化對最終用戶的影響,並確保數據倉庫的完整性:僞分區可以在用戶查詢數據倉庫時被加載。在執行分區切換之前,數據管理應用程序會等到所有事實數據表全部加載完畢爲止。分區切換的執行速度非常快,反應時間通常不到一秒。


此外,僞分區還可作爲單獨的表進行備份,從而改善系統的可管理性。

使用表分區快速刪除數據
許多數據倉庫在數據倉庫中保留了一個詳細活動數據的滑動窗口。例如,事實數據表可能包含三年、五年或十年的數據。每到一個時間週期,便從數據表中刪除最舊的數據。持續刪除數據的主要原因在於要提高查詢性能並最小化存儲成本。

SQL Server 2005 分區使大型分區事實數據表中舊數據的刪除倍加輕鬆。如上所述,簡單地創建一個空白僞分區,然後將其切換到分區表中。分區表在其曾植入分區的地方有一個空白分區;僞分區在其曾爲空白的地方包含數據。用戶可以根據需要對僞分區進行適當的備份、截斷或刪除。

或者,您還可以選擇重新定義分區函數,將所有空白分區合併到一個分區中。

Transact-SQL 方面的改進
新的數據類型
SQL Server 2005 中有一些很重要的新類型,這些類型對數據倉庫大有裨益:

• Varchar(max)、nvarchar(max) 和 varbinary(max) 支持 2GB 的數據,對於 text、ntext 和 image 數據類型非常有用。這些擴展的字符類型可能對在數據倉庫中保存擴展的元數據和其他說明性信息非常有用。


新的分析功能
許多新分析功能都提供了 Transact-SQL 中的基本分析功能。這些功能在那些允許用戶查詢關係數據庫,而不是通過 Analysis Services 排他查詢數據的數據倉庫中非常有用。另外,在數據中轉過程中,這些複雜的計算常被用來開發有價值的數據屬性。

ROW_NUMBER。返回結果集的連續行號。

RANK。返回行在結果集中的等級。在通常情況下,RANK 值與有序數據集上的 ROW_NUMBER 值相同。但對於那些彼此之間有關聯的行來說,則是所有具有相同排序值的行都有相同的等級。而下一個等級則又與 ROW_NUMBER 值相同。換句話說,如果在第一個位置存在雙向關聯,那麼行 1 和行 2 的 RANK 就都爲 1,而行 3 的 RANK 則爲 3。不存在 RANK 爲 2 的行。

DENSE_RANK。返回行在結果集中的等級。DENSE_RANK 函數與 RANK 相似,只是去除了 RANK 函數所留下的空隙。在上面的示例中,行 1 和行 2 的 RANK 爲 1,而行 3 的 RANK 則爲 2。

NTILE。將有序集分成指定數量、大小近似相等的組。

在 SQL Server 2005 Beta 2 中還不能使用這些函數。

PIVOT 和 UNPIVOT 操作符
PIVOT 操作符可以按查詢中的中斷值旋轉結果集,從而使您可以生成交叉數據報告。例如,如果表中在兩個不同的行中包含 "Actuals" 和 "Budgets" 數據,則使用 PIVOT 操作符將可以生成帶有 [Actuals] 和 [Budgets] 列的交叉數據報告。

與之相似,UNPIVOT 操作符可以將一行拆分爲若干行。在此示例中,帶有 [Actuals] 和 [Budgets] 列的行集可以被轉換爲包含這些值的多個行。

在以前的 SQL Server 版本中,用戶能夠編寫複雜的 Transact-SQL SELECT 語句來旋轉數據。PIVOT 和 UNPIVOT 操作符則爲數據旋轉提供了更爲簡單的機制。

遞歸查詢
在許多方案中,“遞歸查詢”都是非常有用的。SQL Server 2005 中的新增功能令遞歸查詢成爲可能,雖然此項功能還不是十分簡單易用。

遞歸查詢是針對自聯接表的查詢。自聯接表的兩個常見示例有保存員工及其經理信息的數據表,和保存材料清單的數據表。在 AdventureWorks 數據庫的 Employee 表中對自聯接數據表進行了說明。

查詢自聯接表的直接關係通常十分簡單,如查詢直接向經理報告的員工數量。但是,如果要回答“經理的組織中有多少名員工?”這樣一個問題卻十分困難。

SQL Server 2005 中的關係數據庫功能解決了這一問題,這一功能被稱爲“遞歸通用表表達式”。“附錄”中包含一個遞歸查詢的示例,該示例回答了以上定義的問題。聯機叢書的 "WITH <common_table_expression>" 主題中包含更多的相關信息。

 SQL Server 2005 中的商務智能和數據倉庫(3)

四、提取、轉換和加載 (ETL)
數據轉換服務 (DTS) 對於 SQL Server 2005 而言,是一項全新的技術。DTS 是 SQL Server 2000 中很受歡迎的一項功能,但 DTS 2005 已被重新設計成企業 ETL 平臺。DTS 爲構建企業級 ETL 應用程序提供了大量必需的功能,以及非常高的擴展性能。DTS 是完全可編程的、嵌入式的、可擴展的——所有這些特性都使它成爲理想的 ETL 平臺。

下表總結了 DTS 2005 的這些功能。有關 ETL 系統開發 DTS 適用性更加完整的討論,請參閱 SQL Server 聯機叢書。

包開發
SQL Server 2005 的 DTS 功能 企業 ETL 開發  ETL 平臺
使用 Business Intelligence Development Studio 圖形用戶界面設計數據管理應用程序的 DTS 包。DTS 包的設計、開發和調試均在 Business Intelligence Development Studio 中完成,您只需從工具欄拖動任務、爲其設置屬性並將任務與優先約束相連接便可完成這一切。
•    
使用 SQL Server Management Studio 嚮導開發執行常規任務(如“複製數據庫”)的簡單 DTS 包。
•    
軟件供應商將在其產品中嵌入 DTS 功能,構建按需生成自定義包的嚮導。
   •  
將控制流從數據流中分離出來。大多數的 DTS 包都包含多個控制流任務,以及循環任務或順序任務,這些任務都被放置在控制流窗格中。控制任務(管道任務)是包的工作動力,它擁有自己的設計表面,可用於佈置數據流。控制流和數據流的分離使得程序更加容易讀取。
•    
包變量是經過定義且可見的。變量是受限制的,如受包、循環或任務的限制。
•    
複雜的 ETLM 系統可以通過構建包網絡實現,其中包含一個調用其他包的包。子包可以很好地重新使用邏輯、變量和上下文。DTS 2005 與 DTS 2000 相比,對嵌套數據包的需求有所減少。
•    
包配置框架是可擴展的系統,可用於自定義包在不同環境中的運行方式。
•    
DTS 程序以 XML 格式存儲在文件系統或 SQL Server 中。DTS XML 文件可受源代碼管理。
•  •  
DTS 2000 包遷移向導可以幫助您將包遷移至 DTS 2005,它還可以在出現升級問題的地方提供警告。
•    
DTS 2000 運行時包含在 SQL Server 2005 中,在不升級 DTS 2000 包的情況下,仍可運行。
•    
包的操作和結果會以多種形式被記錄下來,分發給廣泛的提供程序。
•  •  
事件處理程序邏輯只需定義一次,便可多次使用。
•  •  
與 WMI 的集成表明包可以對外部事件(例如文件複製的完成)作出響應,或拋出可供其他進程使用的 WMI 事件。
•  •  
包可重啓性與事務控制和故障檢查點一起,可以幫助管理員管理複雜的包,移動大量數據。
•    

控制流
SQL Server 2005 的 DTS 功能 企業 ETL 開發  ETL 平臺
優先約束:您可以設計一個包,以在任務成功、失敗或完成時將控制傳遞給這些不同的任務。
•    
循環任務包括 For、ForEach 和 Sequence 循環。包開發人員可以在數據的所有(或一組)表上、目錄中的文件上或是 Analysis Services 多維數據集分區上輕鬆執行一組操作。
•    
Analysis Services 集成是無縫的,它與自動執行 Analysis Services DDL 的控制任務一起處理 Analysis Services 對象,或執行數據挖掘查詢。正如下面所討論的,DTS 管理還集成了 Analysis Services。
•    
VB.NET 腳本可與“腳本任務”一起使用。被稱爲“ActiveX 腳本任務”的第二個腳本任務主要用於向後兼容 DTS 2000。
•    
通信任務包括:

• 消息隊列

• 發送郵件

•    
其他控制流任務包括:

• 大容量插入

• 執行包

• 執行進程

• 執行 SQL

• 文件系統

• FTP

•    
其他任務可以使用 DTS 對象模型輕鬆開發。
   •  

數據流
SQL Server 2005 的 DTS 功能 企業 ETL 開發  ETL 平臺
在數據流管道中存在多個源、轉換和目的。只有在轉換完成時,數據才能被讀取、合併和操作,然後才能寫入。中轉表所需的多次寫入被削弱或消除;轉換性能得到極大提高。
•    
“DTS 管道”任務使用來自多個異類數據源和本機的數據。可擴展的“數據源”體系結構支持來自平面文件、OLEDB 源(包括 DB2 和 Oracle)和原始文件的數據。其他源,包括使用特殊結構化數據的源都在計劃之內。
•  •  
其他數據源可以由 Microsoft 及其合作伙伴輕鬆開發。
   •  
來自多個源的數據可以與聯接、查找和聯合操作符相聯接。這些操作都在內存中執行,不需要對數據庫或文件執行寫入操作。
•    
數據流可以使用條件分離和多播轉換。類似編譯器的 DTS 引擎確定了可以平行操作哪些數據流。
•    
大量基於行的數據轉換都是由字符映射、複製映射、數據轉換和派生列轉換所提供的。這些操作符更像是嚮導,而非轉換,它們提供了用戶所需的大部分數據轉換。
•    
有些數據轉換任務需要對多個行中的數據進行比較。排序和聚合轉換可以在數據流中以極高的性能執行這些操作,其性能遠非數據庫聚合可及。
•    
有些數據轉換任務需要複雜邏輯,例如模糊匹配、模糊分組、時間維度生成以及旋轉或反旋轉。其他常見任務(例如維度鍵管理)則需要多個步驟。特殊技術和嚮導使這些複雜技術可供所有用戶使用。
•    
轉換後的數據可以寫入異類目標,其中包括 SQL Server 表、OLEDB 數據庫表、平面文件以及原始文件。
•  •  
轉換後的數據可以與 Microsoft BI 解決方案的其他組件集成,其中包括 Analysis Services 數據庫和數據挖掘模型。
•    
由轉換步驟所導致的錯誤流可以以多種方式進行管理:

• 進程內轉換可以“修復”數據並重新提交主要流。

• 錯誤流可以被記錄到表或文件中,以備脫機研究和重新提交。

•  •  
其他轉換和目的可以由 Microsoft 及其合作伙伴輕鬆開發。
   •  

開發和調試
SQL Server 2005 的 DTS 功能 企業 ETL 開發  ETL 平臺
包開發商可以在每個控制流任務中定義控制流斷點。在調試過程中,斷點可以定義在某些任務執行點之前、之後,或定義在這些任務執行點。
•    
包開發商可以爲數據流中的每個轉換附加一個數據查看器。在調試過程中,數據查看器會顯示在該點的轉換後數據流內容。
•    
Business Intelligence Development Studio 寄宿在 Visual Studio 中。腳本及其他編程任務可以充分利用該企業開發環境的優點。
•  •  
包開發可以幫助用戶將所有包組件(包括自定義腳本和可執行程序)捆綁在一起,以用於發行測試、生產或其他客戶系統。
   •  

可供 DTS 2000 開發人員使用的 DTS 2005
DTS 2000 用戶已經開發出了一套執行復雜操作的技巧。這些技巧,尤其是編寫自修改包,在 DTS 2005 中不再有用武之地。在 DTS 2005 中要使用變量和配置基礎結構來編寫動態包、不要再試圖編寫自修改包。

配置良好的變量和配置基礎結構還可以減少創建複雜子包系統的需求。如果設計完善,單一包便可滿足多種需求;例如,單一包可以在多種不同配置中重複使用,以用來在維度數據倉庫中加載許多維度表。在 DTS 2000 中,一個複雜的 DTS 包網絡可能包括 50-100 個包;而在 DTS 2005 中,一個複雜的網絡可能只包含 10 個包。


 
SQL Server 2005 中的商務智能和數據倉庫(4)

五、Analysis Services
SQL Server 2000 Analysis Services 由兩個主要的互補功能組成:聯機分析處理 (OLAP) 和數據挖掘。這兩個組件在 Analysis Services 2005 中仍然存在,並且是分析應用程序的基石。

Analysis Services 2005 OLAP 中的功能改進主要可以歸納爲兩類改進:

• 啓用了一些新的分析應用程序,而達到此目的做法便是添加全新的功能,或是使複雜功能的構建變得更加簡單。

• 增強了分析應用程序的企業適應性

新增功能或改進功能 設計和部署 管理和操作
統一維度模型合併了關係數據模型和 OLAP 數據模型的最佳特徵。後文將對“統一維度”模型進行更爲詳細的討論。
•    
主動緩存使您可以用極低的成本操作低延遲時間的應用程序。後文將對主動緩存進行更爲詳細的討論。
•  •  
關鍵績效指標 (KPI) 框架爲定義公司度量提供了一個基於服務器的簡單機制。KPI 由值、目標、當前狀態和趨勢表達式組成,並通過諸如量尺和停車燈之類的簡單圖形顯示出來。
•    
翻譯爲用戶提供了一個簡單的集中管理機制,使他們可以用自己喜歡的語言來存儲和顯示分析數據。一個分析數據庫可以用多種語言來顯示。
•    
MDX 腳本是用於定義“計算成員”、“命名集”和“單元計算”的新機制。

• “MDX 腳本”的語法得到了簡化和改進。“MDX 腳本”可以分步調試。

• “MDX 腳本”計算可以緩存和保留,這可以提供優良的查詢性能,即使面對複雜計算也沒有問題。

• “MDX 腳本”計算可以維護實時的動態計算行爲。


後文將對“MDX 腳本”進行更爲詳細的討論。
•  •  
Analysis Services 存儲過程允許您使用公共語言運行時編程語言(如 C++、VB 或 C)創建外部例程。存儲過程擴展了 Analysis Services 2000 用戶定義函數 (UDF) 所提供的功能。後文將對 Analysis Services 存儲過程進行更爲詳細的討論。
•    
數據寫回增強使其性能較以前有了十倍的增長。分析應用程序可以將數據寫回到聚合單元中,然後再有選擇地執行聚合數據到其底層葉數據的分配工作。
•  •  
內置的業務規則、工具和嚮導使艱難的設計變得簡單:

• 半累積度量值

• 時間智能

• 帳戶智能

• 財務聚合

• 貨幣轉換

• 時間維度生成

•    
數據源視圖提供了一種機制,既可以簡化,又可以擴展分析應用程序底層的關係數據庫。後文將對“數據源視圖”進行更爲詳細的討論。
•    
Analysis Services 的數據定義語言是 XML。Analysis Services 元數據知識庫已經沒有了,取而代之的是由 Analysis Services 服務器所存儲和管理的 XML 文件。
•  •  
Web 服務:XML for Analysis (XML/A) 是基於標準的本機協議,其作用是與 Analysis Services 服務器進行通信。啓用了新型的應用程序,而且開發這些應用程序還十分簡單,這些應用程序將分析與操作實時集成在一起。

• 將 XML/A 作爲本機協議,便可以把 Analysis Services 客戶端配置爲具有零覆蓋範圍,且每臺服務器都自動成爲一種 web 服務。

• 具有小覆蓋範圍的 Win32 層可用於向後兼容與 Analysis Services 2000 一起使用的,用於 OLAP、ADOMD 和 ADOMD.Net 的 OLE DB 工具。許多客戶和開發人員將繼續使用 ADOMD.Net 對象模型來構建 Analysis Services 自定義應用程序。

•  •  
計算被集中在服務器端。與 Analysis Services 2000 不同,Analysis Services 2005 在服務器端執行所有計算。這樣做的優點十分顯著:

• 客戶端的佔用空間爲零;消除了客戶端緩存。

• 複雜計算的查詢性能得到極大提高。


實現這些改進的代價是使對最簡單查詢的查詢性能有輕微的降低,因爲這些查詢在 Analysis Services 2000 中是在客戶端緩存中被解析的。
•  •  
開發和管理工具(Business Intelligence Development Studio 和 SQL Server Management Studio)是用於商務智能應用程序的第一款完整的開發環境。這些新工具可以幫助您捕獲和建模所有數據,加快應用程序的開發速度。
•  •  
Analysis Services 2005 對其權限模型作了改進。不同的角色和權限包括:

• 服務器管理員

• 數據庫管理員

• 處理對象

• 查看對象結構(由對象授予)

• 改變對象結構

   •  
Analysis Services 2005 包含 150 多項安全性設計更改。在安全模型方面的改進包括:

• Analysis Services 具有多條安全防線,屬於“默認安全設置”。

• 管理權限得到更爲細緻的劃分;不同數據庫對象的權限得以分離,執行設計更改的權限與處理權限也得到了分離。

• 可以對本地多維數據集進行加密。

• Analysis Services 在運行時其權限級別爲可能的最低級別。

• 可以對客戶端/服務器端通信進行加密和簽名,以避免出現數據包竊聽、欺詐、篡改和拒絕的情況。

• 加密操作在服務器端強制執行,服務器可以拒絕不使用加密的客戶端。

   •  
Analysis Services 2005 服務器可以使用工具生成可監控的服務器跟蹤事件,所用工具的示例有 SQL Server 事件探查器,此工具在 SQL Server 關係數據庫中長期以來一直可用。

• 審覈應用程序的訪問和使用

• 審覈應用程序和服務器事件以提高服務器的可管理性。

• 審覈應用程序錯誤,與“Microsoft 支持”合作,以便更快地解決問題。

   •  
得到改進的計算性能來源於以下幾項功能:

• 服務器計算緩存在多個用戶間共享

• 查詢優化器會用可以提高性能的等價語句“重寫”查詢。

• 得到改進的 NonEmpty 性能

• 非重複計數度量值得到改進

   •  
Analysis Services 2005 對中間層體系結構有着廣泛的支持。用低空間佔用率的對象模型交付可伸縮的中間層——可擴展到支持成千上萬名並行用戶。其在廣泛區域網絡中的部署性能雖未有過正式的測評,但肯定要優於 SQL Server 2000。
   •  
Analysis Services 2005 支持無限大的維度。因爲維度不需要再在內存中緩存。
•  •  
Analysis Services 2005 支持在標準管理工具集中平行處理分區。
   •  
SQL Server Management Studio 將被用來管理所有的 SQL Server 數據庫。它可以使用 Analysis Services 對關係數據庫提供集成的管理,其集成工具可用於:

• 服務器控制檯管理(取代了企業管理器和分析管理器),

• 查詢分析(SQL 和 MDX),

• 來自關係引擎和 Analysis Services 的分析事件,

• “飛行記錄儀”和“捕獲重放”功能可以自動捕獲服務器事件,這可以有效地幫助您(或 Microsoft Services)診斷問題。

   •  
一種新的對象模型,分析管理對象 (AMO),取代了 DSO。DSO 的作用是向後兼容,真正起作用的是 AMO,它提供了豐富的新功能,尤其是它可以用管理工具和開發工具通過腳本來創建對象和修改對象,令人印象深刻。
•  •  

 
SQL Server 2005 中的商務智能和數據倉庫(5)

構建分析數據庫的途徑主要有兩個:

• 完全自定義:從源開始,通常是從一個關係型源開始,定義維度、多維數據集、關鍵績效指標、計算和數據挖掘模型。此途徑對那些業已具備數據倉庫或主題集市的客戶來說十分適合。在多維數據集嚮導的第一個屏幕中,此選項的標籤爲“使用現有數據庫/數據倉庫”。

• 可自定義的模板:從模板開始,定義和生成一個完整的應用程序,包括關係數據庫、DTS 包和 Analysis Services OLAP 數據庫。設計和生成這些組件的目的是使這些組件無縫合作,共同組成一個完整的應用程序。此途徑對於那些從模板開始安裝完整商務智能解決方案的客戶來說十分適合。在多維數據集嚮導的第一個屏幕中,此選項的標籤爲“在不具備數據源的前提下設計商務智能模型”。


不管採用哪種方法,基本的系統設計都假設使用當前熟悉的、來自一個或多個源的商務智能結構來填充維度關係型數據倉庫,然後再用數據倉庫來填充 Analysis Services 數據庫。但是,SQL Server 2005 提供了許多選項,通過消除或淡化不同的組件使其背離了這種常規設計。在下面“統一維度”模型中討論了一些其他的備選系統。

從現有的源數據庫創建自定義數據庫
創建 Analysis Services 數據庫的第一種方法最爲 SQL Server 2000 的用戶所熟悉。即從任意結構的源數據庫開始着手創建數據庫:

• 按事實數據表和維度表構建一個維度數據庫,或

• 任何其他的數據庫結構,包括標準化的事務系統。


SQL Server 2005 中可從標準化數據庫尋源的能力是對 Analysis Services 2000 的一大突破,在 Analysis Services 2000 中,執行此操作需要一個維度結構,此結構或是星型的,或是雪花型的,或是拉伸型的。此功能使您可以輕鬆地開發具有極低延遲時間的商務智能應用程序。

通過直接在事務數據庫內構建 Analysis Services 數據庫,而不需要先構建正式的數據倉庫,可以用較低的成本,輕鬆有效地滿足許多用戶的要求。如果您需要僅對數據執行最低的數據轉換、清理和集成便投入使用,則可考慮使用一個 Analysis Services 數據庫來補充或替換現有的關係報告。您可以充分利用 Analysis Services 的功能和交互性,更好地管理事務系統中的負載。

雖然可以直接從事務系統構建和維護 Analysis Services 數據庫,但只有先構建關係型數據倉庫才能最好地滿足許多企業分析的要求。複雜的數據集成和數據更改管理問題可以通過典型的數據倉庫體系結構得到最好的解決,其中 Analysis Services 數據庫充當着查詢和分析引擎的角色。

數據源和數據源視圖
構建分析應用程序的第一步就是在 Business Intelligence Development Studio 中創建一個新的 Analysis Services 項目。創建了空項目之後,應當創建一個“數據源”並將其與源數據庫建立連接,此源數據庫可以是任何受支持的關係數據庫管理系統中的數據庫。對於 Beta 2 版本,建議您將 SQL Server 2000 或 SQL Server 2005 關係數據庫作爲源。

“數據源”負責爲源數據連接存儲信息。“數據源視圖”中包含着源數據庫表相關子集的信息。此信息不只侷限於源數據庫中表的物理結構;您還可以添加諸如關係、表和列的友好名稱、計算列和命名查詢之類的信息。

“數據源視圖”可以在 BI 項目和 DTS 項目之間共享。“數據源視圖”很有用處,尤其是在以下幾種情況中:

• 源數據庫包含成千上萬個表,但其中只有相對少數的表在 BI 應用程序中真正有用。

• Analysis Services 數據庫使用來自多個源的數據,這些源有多重數據庫、服務器、平面文件或 RDBMS。

• BI 系統開發人員不具有源數據庫中的系統管理權限,且不允許創建物理視圖或修改源數據庫。

• BI 系統開發人員需要以“脫機”模式工作,必須斷開與源數據庫的連接。設計和開發任務針對“數據源視圖”發生,而“數據源視圖”已從源數據中分離出來。


您爲“數據源視圖”設置良好名稱和關係所作的投資將換來分析應用程序的輕鬆開發。

創建維度和多維數據集
創建了“數據源視圖”之後,便可以右擊“解決方案資源管理器”窗格中的“多維數據集”圖標,選擇“新建多維數據集”,創建一個多維數據集。您可以啓用 IntelliCube 檢測和建議。如果您選擇使用 IntelliCube,則必須決定是否構建一個已爲報告經過旋轉優化的多維數據集。IntelliCube 技術會對“數據源視圖”中的數據庫和數據基數關係進行檢查,並按事實數據表、維度表或用於解析多對多關係的維度-事實橋接表來智能呈現表特徵。對於 Beta 2 版本來說,選擇是爲旋轉還是爲報告優化多維數據集和維度存在一些微小的差別。唯一的差別就是 IntelliCube 是否會嘗試在維度屬性之間創建層次關係。由於層次易於創建,也易於毀壞,因此無須擔心會花費太多時間和精力。

建議您在此“多維數據集嚮導”的初始屏幕後立即點擊“完成”按鈕。這樣會一次定義好所需的 Analysis Services 數據庫、維度、層次、屬性和多維數據集。您可以對此設計進行編輯,但通常情況下,仔細一點兒走完嚮導,並在過程中作出一些明智的選擇會更加有效。

實施完“多維數據集嚮導”之後,您可能會發現您更喜歡用“維度嚮導”來逐一地創建複雜的維度,要啓動“維度嚮導”,只需在“解決方案資源管理器”窗格中右擊“維度”即可。仔細定義完大型維度(例如“產品”、“客戶”和“時間”)後,啓動“多維數據集嚮導”,並確保在適當的位置包括這些預定義的維度。

構建和部署
到此爲止,前面執行的這些步驟已在您的開發機器上以 XML 文件輕鬆創建了維度和多維數據集定義和結構。Business Intelligence Development Studio 和“配置管理器”使您可以對目標服務器上的項目構建和部署過程進行管理。默認情況下,“部署”目標服務器就是您的本地服務器。您可以創建適合其他環境部署的備選配置。項目的主要屬性,如目標服務器的名稱和數據源連接字符串等,可能會因配置而不同。

要在開發循環過程中預覽和測試多維數據集和維度,請從 Business Intelligence Development Studio 的菜單中選擇“部署”,在指定的目標服務器上構建和部署項目。或者,單擊 F5,或選擇“調試”(位於 Business Intelligence Development Studio 主菜單中)。這樣會啓動幾個調試和瀏覽工具中的一個,具體啓動哪個,要取決於您所執行的操作以及您選擇“部署”的時間。根據此上下文,“部署”過程會啓動多維數據集瀏覽器、MDX 腳本調試器或 KPI 瀏覽器。

您可能想在定義完系統的維度、度量值和多維數據集後查看一下系統原型。請使用相對較少的數據針對開發數據庫進行處理,以驗證數據和結構的行爲是否與預期的行爲相一致。

作爲原型的一部分,您可能想設計一些更爲複雜的“Analysis Services 數據庫”、“關鍵績效指標”、“操作”和“計算”組件。如果您的數據庫是被對不同數據視圖感興趣的不同用戶團體使用的話,請深入查看“透視”和備選的安全計劃。如果您計劃部署可供國際上不同語言的用戶使用的數據庫,則可以使用“翻譯”功能引入本地化項目名稱。最終,原型會評估備選的物理配置,例如“分區”和不同的“主動緩存”選項。

在 Analysis Service 數據庫開發完成之後,便可以部署數據庫對象,以便於進行最終測試、臨時過渡並投入生產服務器。在構建階段的項目輸出可以用作 Analysis Services 部署實用工具的輸入。此實用工具可以幫助您部署和處理數據庫。

從模板創建可自定義的數據庫
我們剛剛描述了從已知源創建自定義 Analysis Services 數據庫的基本步驟。這種通過“多維數據集嚮導”和“維度嚮導”創建的方法與創建 Analysis Services 2000 數據庫的標準方法十分類似。

創建 2005 分析應用程序的另外一種備選方法就是選擇“多維數據集嚮導”第二個屏幕上的“在不具備數據源的前提下設計商務智能模型”選項。這種通過嚮導創建的方法與 SQL Server 2000 Accelerator for Business Intelligence 的設計體驗十分類似。這種設計體驗會從模板生成一個完全可自定義的應用程序,此處的模板:具有豐富的維度結構和分析功能,還有可能包括一個關係型數據倉庫和 DTS 包。Microsoft、集成商或獨立軟件供應商都可以提供這種模板。

不管採用哪種通過嚮導創建的方法,是從源數據庫創建,還是從模板創建,都可以設計相同的 Analysis Services 數據庫。第一種選項假設您將創建一個完全自定義的系統。對象名稱和結構都是可以完全自定義的,初始設計是受源數據庫中的名稱和結構所驅動的。模板選項也可以創建一個完全自定義的數據庫,但是初始設計是受專家主題區域模板所驅動的。

許多用戶都喜歡將這兩種方法結合使用。一個非常常見的方法就是用現有源創建 Analysis Services 數據庫中的大部分內容,而用模板法生成“時間”維度。

統一維度模型
Analysis Services 2005 使關係數據庫與多維度 OLAP 數據庫之間的界線變得更加模糊。OLAP 數據庫分析應用程序一直以來都具有着巨大的優勢,這些優勢主要體現在以下幾個方面:

• 卓越的查詢性能、

• 豐富的分析功能,以及

• 其易於業務分析師使用的操作簡單性。


不過,在實現這些功能的同時也帶來了一定的負面效應。到目前爲止,已經發現的問題就有 OLAP 數據庫(包括 Analysis Services 2000 在內)很難交付以下內容:

• 包括多對多關係的複雜架構、

• 對廣泛屬性集的詳細報告,以及

• 低延遲數據。


通過將傳統 OLAP 分析與關係報告二者的優點相結合,Analysis Services 2005 能夠提供一個可以同時覆蓋這兩方面需求的統一維度模型。在 SQL Server 2005 中定義的一套多維數據集和維度被稱爲統一維度模型 (Unified Dimensional Model),或 UDM。UDM 的優勢和靈活性引發了設計領域的鉅變。過去,BI 架構師會權衡備選基礎結構的收益和成本,並在關係數據庫和 OLAP 數據庫之間作出選擇。現在,架構師可以設計一個“統一維度模型”,然後從傳統極限中確定一點用於放置 Analysis Services 系統邏輯設計和物理配置。

基於屬性的維度
Analysis Services 2005 圍繞維度的屬性,而非維度的層次構建多維數據集。在 Analysis Services 2000 中,維度設計由層次主宰,層次的示例有 {年、月、日} 或 {國家、地區、城市}。這些層次要求各層之間存在密切的數據關係。作爲成員屬性和虛擬維度公開的“屬性”是“二等公民”。雖然有可能在物理維度中生成屬性,但性能因素卻使這一技術的廣泛使用大打折扣。熟悉關係結構的用戶對 OLAP 數據庫中對層次的過度側重深感困惑。

Analysis Services 2005 結構與關係型維度結構更爲類似。一個維度可包含多個屬性,每個屬性都可用於切片和篩選查詢,同時每個查詢又可以合併到層次中,而不必考慮數據的相互關係。

有 OLAP 背景的用戶都知道強大的層次結構的價值,有一點您可以肯定,那就是“城市”清晰地彙總爲“地區”和“國家”。這種自然層次結構依然存在,並應在適當的位置進行定義:查詢性能會因爲這種層次結構而得到提高。



 
SQL Server 2005 中的商務智能和數據倉庫(6)

例如,設想一個“客戶”維度。關係型源表有八列:

• 客戶鍵

• 客戶名稱

• 年齡

• 性別

• 電子郵件

• 城市

• 地區

• 國家


相應的 Analysis Services 維度應具有七個屬性:

• 客戶(整型鍵、以“客戶名稱”作爲名稱)

• 年齡、性別、電子郵件、城市、地區、國家


數據中存在一種自然層次結構,{國家、地區、城市、客戶}。出於導航目的,應用程序開發人員可以選擇創建第二個層次結構:{年齡、性別}。商務用戶並沒有看到這兩個層次結構行爲方式之間有何區別,但是,自然層次卻可以從深諳層次關係的索引結構(對用戶隱藏)中受益。

新維度結構的最大優勢在於:

• 維度不需要加載到內存中。因此,維度可以非常巨大(經測試,Beta 2 可支持上千萬名成員)。

• 用戶可以添加和刪除屬性層次結構,而不必再重新處理維度。屬性層次索引結構屬輕型結構,在後臺計算,並不影響多維數據集查詢。

• 重複的維度信息被去除;使得維度更加輕巧。

• 由於引擎爲並行處理創建了機會,因此維度處理信息性能得到了改進。


維度類型
Analysis Services 2000 中包括兩種維度類型:常規層次類型和父子類型。Analysis Services 2005 新增了一些重要的新維度結構。其中有些結構的名稱是臨時的,但是,這些名稱都是 BI 文獻中較爲通用的。

• 角色扮演:維度扮演着一些重要角色,具體哪些角色要依上下文而定。例如,[時間] 維度可能會被 [訂購日期] 和 [發貨日期] 重用。在 2005 中,扮演着某些角色的維度只需存儲一次,便可多次使用。這樣便可使所需的硬盤空間和處理時間降至最低。

• 事實:事實或“退化”維度與事實(如事務編號)具有一一對應的關係。從本質上講,退化維度不能用於分析,但可用作標識,以定位特定的事務,或識別組成聚合單元的事務。

• 引用:維度並不能夠直接和事實數據表發生聯繫,但可通過另一維度間接發生聯繫。這方面的原型示例有 [地理位置] 引用維度,它同時關聯了 [客戶] 和 [銷售團隊] 兩個維度。引用維度可能由數據提供程序提供,幷包括在多維數據集中,不必再修改事實數據。

• 數據挖掘:數據挖掘維度支持從數據挖掘模型(包括羣集、決策樹和關聯規則)生成的維度。

• 多對多:這些維度有時被稱爲多值維度。在大部分維度中,事實能且只能連接一個維度成員。多對多維度解決了多維度成員問題。例如,銀行儲蓄客戶可以有多個帳戶(支票、儲蓄);一個帳戶可以有多個客戶 (Mary Smith、John Smith)。[客戶] 維度有多個成員,這些成員都與一個帳戶事務相關聯。在維度不能夠直接關聯事實數據表時,2005 多對多維度支持複雜的分析,並擴展了維度模型,使之超越了傳統的星形架構。


量度組和透視
Analysis Services 2005 引入了“量度組”和“透視”,以用來簡化分析數據庫的設計和部署。在 Analysis Services 2000 中,鼓勵用戶構建多個物理多維數據集。每個多維數據集相當於一個特定的維度,通常還相當於一個特定的關係事實數據表。虛擬多維數據集以一種對商務用戶透明,而對開發人員設計又不太複雜的方式,合併多個事實數據表。

在 2005 中,最通用的方案將具有一個包含一個或多個“量度組”的物理多維數據集。量度組中的事實數據具有特定的細化程度(由維度層次的交叉點定義)。查詢根據需要被自動定向到不同的量度組。在物理層上,分區(與 Analysis Services 2000 分區類似)在“量度組”上定義。

大型應用程序將爲用戶提供大量的維度、量度組,而且還會給導航帶來難度。在“多維數據集編輯器”的“透視”選擇卡中定義的“透視”可以創建一個多維數據集的子集“視圖”。爲了要提供一定程度的個性化,可以將安全性角色與適合該角色的透視集相關聯。

我們希望大部分的 Analysis Services 2005 數據庫都包含一個具有多個量度組和多個透視的多維數據集。

對多維數據集事實結構和查詢性能所做的其他改進有:

• 量度可以爲空;在 SQL SERVER 2000 中,"null" 量度被當作 0 處理。

• 適當的多維數據集分區使得“非重複計數度量值”的查詢性能得到了改進,性能值增加了幾個數量級。

• 對備選數據庫管理系統的訪問由可擴展的部件基礎結構提供。RDBMS 的部件用於指定如何爲關係查詢和寫入優化 SQL 語句。用戶可以輕鬆添加其他關係系統的部件;部件被作爲 XSL 文件實現。


計算和分析
使用分析服務器(如 Analysis Services)最大的爭議之一就是其集中定義複雜計算的能力。Analysis Services 一直以來都能交付豐富的分析數據,但對某些複雜概念卻很難實現。

其中一種概念就是半累積量度。最通用的量度值(如 [銷售額])能夠清晰地彙總所有維度:長期以來的 [總銷售額] 是指所有產品、所有客戶在所有時間內的銷售總額。相比之下,半累積量度值可能在某些維度中是累積的,而在其他的維度卻不是累積的。最常見的一個例子便是餘額,如倉庫中的貨品數。很顯然的,昨天和今天這兩天的餘額總計肯定不等於昨天的餘額加上今天的餘額。相反,它可能是期末餘額,雖然在有些情況下它是期初餘額。在 Analysis Services 2000 中,您必須定義一個複雜的 MDX 計算,幫能交付正確的度量值。而在 Analysis Services 2005 中,期初餘額和期末餘額都是本機聚合類型。

非重複計數度量值在 2005 中也得到了很大的改進。現在,非重複計數度量值可定義在字符串數據上,而查詢可以被定義爲在任意集合上執行“非重複計算”。而 Analysis Services 2000 只能夠在預先定義的層次結構上執行非重複計算。

“時間智能”嚮導將創建一個時間計算維度,其中包含該期間與最後期間的對比計算,可以移動平均值,同時還可創建其他的通用時間計算構造。

MDX 腳本
多維表達式 (MDX: MultiDimension Expression) 是一種功能非常強大的語言,可用於定義 Analysis Services 2000 計算和安全規則。MDX 功能強大,但也也很複雜。Analysis Services 2005 利用被簡化了結構和語法的“MDX 腳本”定義了一種新的計算模型。

MDX 還是 Analysis Services 系統中的查詢語言。查詢工具(如 Excel 透視表)根據用戶的“拖放”行爲生成 MDX 查詢。MDX 的這種使用與“MDX 腳本”無關;“MDX 腳本”用於服務器定義的對象,如計算成員和單元計算,並非用於用戶查詢。

在定義 Analysis Services 2005 多維數據集時,其中只包含結構,而沒有數據。“MDX 腳本”是多維數據集結構的組成部分。一般情況下都會定義一個默認的“MDX 腳本”命令,用來計算默認的聚合。默認的“MDX 腳本”命令只包含一條語句:

Calculate;在多維數據集完全處理之後,應用默認 MDX Script 之前,多維數據集將包含葉層級的數據,但不包含聚合。在應用單一語句的默認“MDX 腳本”時,將計算和存儲聚合。

“MDX 腳本”語句包含以下命令,用分號隔開:

• 限制語句作用域的作用域語句

• 公式和值分配

• 計算成員定義

• 命名集定義


在多維數據集的設計中,Business Intelligence Development Studio 的用戶界面和“MDX 腳本”均(其中包括計算成員和命名組)在“計算”視圖中構建。“MDX 腳本”可以在提供語法嚮導的默認“計算表單”視圖中查看,也可以在“計算腳本”視圖中查看,這一視圖把“MDX 腳本”顯示爲一組用分號分隔的命令。您可以在這兩個視圖間來回切換,雖然“表單”視圖的顯示要求整個腳本的語法必須正確。

“MDX 腳本”具有幾個主要功能:

• 腳本遵循過程模型:依次應用語句。“MDX 腳本”開發人員不需要再受傳遞次序的煩惱,他們得到充分的保護,不必再擔心會編寫出引起無限制遞歸的腳本。

• 可包含計算:SCOPE 語句使您可以針對多維數據集的特定區域,定義一個或多個計算。例如:

SCOPE ([Customers].[Country].[Country].[USA]);
[Measures].[Sales] = 100;
END SCOPE;

• 作用域可以嵌套。

• 可緩存計算:CACHE 關鍵字表示腳本計算結果應存儲在磁盤上,而不是在執行運行時計算。在查詢包含大量複雜計算的大型多維數據集時,緩存的計算可以實現非常高的查詢性能。當輸入緩存計算更改時,該計算便會被刪除和重建。

• 用戶可以對“MDX 腳本”進行調試。您可以逐行完成“MDX 腳本”,瀏覽每步的多維數據集結果。


存儲過程
Analysis Services 2005 引入了存儲過程,來擴展用戶定義功能 (UDF: User defined function) 所提供的能力。存儲過程可以用任何公共語言運行時編程語言(例如 C++、Visual Basic 或 C)編寫。存儲過程允許一次性開發公共代碼、將代碼存儲在一個位置,並在其他存儲過程、計算和用戶查詢中重新使用所存儲的公共代碼,從而簡化了數據庫的開發和實施。

在 Analysis Services 2005 中存在兩種類型的存儲過程:

• MDX 函數存儲過程與任何其他的 MDX 函數相似,它提供了一種可輕鬆擴展 MDX 語言的機制。

• 自定義存儲過程執行特定於實施的任務,例如多維數據集處理,或更新多維數據集部分中的單元。


存儲過程可用於執行客戶端應用程序可以執行的任何任務。

關鍵績效指標
Analysis Services 2005 爲服務器端計算定義引入了關鍵績效指示 (KPI) 框架,用來衡量您的業務。這些 KPI 將通過數據訪問 API 和 Microsoft 與第三方工具,被顯示在報告、門戶和儀表板中。對於 Beta 2 版本而言,還沒有可用於顯示 KPI 的客戶端工具。

不同的評論員和供應商用縮寫 "KPI" 指代不同的概念。對於 Microsoft SQL Server Analysis Services 2005,精確定義 KPI 的過程可分爲以下四個步驟:

• 有待測量的值:物理度量值,如銷售額,計算度量值,如利潤,或在 KPI 中定義的計算,

• 值目標:定義度量值目標的值(或解析爲值的 MDX 表達式),

• 狀態:評估當前值狀態的 MDX 表達式,其正常值範圍從 -1(極差)到 +1(極佳),

• 趨勢:評估當前值趨勢的 MDX 表達式。相對其目標而言,值是逐漸變好還是逐漸變壞?

 
SQL Server 2005 中的商務智能和數據倉庫(7)

以下是網頁上顯示的一些 KPI 示例:



實時商務智能
數據倉庫和商務智能應用程序過去都是使用“過時”的或高延遲的數據,數據每月、每週或每天刷新一次。傳統擁護者斷言,實時 BI 是相互矛盾的,因爲統計決策不需要刷新頻率過高(超過每天一次)的數據。評論者忘記了一件事情,就是商務智能應深入整個企業,而不僅僅是將策略或制定的戰術決策部署給少數的分析家或行政執行人員。可操作的商務智能要求低延遲的數據。

Analysis Services 2005 爲可操作的商務智能提供了新的處理選項。在 Analysis Services 2000 中,無論是多維數據集的存儲模式還是分區策略,都是用“拉”模型處理。啓動 Analysis Services 進程在源數據庫中查找新的信息、處理可選存儲的詳細數據,並計算和存儲聚合。

在 Analysis Services 2005 中仍支持“拉”模型,但結合了對低延遲商務智能異常有效的其他選項。

• 從 DTS 管道中推出數據,或從自定義應用程序中推出數據。數據可以從 DTS 包管道直接流入 Analysis Services 分區,不用立即存儲。這種方案可用於降低分析數據的延遲(和存儲成本)。

• 按主動緩存管理多維數據集,以指定延遲和性能特性管理緩存,勿需管理干涉。


Analysis Services 多維存儲的查詢性能特性主宰着關係型存儲。簡而言之,查詢針對多維 (MOLAP) 存儲執行時效果最佳。其不足之處是延遲:多維存儲是從其關係源向下流動的。主動緩存技術的技巧就在於能夠在最小化數據延遲和管理成本的同時最大化查詢性能。

主動緩存功能簡化了管理數據過期問題的過程。如果事務發生在源數據庫(如新的維度成員或新的事實事務)上,現有“緩存”便會過期。主動緩存技術提供了一種可調整的機制,可確定重新構建多維緩存的頻率;指定在重新構建緩存時答覆查詢的方式;在不需要任何管理干涉的情況下啓動過程。

主動緩存技術使您可以將多維數據集設置爲在事務發生時,自動刷新其多維緩存。雖然 Analysis Services 處理數據速度非常快,但處理過程還是需要一些時間的。如果多維緩存處理過程沒有完成,主動緩存配置便可以自動將查詢重定向到相關的存儲。

在設計主動緩存配置時,一定要謹記必須爲每個多維分區都設置主動緩存。如果分區包括短時間範圍(如一小時)內的數據,緩存刷新過程可能會發生的非常快。最爲複雜的主動緩存配置依賴於從關係數據庫發往有更新發生的 Analysis Services 的通知。Microsoft SQL Server 關係數據庫支持這種通知。對於不能夠提交通知的數據庫,可以將 Analysis Services 配置爲根據定義的查詢,輪詢更改。

主動緩存的參數有:

• 靜止期:在服務器開始處理新信息前,關係源必須處於事務空閒狀態的時間量。該參數通常設置爲一個小於十秒鐘的值。如果在關係源上存在許多連續的更新,則應等待靜止期,以針對重複性刪除和重建緩存加以保護。

• 延遲:允許用戶訪問過期數據的時間量。如果延遲設置爲 0,則只要收到通知,用戶查詢就會被重定向到關係源。如果延遲設置爲 600 秒,用戶則只能訪問十分鐘前的數據。如果設置爲 -1,則表示用戶將一直訪問過期數據,直至主動緩存處理完畢。

• 靜默覆蓋間隔:更改通知與主動緩存處理開始之間的最大持續時間。如果源數據庫被不斷更新,此參數將覆蓋“靜止期”設置。

• 強制重建間隔:當源數據庫系統不能提供更新通知時,可使用此參數提供簡單的主動緩存功能。如果源數據在 SQL Server RDBMS 中,則應將該參數設置爲 0。


數據挖掘
概述
Microsoft SQL Server 2005 Data Mining(數據挖掘)屬於商務智能技術,它可幫助您構建複雜的分析模型,並使其與您的業務操作相集成。數據挖掘可回答如下問題

• 該客戶的信用風險如何?

• 客戶的特徵如何?

• 人們願意同時購買哪些產品?

• 下個月能賣出多少產品?


數據挖掘應用程序將數據挖掘模型集成到日常的業務運營之中。許多數據挖掘項目的目標是構建可供業務用戶、合作伙伴和客戶使用的分析應用程序,而不必理會應用程序底層的複雜計算。要實現這一目標,需要執行兩個主要步驟:構建數據挖掘模型並構建應用程序。SQL Server 2005 Data Mining 使這些步驟比以往更加簡單。

Microsoft 2005 中數據挖掘功能的目標是構建具備以下特徵的工具:

• 簡單易用

• 可提供一整套的功能

• 可輕鬆嵌入到產品應用程序中

• 緊密集成其他的 SQL Server BI 技術,以及

• 能夠擴展數據挖掘應用程序的市場。


可以肯定,本白皮書的每位讀者幾乎都曾“使用”過數據挖掘應用程序。如果您已在線購得了本書或音樂,並收到了“購買此產品的其他客戶”的建議,或者,如果信用卡公司要求您確認一宗可疑交易,或者,食品店在收條上打印個性化優惠券,所有這些,都是您從使用數據挖掘應用程序中得到的好處。時至今日,這種應用程序的開發已集中於解決大型公司所面臨的最大問題,這些公司能夠承受分析能力的匱乏以及鉅額的開發費用,而這些都是過去用傳統方法構建數據挖掘應用程序所需面對的。正如 Microsoft 的 OLAP 技術已推動了 OLAP 市場增長一樣,我們期望能夠將數據挖掘技術推廣開來,使那些在過去不能開發這種應用程序的企業和部門也能夠加入到其開發行列中來。

使用 SQL Server 2005 Data Mining 工具開發一套數據模式,然後在這些模式的基礎上隨意執行預測。這是所有數據挖掘的模式:開發、模式發現和模式預測。

數據挖掘算法
所有數據挖掘工具(包括 Microsoft SQL Server 2005 Analysis Services)都採用了多種算法。當然,Analysis Services 是可擴展的;第三方 ISV 可以開發算法,並將所開發的算法無縫地融入到 Analysis Services 數據挖掘框架之中。根據數據和目標的不同,應該採用不同的算法,而且每種算法都可用於解決多個問題。

數據挖掘工具擅長解決多種類型的問題。下表概括了業務問題的大致分類:

分析問題 示例 Microsoft 算法
分類:爲案例分配預定義的級別(如“好”與“差”)
• 信用風險分析

• 客戶流失分析

• 客戶挽留

• 決策樹

• 貝葉斯算法

• 神經網絡


分割:開發一種按相似案例分組的分類方法
• 客戶資料分析

• 郵件推銷活動

• 羣集

• 順序羣集


關聯:相關性高級計算
• 購物籃分析

• 高級數據研究

• 決策樹

• 相關規則


時間序列預測:預測未來
• 預測銷售

• 預測股票價格

• 時間序列


預測:根據相似案例(如現有客戶)的值預測新方案(如新客戶)的值
• 提供保險率

• 預測客戶收入

• 預測溫度

• 全部


偏差分析:發現案例或羣體與其他案例和羣體之間的差別
• 信用卡欺騙檢測

• 網絡入侵分析

• 全部


 
SQL Server 2005 中的商務智能和數據倉庫(8)

SQL Server 2005 中附帶了最流行的數據挖掘算法。

• Microsoft Decision Trees(決策樹)通常是數據研究的起始點。它是主要的分類算法,對離散和連接屬性的可預測建模效果很好。用算法構建模型時,它着眼於數據集中每個輸入屬性是如何影響預測屬性的結果的。其目標是找到一個輸入屬性及其狀態的組合,使您能夠預測出所預測屬性的輸出結果。

• Microsoft Naïve Bayes(貝葉斯算法)能夠快速構建可用於分類和預測的數據挖掘模型。如果知道可預測屬性的每種狀態,便可計算出輸入屬性每個可能狀態的概率。這種算法只支持離散(不連續)屬性,它認爲所有輸入屬性都是彼此獨立的(前提是知道可預測屬性)。因爲貝葉斯算法的計算速度非常快,因此在初始數據研究階段通常會選擇這種算法進行分類和預測問題。

• Microsoft Clustering 使用迭代技術將來自數據集的記錄分成若干個包含相似特性的簇。通過使用這些簇,您可以研究數據,找出彼此之間的相互關係。您還可以從羣集模型創建預測。

• Microsoft Association 基於 priori 算法,它爲在大型數據集中查找多路關聯提供了一種有效的方法。Association 算法在數據庫所有事務中循環,在單一用戶事務中查找最有可能同時出現的項目。關聯的項目被分到一起,放入項目集中,生成可用於預測的規則。Microsoft Association 通常用於購物籃分析。對於 Association 分析而言,執行大量“非重複計數”的關係或 OLAP 分析是一個值得考慮的選擇。Microsoft Association 算法對算法參數的選擇很敏感,因此,對於一些小問題,使用 Microsoft Decision Trees 算法進行購物籃分析可能效果更佳。

• Microsoft Sequence Clustering 將順序分析與在數據研究和預測中使用的羣集方法結合在了一起。順序羣集模型對事物發生次序很敏感。此外,羣集算法還考慮到記錄羣集中的其他屬性,使您可以開發關聯順序和非順序信息的模型。Sequence Clustering 算法將被用於執行點擊流分析,以便於分析 Web 站點的通信流量、識別與特殊產品銷售關係最爲密切的頁面,並預測接下來要訪問的頁面。

• Microsoft Time Series(時間序列)會創建可用於預測一個或多個連續變量(如股票價格)的模型。Time Series 算法的預測完全依據於在模型創建過程中從培訓數據中推導得出的趨勢。Microsoft Time Series 使用 AutoRegression Trees 技術,非常簡單易用,並可生成精確度極高的模型。在該算法中有一條專門用於時間序列的統計分析規則。大多數其他數據挖掘產品都提供了多項技術,如 ARMA、ARIMA 和 Box-Jenkins,統計師必須在這些技術中確定模型的最佳技術選擇。Microsoft 選擇了一種方法,既可使廣泛的受衆能夠理解時間序列,又具備異常精確的結果。

• Microsoft Neural Net 和 Decision Trees 及 Na?ve Bayes 一樣,主要用於數據研究、分類和預測。Neural Net 是一種人工智能技術,該技術可以利用所有可能的數據關係。因爲它是一種非常徹底的技術,因此它是三個分類算法中最慢的算法。


構建挖掘模型
模型的構建、培訓和測試過程是創建應用程序過程中最爲困難的一部分。正如下面我們要討論的,實際開發應用程序是一個簡單的編程過程。在開始構建數據挖掘模型之前,您應當已經收集和清理了您的數據,這些數據極有可能位於數據倉庫中。SQL Server 2005 Data Mining 可以從關係數據庫或 Analysis Services 多維數據中訪問數據。

開發數據挖掘模型的最佳人選是同時具備業務和技術技巧的人員。模型的開發人員將會從其統計背景中獲益、瞭解企業面臨的關鍵業務問題、對數據和關係產生極大的好奇心,同時還能夠利用 SQL Server 2005 工具處理和存儲數據。現有數據倉庫小組中的成員最有可能遇到這些標準。

作爲數據挖掘的初學者,應在構建原型模型的同時,計劃花費數週時間來研究數據、工具以及可供選擇的算法。使用一臺您具備數據庫管理權限的開發服務器。構建模型的最初階段是探索階段:您可能會希望以不同的方法來重新構建數據和實驗。當然,您肯定希望從少量數據子集開始,並在開發愈加清晰的模型設計時擴展數據集。在原型階段,不要爲如何構建一個“可供生產使用”的應用程序而擔心。使用 DTS 或執行任何所需數據處理最爲舒適的任何工具。保存一份記錄有必要轉換的高級日誌,但不要期望您所做的一卻都能成爲永久應用程序的一部分。

您應當準備兩套數據:一套用於開發模型,而另一套用於測試模型的精確度,從中選擇適合您業務問題最佳模型。在考慮如何劃分數據子集時,要確保沒有引入任何偏差。例如,從十個客戶中選擇一個客戶,或根據姓氏的第一個字符區分,或根據一些其他任意屬性區分。

開發數據挖掘模型的過程涉及選擇以下內容:

• 輸入數據集、

• 輸入字段、

• 數據挖掘算法,以及

• 該算法在計算過程中所用到的參數。


如果不知道哪種類型的算法適合處理您的業務問題,請先從“決策樹”或“貝葉斯”入手研究數據。如果不知道要包括哪些屬性,就選擇所有屬性。使用相關性網絡視圖,從中獲得可幫助您簡化複雜模型的視圖。

在原型開發階段,您可能希望構建相關模型,以便評估最佳算法和模型。使用“挖掘精度”圖表評估在預測中效果最佳的模型。您可能還希望構建相關模型,對相同的數據執行不同類型的分析。這些模型在作爲相關模型時的處理速度要比作爲獨立定義模型時的處理速度快。

在構建和測試原型後,便可以構建和測試實際數據挖掘模型。在將數據輸入數據挖掘引擎前,如果需要轉換數據,那麼爲了要實現這些操作,應當開發可供生產用的操作流程。在某些情況下,可能要選擇從 DTS 管道直接植入挖掘模型。如果在少量數據的基礎上開發原型,將需要在整套培訓數據的基礎上重新評估備選模型。

構建數據挖掘應用程序
在 Business Intelligence Development Studio 中開發和研究數據挖掘模型可使企業獲得巨大的價值。您可以瀏覽模型,瞭解數據與業務之間的關係,並使用該信息促進策略決策的制定。但是,其最大的價值還是來自可以影響公司日常操作的數據挖掘應用程序:例如,向客戶推薦產品、記錄客戶信用風險,或根據預測的庫存不足下訂單的數據挖掘應用程序。要開發可操作的數據挖掘應用程序,您需要跳出 Business Intelligence Development Studio 的圈子,並用 Microsoft Visual Studio 或您選擇的其他開發環境編寫代碼。

大部分企業客戶都將面向客戶的數據挖掘應用程序實施爲基於 web 的 Win32 應用程序,如 ASP 頁。數據挖掘模型業已構建完畢,而且應用程序也可以根據客戶的選擇或在 web 商務應用程序中輸入的內容,爲客戶執行預測。這可能是十分簡單的應用程序;唯一不尋常的部分是發佈預測查詢。

數據挖掘應用程序開發人員不一定就是開發數據挖掘模型的人員。應用程序開發人員應具備一流的開發技能,而對業務或統計知識的需求則相對較低。

Microsoft 的數據挖掘技術大大地簡化了構建自動化數據挖掘應用程序的過程。其中共有兩個步驟:

• 開發數據挖掘預測查詢,其 DMX 語法在“數據挖掘”規範的 OLE DB 中定義。不需要手工編寫 DMX,用戶只需單擊 Business Intelligence Development Studio 編輯器左欄上的“挖掘模型預測”圖標即可。“預測查詢構建器”圖形化工具會幫助您開發預測查詢。

• 在數據挖掘應用程序中使用預測查詢。如果應用程序只使用 DMX 便可完成預測,則項目應包括 ADO、ADO.Net 或 ADOMD.Net 等類引用(建議在 Beta 1 之後的開發中使用 ADOMD.Net)。如果您正在構建一個更爲複雜的應用程序(例如要顯示用戶挖掘模型查看器,如“決策樹查看器”),將需要包括 Microsoft.AnalysisServices 和 Microsoft.AnalysisServices.Viewers 類。




 
SQL Server 2005 中的商務智能和數據倉庫(9)

有些客戶(主要是獨立軟件供應商)希望創建可生成數據挖掘模型的應用程序。這種應用程序可能會替代在 Business Intelligence Development Studio 中開發挖掘模型,但可能只適用於特定的領域,如 web 分析。在這種情況下,開發項目就需要包括 Microsoft.DataWarehouse.Interfaces,以便可以獲得對 AMO(Analysis Management Objects,分析管理對象)的訪問權限。

DMX 示例
數據挖掘過程包括三個步驟,分別爲創建數據挖掘模型、培訓模型和根據模型預測行爲,這三個步驟都可通過簡單、類似 SQL 編程語言的 DMX 來實現。示例語法如下所示;DMX 的完整使用方法可從聯機叢書中獲得。

創建數據挖掘模型:

CREATE MINING MODEL CreditRisk
(CustID        LONG KEY,
Gender        TEXT DISCRETE,
Income        LONG CONTINUOUS,
Profession    TEXT DISCRETE,
Risk        TEXT DISCRETE PREDICT)
USING Microsoft_Decision_Trees
培訓數據模型:

INSERT INTO CreditRisk
(CustId, Gender, Income, Profession, Risk)
SELECT CustomerID, Gender, Income, Profession, Risk
From Customers
根據數據挖掘模型預測行爲:

SELECT NewCustomers.CustomerID, CreditRisk.Risk,
   PredictProbability(CreditRisk)
FROM CreditRisk PREDICTION JOIN NewCustomers
ON CreditRisk.Gender=NewCustomer.Gender
AND CreditRisk.Income=NewCustomer.Income
AND CreditRisk.Profession=NewCustomer.Profession
 
SQL Server 2005 中的商務智能和數據倉庫(10)

六、Reporting Services
隨着 Microsoft SQL Server 2005 的發佈,Microsoft 在其集成商務智能平臺中拓展了一個新的主要組件。即 SQL Server Reporting Services,該組件使得人們不管在任何商業環境中,都可將適當的信息送達適當的人員,從而擴展了 Microsoft 的商務智能發展前景。

Reporting Services 是一個基於服務器的完整平臺,可創建、管理和交付傳統報告和交互式報告。它包括您創建、分發和管理報告所需的一切工具和信息。同時,產品的標準模塊化設計和應用程序編程接口 (API) 使軟件開發人員、數據提供商和企業能夠集成原有系統或第三方應用程序中的報告功能。

Reporting Services 隨 SQL Server 2005 一起發佈,其中包括:

• 用於創建、管理和查看報告的一整套工具

• 用於承載和處理報告的引擎

• 可將報告嵌入到(或將解決方案集成到)不同 IT 環境中的可擴展體系結構與開放式接口。


爲什麼使用 Reporting Services?
毫無疑問,能夠在適當的時間將適當的信息送達適當的人員具有巨大的價值。對於許多企業而言,這是一個挑戰,因爲這些需要訪問信息的人員不但具有廣泛的技術專業背景,而且還可能分散在整個傳統組織內的不同位置,甚至於組織之外。

Reporting Services 通過靈活的訂閱和交付機制簡化了傳統報告與交互式報告的創建過程,並可將這些報告順利地交付給廣泛的人羣。它還爲處理複雜苛刻的商業環境提供了必要的安全性和可管理性。

Reporting Services 提供了獨一無二的屬性組合:

• 完整的、基於服務器的報告平臺:Reporting Services 支持從創建報告到提交報告和後續管理的整個報告生命週期。

• 靈活可擴展的報告功能:Reporting Services 具用可擴展的交付選項,可同時支持衆多格式的傳統報告和交互式報告。它可通過開放式的 API 和接口輕鬆集成到任何環境或解決方案中。

• 可伸縮性:產品基於 web 的標準化模塊設計,可輕鬆擴展爲支持高數據容量的環境。您能夠創建具有多個報告服務器的報告服務器場,訪問同一核心報告,爲數以千計的 web 客戶端提供服務。

• 與 Microsoft 產品和工具的集成:Reporting Services 隨 SQL Server 一起發佈,可輕鬆集成我們所熟悉的 Microsoft 工具,如 Office 和 SharePoint Portal Server,無需進行編程和自定義設置。


使用 Reporting Services 的途徑
由於 Reporting Services 是結合可伸縮、可擴展體系結構的單一完整的報告平臺,因此它可滿足範圍廣泛的報告需求。

• 企業報告:企業可在內部報告和商務智能應用程序中使用 Reporting Services。許多公司都創建數據集市或倉庫來彙總操作數據。通過使用 Reporting Services,公司的 IT 員工可以設計各種報告,並將這些報告通過電子郵件分發,或在公司門戶上發佈,將這些報告部署給的整個企業中的個人。Reporting Service 作爲集成在 Microsoft BI 平臺中的一項綜合報告解決方案,爲企業提供了巨大的價值。

• 嵌入式報告:獨立軟件供應商 (ISV) 可以使用 Reporting Services 將報告預先定義爲打包應用程序(隨 Microsoft SQL Server 同時運行的)的一部分。客戶的 IT 組織可按原樣訪問這些報告,或使用 Reporting Services 自定義報告,或爲特定業務需求創建新報告。Reporting Services 爲獨立軟件供應商 (ISV) 提供了一種在應用程序中嵌入靈活的交互式報告的簡單方法。

• 爲合作伙伴/客戶設計的 Web 報告:組織可以將傳統報告或交互式 web 報告部署爲通過外部網絡與客戶或合作伙伴交互。Reporting Services 在提供個性化和互動性的同時,還使報告客戶擺脫了複雜的底層數據源。


Reporting Services 功能
Reporting Services 將集中式託管報告系統的優點與桌面及基於 Web 應用程序的靈活性和按需選擇性集於一身。Reporting Services 是一個完整的報告平臺,支持從報告創建到報告部署的整個報告生命週期。

製作報告
Reporting Services 包括創建傳統報告或交互式報告所需的一切工具及技術,其中包括具有報告設計嚮導功能的圖形化報告設計器工具。

報告製作功能 詳細信息
受到廣泛支持的數據源
Microsoft SQL Server

Microsoft Analysis Services

所有兼容 OLE DB 的數據源

所有兼容 ODBC 的數據源

靈活的製作工具
報告設計器(使用 Visual Studio 2005)

基於 XML 的報告定義語言 (RDL)

生成 RDL 的第三方工具

靈活的報告格式
自由格式

表格

矩陣

圖表

使用運行時篩選的參數化報告

排序和分組

演練

鏈接的報告

模塊化報告執行
轉換是從查詢流程中分離出來的一個流程;同一份報告可能轉換爲不同的格式。

執行可按計劃執行,也可以按需執行。


管理報告
Reporting Services 包括基於 web 的工具,可用於管理報告和報告服務器 Web 應用程序。管理員可使用此界面爲報告定義基於角色的安全性、編排報告執行和提交,以及跟蹤報告歷史。或者,企業或 ISV 可以使用 Reporting Services Web Services API 編寫自定的管理工具。

由於報告定義、文件夾和資源都存儲在 SQL Server 數據庫中,因此,您可以使用其他工具(如 SQL Server Management Studio)管理元數據,或使用那些充分採納已發佈 API 的第三方應用程序。

Reporting Services 實施了一個靈活、基於角色的安全模型,用來保護報告和報告資源。這一功能可根據各種不同的安全需求量身定做。該產品包括根據需要集成其他安全模型的可擴展接口。

報告管理功能 詳細信息
報告元數據
• 名稱

• 描述


數據源管理
• 連接

• 憑據


參數管理
• 默認

• 提示


報告編排
集成 SQL Server 代理

執行屬性
實時、緩存或快照。Reporting Services 快照是報告數據集(運行報告快照時報告的源查詢結果)的存儲副本。

報告執行的歷史
被保留下來,以供需要時再次使用的快照分類列表

報告安全性
• 用戶、組和角色


報告服務器 Web 應用程序
基於 Web 的管理工具,這些工具可用於:

• 定義安全性

• 安排報告的執行和提交

• 跟蹤報告歷史


靈活的管理 API
Web 服務 API


提交報告
您可以將報告提交到門戶、將其以電子郵件的形式發送給用戶,或讓用戶使用基於 web 的報告服務器從文件夾層級中訪問報告。導航、搜索和訂閱功能可幫助用戶根據其需要定位和運行報告。個性化的訂閱功能可讓用戶自行選擇自己喜歡的轉換格式。

報告提交功能 詳細信息
報告轉換選項的範圍
• Web 格式 (HTML)

• 打印格式 (PDF, TIFF)

• 數據 (Excel, XML, CSV)

• 通過開放式 API 實現的其他格式


靈活的提交選項
• 按計劃

• 由事件驅動

• 個性化的訂閱

• 顯示的報告或鏈接交付

• 數據驅動的訂閱

• 集成的其他應用程序



七、總結
Microsoft SQL Server 2005 是一個完整的商務智能平臺,它所提供的基礎結構和服務器組件可用於構建:

• 易於查詢且維護成本較低的大型複雜數據倉庫;

• 較小規模的企業或大型企業中的部門可以輕鬆構建和管理小型報告和分析系統;

• 向操作用戶交付分析數據的低延遲系統;

• 閉環分析和數據挖掘系統;以及

• 擴展商務智能的嵌入式系統。


爲用戶所熟悉的工具(SQL Server 關係數據庫、DTS、Reporting Services 和 Analysis Services OLAP 以及數據挖掘)也都得到了極大的改進。新增功能(如 Business Intelligence Development Studio 和 SQL Server Management Studio)進一步擴展了 Microsoft BI 平臺。每個工具都具有創新性,其設計都可令您事半功倍:用比以前更少的硬件、規模更小的團隊更快更好地構建、部署和管理重要的商務智能應用程序。

返回頁首
附錄 A:代碼示例
遞歸查詢示例
USE AdventureWorks
GO
/*
This query brings back a list of managers, and the count of employees
     who report to them directly or indirectly).
*/
WITH reps_cte (emp, mgr, recursion_level)
AS
(
/*Get the initial list of employees.*/
SELECT EmployeeID, ManagerID, 0
FROM Employee AS E
/*Get a Union of the anchor and the recursive term.*/
UNION ALL
SELECT reps_cte.emp, E.ManagerID, recursion_level+1
FROM Employee E, reps_cte        -- Join with Employee
WHERE reps_cte.mgr=E.EmployeeID    -- This employee's manager
AND recursion_level<=20        -- up to 20 levels of mgmt
)        -- End of common table expression
/*Now query the recursive common table expression reps_cte*/
SELECT r.mgr,  E.[LastName]+', ' + E.[FirstName]
   AS MgrName, count(*) CntEmployees
FROM reps_cte r INNER JOIN [Employee] E ON (r.mgr=E.EmployeeId)
GROUP BY mgr, E.[LastName]+', ' + E.[FirstName]
HAVING count(*) > 1            -- Means they manage at least one person
ORDER BY 3 DESC            -- Sort by count of employees
GO
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章