摘要: 本文概述了 SQL Server 2005 Beta 2 中“商務(wù)智能”平臺的增強(qiáng)功能。本文并非實(shí)施指南,而是為讀者提供了關(guān)于“商務(wù)智能”平臺增強(qiáng)功能的信息。
本頁內(nèi)容
![]() |
簡介 |
![]() |
SQL Server2005 Beta 2 入門 |
![]() |
關(guān)系型數(shù)據(jù)倉庫 |
![]() |
提取、轉(zhuǎn)換和加載 (ETL) |
![]() |
Analysis Services |
![]() |
Reporting Services |
![]() |
總結(jié) |
![]() |
附錄 A:代碼示例 |
簡介
Microsoft SQL Server 2005 是一個(gè)完整的商務(wù)智能 (BI) 平臺,其中為用戶提供了可用于構(gòu)建典型和創(chuàng)新的分析應(yīng)用程序所需的各種特性、工具和功能。本文簡要介紹了您在構(gòu)建分析應(yīng)用程序時(shí)將要用到的一些工具,并著重介紹了一些新增功能,這些新增功能使復(fù)雜 BI 系統(tǒng)的構(gòu)建和管理比以往更加輕松。
下表概述了商務(wù)智能系統(tǒng)的組件,以及與之相應(yīng)的 Microsoft SQL Server 2000 和 SQL Server 2005 組件。
組件 | SQL Server 2000 | SQL Server 2005 |
提取、轉(zhuǎn)換和加載 |
數(shù)據(jù)轉(zhuǎn)換服務(wù) (DTS) |
數(shù)據(jù)轉(zhuǎn)換服務(wù) (DTS) |
關(guān)系數(shù)據(jù)倉庫 |
SQL Server 2000 關(guān)系數(shù)據(jù)庫 |
SQL Server 2005 關(guān)系數(shù)據(jù)庫 |
多維數(shù)據(jù)庫 |
SQL Server 2000 Analysis Services |
SQL Server 2005 Analysis Services |
數(shù)據(jù)挖掘 |
SQL Server 2000 Analysis Services |
SQL Server 2005 Analysis Services |
托管報(bào)告 |
SQL Server 2000 Reporting Services |
SQL Server 2005 Reporting Services |
特殊查詢和分析 |
Microsoft Office 產(chǎn)品(Excel、Office Web Components、Data Analyzer、Sharepoint Portal) |
Microsoft Office 產(chǎn)品(Excel、Office Web Components、Data Analyzer、Sharepoint Portal) |
數(shù)據(jù)庫開發(fā)工具 |
SQL Server 2000 企業(yè)管理器、分析管理器、查詢分析器,以及各種其他工具 |
SQL Server 2005 Business Intelligence Development Studio (新增!) |
數(shù)據(jù)庫管理工具 |
企業(yè)管理器、分析管理器 |
SQL Server 2005 SQL Server Management Studio (新增!) |
SQL Server 2005 新增了兩個(gè)組件:SQL Server Management Studio 和 SQL Server Business Intelligence Development Studio。其他主要的 BI 組件——DTS、Analysis Services OLAP、Analysis Services Data Mining 和 Reporting Services——在 SQL Server 2005 中得到了改進(jìn),與以前有很大的不同。SQL Server 2005 關(guān)系數(shù)據(jù)庫包含一些重要的新增功能。雖然 Microsoft Office 查詢和門戶工具并沒有包含在 SQL Server 中,但當(dāng)前的發(fā)行版本力爭在 SQL Server 2005 之前實(shí)現(xiàn)這一功能。Office 工具的 BI 功能將在 Office 產(chǎn)品發(fā)行周期內(nèi)將得到逐步實(shí)現(xiàn)。
SQL Server 2005 Business Intelligence 工具集提供了一種端到端的 BI 應(yīng)用程序集成:
? |
設(shè)計(jì): Business Intelligence Development Studio 是第一款專門為商務(wù)智能系統(tǒng)開發(fā)人員設(shè)計(jì)的集成開發(fā)環(huán)境。Business Intelligence Development Studio 構(gòu)建于 Visual Studio 2005 技術(shù)之上,它為 BI 系統(tǒng)開發(fā)人員提供了一個(gè)豐富、完整的專業(yè)開發(fā)平臺。調(diào)試、源代碼控制以及腳本和代碼的開發(fā)均可用于所有的 BI 應(yīng)用程序組件。 |
? |
合成: “數(shù)據(jù)轉(zhuǎn)換服務(wù)”已被重新編寫,現(xiàn)在的 DTS 可以高速執(zhí)行超大數(shù)據(jù)量的復(fù)雜數(shù)據(jù)集成、轉(zhuǎn)換和合成。Business Intelligence Development Studio 使程序包的構(gòu)建和調(diào)試變得更加生動有趣。DTS、Analysis Services 和 Reporting Services 共同提供了一個(gè)源自異類源的無縫數(shù)據(jù)視圖。 |
? |
存儲: 在 SQL Server 2005 中,關(guān)系數(shù)據(jù)庫和多維數(shù)據(jù)庫之間的界限變得更加模糊。您可以將數(shù)據(jù)庫存儲在關(guān)系數(shù)據(jù)庫、多維數(shù)據(jù)庫中,或使用新增的“主動緩存”功能,充分利用兩種數(shù)據(jù)庫各自的優(yōu)點(diǎn)。 |
? |
分析: 一直以來,Microsoft 的數(shù)據(jù)挖掘都十分簡單易用。現(xiàn)在,結(jié)合了其他的重要新算法(包括關(guān)聯(lián)規(guī)則、時(shí)間序列、回歸樹、序列群集、神經(jīng)網(wǎng)絡(luò)和貝葉斯算法),使得這一功能更加完美。而在 Analysis Services 多維數(shù)據(jù)集中也添加了一些重要的新增功能:關(guān)鍵績效指標(biāo)框架、MDX 腳本,以及其他的內(nèi)置高級業(yè)務(wù)分析方法。Reporting Services 報(bào)告提交和管理框架使得復(fù)雜的分析方法更易于向最廣泛的潛在受眾分發(fā)。 |
? |
交付: Reporting Services 將 Microsoft Business Intelligence 平臺的用戶群體延伸至那些需要使用分析功能的商務(wù)用戶。Reporting Services 是一種企業(yè)托管報(bào)告環(huán)境,它通過 web 服務(wù)進(jìn)行嵌入和管理。您可以用大量的交互和打印選項(xiàng),以各種不同的格式個(gè)性化設(shè)置和提交報(bào)告。通過將報(bào)告以數(shù)據(jù)源的形式分發(fā)至下游商務(wù)智能,復(fù)雜分析可以覆蓋更廣泛的受眾。Microsoft 及其合作伙伴的特殊查詢和分析工具將繼續(xù)承擔(dān)在 Analysis Services 和關(guān)系數(shù)據(jù)庫中訪問數(shù)據(jù)的常用工具角色。 |
? |
管理: SQL Server Management Studio 集成了對 SQL Server 2005 所有組件的管理。Business Intelligence 從業(yè)者都將得益于 Microsoft 服務(wù)器“能力”擴(kuò)展這一用戶盼望已久的功能增強(qiáng),即從關(guān)系引擎(伸縮性、可靠性、可用性、可編程性,等等)擴(kuò)展為全套的 BI 平臺組件。 |
SQL Server 2005 Business Intelligence 組件的主要目標(biāo)是支持在各種規(guī)模的企業(yè)中開發(fā)和使用商務(wù)智能,并使其能夠供所有員工使用,不僅包括管理層和分析師,還包括操作人員和外部委托人。就此目標(biāo)而言,SQL Server 2005 具有完整、集成、易用的特點(diǎn),它以 web 服務(wù)的形式發(fā)布數(shù)據(jù),而且僅通過日常硬件便可提供極佳的性能,另外它還包含許多新增功能,您可以使用這些新增功能開發(fā)創(chuàng)新的分析應(yīng)用程序。
SQL Server2005 Beta 2 入門
在安裝 SQL Server 2005 時(shí)第一點(diǎn)要注意的就是它的集成安裝體驗(yàn)。您不再需要為某些功能(如 Analysis Services)而分別運(yùn)行安裝程序。如果某個(gè)功能(如 Reporting Services)不可安裝,則說明您的計(jì)算機(jī)不滿足該功能的安裝要求。您可以查看說明文件,以獲得有關(guān)功能必要條件的完整討論。在大多數(shù)配置得當(dāng)?shù)臋C(jī)器上,安裝過程中應(yīng)接受所有默認(rèn)設(shè)置,安裝所有的主要功能:
? |
SQL Server 關(guān)系數(shù)據(jù)庫引擎 |
? |
DTS |
? |
Analysis Services |
? |
Reporting Services |
? |
SQL Server Management Studio(數(shù)據(jù)庫管理工具集) |
? |
Business Intelligence Development Studio(BI 應(yīng)用程序開發(fā)工具集) |
Reporting Services 要求在機(jī)器上安裝并妥善配置 IIS。由于 Reporting Services 是 2005 Business Intelligence 功能組的一個(gè)重要組成部分,我們強(qiáng)烈建議您花費(fèi)一定的時(shí)間,執(zhí)行這些配置和安裝步驟。
熟悉 Analysis Services 的客戶可能會因缺少 Analysis Services 元數(shù)據(jù)倉庫而感到迷惑。在 SQL Server 2000 中,Analysis Services 倉庫被作為 Microsoft Access 數(shù)據(jù)庫發(fā)行。Analysis Services 2005 不包含元數(shù)據(jù)倉庫。相反,Analysis Services 數(shù)據(jù)庫元數(shù)據(jù)信息被存儲為 XML 文件格式,由 Analysis Services 進(jìn)行管理。如果需要,還可以將這些 XML 文件放置在源代碼控制之下。
我們建議您使用 Business Intelligence Development Studio 進(jìn)行開發(fā),同時(shí)使用 SQL Server Management Studio 來操作和維護(hù) BI 數(shù)據(jù)庫對象。雖然您能夠在 SQL Server Management Studio 中設(shè)置 DTS 包以及 Analysis Services 多維數(shù)據(jù)集和數(shù)據(jù)挖掘模型,但 Business Intelligence Development Studio 卻為設(shè)計(jì)和調(diào)試 BI 應(yīng)用程序提供了更好的體驗(yàn)。
對于 Beta 2 而言,建議您從掌握新的應(yīng)用程序入手,因?yàn)榕c升級現(xiàn)有 DTS 包或 Analysis Services 數(shù)據(jù)庫相比,這樣可以學(xué)到更多東西。如果您已有一個(gè)可用的包或數(shù)據(jù)庫,您會發(fā)現(xiàn),“重新創(chuàng)建”現(xiàn)有的包或數(shù)據(jù)會十分有用。在您熟悉了這些新增工具、功能和概念之后,便可試著升級現(xiàn)有對象。
許多客戶都借助 SQL Server 工具,使用熟悉的來自一個(gè)或多個(gè)源系統(tǒng)的商務(wù)智能結(jié)構(gòu)來開發(fā)新的系統(tǒng),使用 DTS 填充維度關(guān)系型數(shù)據(jù)倉庫,然后再用數(shù)據(jù)倉庫來填充 Analysis Services 數(shù)據(jù)庫。但是,SQL Server 2005 提供了許多選項(xiàng),通過消除或淡化不同的組件使其背離了這種一般化設(shè)計(jì)。
關(guān)系型數(shù)據(jù)倉庫
SQL Server 2005 關(guān)系數(shù)據(jù)庫引擎包含一些對數(shù)據(jù)倉庫樣式應(yīng)用程序設(shè)計(jì)和維護(hù)大有幫助的功能。這些功能包括:
? |
對于超大型的表而言,表分區(qū)可快速數(shù)據(jù)的加載速度,并簡化維護(hù)過程。 |
? |
輕松創(chuàng)建報(bào)告服務(wù)器 |
? |
Transact-SQL 方面的改進(jìn)包括新增的數(shù)據(jù)類型和新增的分析功能 |
? |
聯(lián)機(jī)索引操作 |
? |
細(xì)化備份/還原操作 |
? |
快速初始化文件 |
報(bào)告服務(wù)器
要想將關(guān)系操作報(bào)告從事務(wù)處理數(shù)據(jù)庫中分離出來,經(jīng)常采用的一項(xiàng)技術(shù)便是維護(hù)一臺報(bào)告服務(wù)器。報(bào)告服務(wù)器對事務(wù)處理數(shù)據(jù)庫映像的維護(hù)一般都有一定的時(shí)間延遲,通常截止到前一天。報(bào)告服務(wù)器多用于報(bào)告功能和數(shù)據(jù)倉庫提取。
Microsoft SQL Server 2005 新增了兩項(xiàng)功能,使報(bào)告服務(wù)器的創(chuàng)建和維護(hù)過程變得更加簡單。SQL Server 報(bào)告服務(wù)器的延遲時(shí)間與以前相比大大縮短。同時(shí),報(bào)告服務(wù)器被設(shè)計(jì)為充當(dāng)事務(wù)處理系統(tǒng)的備選系統(tǒng)。
要創(chuàng)建報(bào)告服務(wù)器,先要創(chuàng)建一個(gè)數(shù)據(jù)庫鏡像,這是 SQL Server 2005 的新增功能,它為系統(tǒng)的高可用性提供了一個(gè)緊急備用系統(tǒng)。更多信息,請閱讀聯(lián)機(jī)叢書的“數(shù)據(jù)庫鏡像概念”主題。數(shù)據(jù)庫鏡像不能夠直接查詢,這時(shí)第二個(gè)新增功能就能派上用場了。
在鏡像上創(chuàng)建一個(gè)數(shù)據(jù)庫視圖。數(shù)據(jù)庫視圖是數(shù)據(jù)庫在某個(gè)時(shí)點(diǎn)的只讀副本。數(shù)據(jù)庫視圖并非數(shù)據(jù)庫的完整副本;極為節(jié)省空間。多個(gè)數(shù)據(jù)庫視圖還是可以同時(shí)共存,雖然維護(hù)數(shù)據(jù)庫視圖會對數(shù)據(jù)庫視圖所基于的事務(wù)處理數(shù)據(jù)庫產(chǎn)生一定的影響。更多信息,請閱讀聯(lián)機(jī)叢書的“了解數(shù)據(jù)庫視圖”主題。
通過在數(shù)據(jù)庫鏡像上創(chuàng)建數(shù)據(jù)庫視圖,您可輕松為系統(tǒng)的高可用性創(chuàng)建備用服務(wù)器,此服務(wù)器還可用作報(bào)告服務(wù)器,起著雙重作用。
表分區(qū)
分區(qū)表和分區(qū)索引將數(shù)據(jù)分割到多個(gè)水平單元中,以便于將行組映射到單獨(dú)的分區(qū)中。而對數(shù)據(jù)執(zhí)行操作(如查詢)時(shí),又可以將整個(gè)表或索引作為一個(gè)整體來執(zhí)行。
分區(qū)可以:
? |
改善數(shù)據(jù)表和索引的可管理性。 |
? |
改善多 CPU 機(jī)器上的查詢性能。 |
在關(guān)系型數(shù)據(jù)倉庫中,事實(shí)數(shù)據(jù)表比較適合應(yīng)用表分區(qū),而按日期范圍分區(qū)又是最常見的分區(qū)策略。
正如聯(lián)機(jī)從書的“ 創(chuàng)建分區(qū)表和索引 ”主題中所描述的,定義分區(qū)表可分為三個(gè)步驟:
1. |
創(chuàng)建一個(gè)分區(qū)函數(shù),指定使用此函數(shù)的表如何分區(qū)。 |
2. |
創(chuàng)建一個(gè)分區(qū)方案,指定應(yīng)用此分區(qū)函數(shù)的分區(qū)在文件組上的位置。 |
3. |
使用此分區(qū)方案創(chuàng)建一個(gè)表或索引。 |
多個(gè)表可以使用同一個(gè)分區(qū)方案。
本文討論了事實(shí)數(shù)據(jù)表的“范圍”分區(qū),但其目的并非是針對表分區(qū)的完整討論或教程。有興趣的讀者請參閱 SQL Server 聯(lián)機(jī)叢書。
最常用的分區(qū)方案是按日期范圍(如年、季、月或甚至天)對事實(shí)數(shù)據(jù)表進(jìn)行分區(qū)。在大多數(shù)情況下,對大型事實(shí)數(shù)據(jù)表進(jìn)行日期分區(qū)可以提供良好的可管理性收益。為了改善查詢性能,應(yīng)盡量使用相同的分區(qū)方案對時(shí)間維度表進(jìn)行分區(qū)。
? |
分區(qū)表和未分區(qū)表的行為方式相同。 |
? |
針對表的查詢能夠得到正確解析。 |
? |
針對表的直接插入、更新和刪除會被自動解析到適當(dāng)?shù)姆謪^(qū)。 |
使用數(shù)據(jù)表分區(qū)快速加載數(shù)據(jù)
許多數(shù)據(jù)倉庫應(yīng)用程序都力求在越來越小的加載窗口中加載越來越多的數(shù)據(jù)量。典型的流程是這樣的,先從幾個(gè)源系統(tǒng)中提取數(shù)據(jù)開始,接下來便是在這些系統(tǒng)間清理、轉(zhuǎn)換、合成和合理化數(shù)據(jù)。數(shù)據(jù)管理應(yīng)用程序被限制為在加載窗口中完成整個(gè)提取、轉(zhuǎn)換和加載流程。通常,系統(tǒng)的業(yè)務(wù)用戶都強(qiáng)烈要求將數(shù)據(jù)倉庫查詢時(shí)的不可用時(shí)間降至最低。在設(shè)計(jì)時(shí),數(shù)據(jù)管理應(yīng)用程序的“寫入”步驟(即將新數(shù)據(jù)插入到現(xiàn)有數(shù)據(jù)倉庫的步驟)必須在短時(shí)間內(nèi)完成,且要最小化對用戶造成的影響。
為了非常快速地加載數(shù)據(jù),數(shù)據(jù)庫恢復(fù)模型必須為“批量記錄”恢復(fù)模式或“簡單”恢復(fù)模式,而數(shù)據(jù)表必須為空,或是包含數(shù)據(jù)但不包含索引。如果滿足這些條件,不作記錄的加載便成為可能。在 SQL Server 2000 中,分區(qū)表出現(xiàn)以前,這些條件通常只在初始?xì)v史數(shù)據(jù)倉庫加載中才能滿足。一些具有大型數(shù)據(jù)倉庫的客戶已通過在分散的物理表上搭建 UNION ALL 視圖,構(gòu)建了一個(gè)準(zhǔn)分區(qū)結(jié)構(gòu);這些數(shù)據(jù)表都使用不記錄技術(shù)填充每個(gè)加載周期。這一方法并不盡如人意,而 SQL Server 2005 分區(qū)表則提供了更為優(yōu)秀的功能。
在 SQL Server 2005 中,您不能直接在分區(qū)中執(zhí)行不記錄加載。但是,卻可以將數(shù)據(jù)加載到將調(diào)用偽分區(qū)的單獨(dú)表中。在特定條件下,您可以用執(zhí)行速度極快的元數(shù)據(jù)操作將偽分區(qū)切換到分區(qū)表中。此技術(shù)可滿足我們的兩個(gè)要求:
? |
最小化整體加載時(shí)間:在不作記錄的情況下執(zhí)行偽分區(qū)加載,以及 |
? |
最小化對最終用戶的影響,并確保數(shù)據(jù)倉庫的完整性:偽分區(qū)可以在用戶查詢數(shù)據(jù)倉庫時(shí)被加載。在執(zhí)行分區(qū)切換之前,數(shù)據(jù)管理應(yīng)用程序會等到所有事實(shí)數(shù)據(jù)表全部加載完畢為止。分區(qū)切換的執(zhí)行速度非常快,反應(yīng)時(shí)間通常不到一秒。 |
此外,偽分區(qū)還可作為單獨(dú)的表進(jìn)行備份,從而改善系統(tǒng)的可管理性。
使用表分區(qū)快速刪除數(shù)據(jù)
許多數(shù)據(jù)倉庫在數(shù)據(jù)倉庫中保留了一個(gè)詳細(xì)活動數(shù)據(jù)的滑動窗口。例如,事實(shí)數(shù)據(jù)表可能包含三年、五年或十年的數(shù)據(jù)。每到一個(gè)時(shí)間周期,便從數(shù)據(jù)表中刪除最舊的數(shù)據(jù)。持續(xù)刪除數(shù)據(jù)的主要原因在于要提高查詢性能并最小化存儲成本。
SQL Server 2005 分區(qū)使大型分區(qū)事實(shí)數(shù)據(jù)表中舊數(shù)據(jù)的刪除倍加輕松。如上所述,簡單地創(chuàng)建一個(gè)空白偽分區(qū),然后將其切換到分區(qū)表中。分區(qū)表在其曾植入分區(qū)的地方有一個(gè)空白分區(qū);偽分區(qū)在其曾為空白的地方包含數(shù)據(jù)。用戶可以根據(jù)需要對偽分區(qū)進(jìn)行適當(dāng)?shù)膫浞荨⒔財(cái)嗷騽h除。
或者,您還可以選擇重新定義分區(qū)函數(shù),將所有空白分區(qū)合并到一個(gè)分區(qū)中。
Transact-SQL 方面的改進(jìn)
新的數(shù)據(jù)類型
SQL Server 2005 中有一些很重要的新類型,這些類型對數(shù)據(jù)倉庫大有裨益:
? |
Varchar(max) 、nvarchar(max) 和 varbinary(max) 支持 2GB 的數(shù)據(jù),對于 text、ntext 和 image 數(shù)據(jù)類型非常有用。這些擴(kuò)展的字符類型可能對在數(shù)據(jù)倉庫中保存擴(kuò)展的元數(shù)據(jù)和其他說明性信息非常有用。 |
新的分析功能
許多新分析功能都提供了 Transact-SQL 中的基本分析功能。這些功能在那些允許用戶查詢關(guān)系數(shù)據(jù)庫,而不是通過 Analysis Services 排他查詢數(shù)據(jù)的數(shù)據(jù)倉庫中非常有用。另外,在數(shù)據(jù)中轉(zhuǎn)過程中,這些復(fù)雜的計(jì)算常被用來開發(fā)有價(jià)值的數(shù)據(jù)屬性。
ROW_NUMBER 。返回結(jié)果集的連續(xù)行號。
RANK 。返回行在結(jié)果集中的等級。在通常情況下,RANK 值與有序數(shù)據(jù)集上的 ROW_NUMBER 值相同。但對于那些彼此之間有關(guān)聯(lián)的行來說,則是所有具有相同排序值的行都有相同的等級。而下一個(gè)等級則又與 ROW_NUMBER 值相同。換句話說,如果在第 一 個(gè)位置存在雙向關(guān)聯(lián),那么行 1 和行 2 的 RANK 就都為 1,而行 3 的 RANK 則為 3。不存在 RANK 為 2 的行。
DENSE_RANK 。返回行在結(jié)果集中的等級。DENSE_RANK 函數(shù)與 RANK 相似,只是去除了 RANK 函數(shù)所留下的空隙。在上面的示例中,行 1 和行 2 的 RANK 為 1,而行 3 的 RANK 則為 2。
NTILE 。將有序集分成指定數(shù)量、大小近似相等的組。
在 SQL Server 2005 Beta 2 中還不能使用這些函數(shù)。
PIVOT 和 UNPIVOT 操作符
PIVOT 操作符可以按查詢中的中斷值旋轉(zhuǎn)結(jié)果集,從而使您可以生成交叉數(shù)據(jù)報(bào)告。例如,如果表中在兩個(gè)不同的行中包含 "Actuals" 和 "Budgets" 數(shù)據(jù),則使用 PIVOT 操作符將可以生成帶有 [Actuals] 和 [Budgets] 列的交叉數(shù)據(jù)報(bào)告。
與之相似,UNPIVOT 操作符可以將一行拆分為若干行。在此示例中,帶有 [Actuals] 和 [Budgets] 列的行集可以被轉(zhuǎn)換為包含這些值的多個(gè)行。
在以前的 SQL Server 版本中,用戶能夠編寫復(fù)雜的 Transact-SQL SELECT 語句來旋轉(zhuǎn)數(shù)據(jù)。PIVOT 和 UNPIVOT 操作符則為數(shù)據(jù)旋轉(zhuǎn)提供了更為簡單的機(jī)制。
遞歸查詢
在許多方案中,“遞歸查詢”都是非常有用的。SQL Server 2005 中的新增功能令遞歸查詢成為可能,雖然此項(xiàng)功能還不是十分簡單易用。
遞歸查詢是針對自聯(lián)接表的查詢。自聯(lián)接表的兩個(gè)常見示例有保存員工及其經(jīng)理信息的數(shù)據(jù)表,和保存材料清單的數(shù)據(jù)表。在 AdventureWorks 數(shù)據(jù)庫的 Employee 表中對自聯(lián)接數(shù)據(jù)表進(jìn)行了說明。
查詢自聯(lián)接表的直接關(guān)系通常十分簡單,如查詢直接向經(jīng)理報(bào)告的員工數(shù)量。但是,如果要回答“經(jīng)理的組織中有多少名員工?”這樣一個(gè)問題卻十分困難。
SQL Server 2005 中的關(guān)系數(shù)據(jù)庫功能解決了這一問題,這一功能被稱為“遞歸通用表表達(dá)式”。“附錄”中包含一個(gè)遞歸查詢的示例,該示例回答了以上定義的問題。聯(lián)機(jī)叢書的 "WITH <common_table_expression>" 主題中包含更多的相關(guān)信息。
提取、轉(zhuǎn)換和加載 (ETL)
數(shù)據(jù)轉(zhuǎn)換服務(wù) (DTS) 對于 SQL Server 2005 而言,是一項(xiàng)全新的技術(shù)。DTS 是 SQL Server 2000 中很受歡迎的一項(xiàng)功能,但 DTS 2005 已被重新設(shè)計(jì)成企業(yè) ETL 平臺。DTS 為構(gòu)建企業(yè)級 ETL 應(yīng)用程序提供了大量必需的功能,以及非常高的擴(kuò)展性能。DTS 是完全可編程的、嵌入式的、可擴(kuò)展的——所有這些特性都使它成為理想的 ETL 平臺。
下表總結(jié)了 DTS 2005 的這些功能。有關(guān) ETL 系統(tǒng)開發(fā) DTS 適用性更加完整的討論,請參閱 SQL Server 聯(lián)機(jī)叢書。
包開發(fā)
SQL Server 2005 的 DTS 功能 | 企業(yè) ETL 開發(fā) | ETL 平臺 |
使用 Business Intelligence Development Studio 圖形用戶界面 設(shè)計(jì)數(shù)據(jù)管理應(yīng)用程序的 DTS 包。DTS 包的設(shè)計(jì)、開發(fā)和調(diào)試均在 Business Intelligence Development Studio 中完成,您只需從工具欄拖動任務(wù)、為其設(shè)置屬性并將任務(wù)與優(yōu)先約束相連接便可完成這一切。 |
? | ? |
使用 SQL Server Management Studio 向?qū)? 開發(fā)執(zhí)行常規(guī)任務(wù)(如“復(fù)制數(shù)據(jù)庫”)的簡單 DTS 包。 |
? | ? |
軟件供應(yīng)商將在其產(chǎn)品中 嵌入 DTS 功能 ,構(gòu)建按需生成自定義包的向?qū)А? |
? | ? |
將控制流從數(shù)據(jù)流中分離出來。 大多數(shù)的 DTS 包都包含多個(gè)控制流任務(wù),以及循環(huán)任務(wù)或順序任務(wù),這些任務(wù)都被放置在控制流窗格中。控制任務(wù)(管道任務(wù))是包的工作動力,它擁有自己的設(shè)計(jì)表面,可用于布置數(shù)據(jù)流。控制流和數(shù)據(jù)流的分離使得程序更加容易讀取。 |
? | ? |
包變量 是經(jīng)過定義且可見的。變量是受限制的,如受包、循環(huán)或任務(wù)的限制。 |
? | ? |
復(fù)雜的 ETLM 系統(tǒng) 可以通過構(gòu)建包網(wǎng)絡(luò)實(shí)現(xiàn),其中包含一個(gè)調(diào)用其他包的包。子包可以很好地重新使用邏輯、變量和上下文。DTS 2005 與 DTS 2000 相比,對嵌套數(shù)據(jù)包的需求有所減少。 |
? | ? |
包配置框架 是可擴(kuò)展的系統(tǒng),可用于自定義包在不同環(huán)境中的運(yùn)行方式。 |
? | ? |
DTS 程序以 XML 格式存儲在文件系統(tǒng)或 SQL Server 中。DTS XML 文件可受源代碼管理。 |
? | ? |
DTS 2000 包遷移向?qū)? 可以幫助您將包遷移至 DTS 2005,它還可以在出現(xiàn)升級問題的地方提供警告。 |
? | ? |
DTS 2000 運(yùn)行時(shí) 包含在 SQL Server 2005 中,在不升級 DTS 2000 包的情況下,仍可運(yùn)行。 |
? | ? |
包的操作和結(jié)果會以多種形式被 記錄 下來,分發(fā)給廣泛的提供程序。 |
? | ? |
事件處理程序 邏輯只需定義一次,便可多次使用。 |
? | ? |
與 WMI 的集成 表明包可以對外部事件(例如文件復(fù)制的完成)作出響應(yīng),或拋出可供其他進(jìn)程使用的 WMI 事件。 |
? | ? |
包可重啟性 與事務(wù)控制和故障檢查點(diǎn)一起,可以幫助管理員管理復(fù)雜的包,移動大量數(shù)據(jù)。 |
? | ? |
控制流
SQL Server 2005 的 DTS 功能 | 企業(yè) ETL 開發(fā) | ETL 平臺 | ||||||||||||
優(yōu)先約束: 您可以設(shè)計(jì)一個(gè)包,以在任務(wù)成功、失敗或完成時(shí)將控制傳遞給這些不同的任務(wù)。 |
? | ? | ||||||||||||
循環(huán)任務(wù) 包括 For、ForEach 和 Sequence 循環(huán)。包開發(fā)人員可以在數(shù)據(jù)的所有(或一組)表上、目錄中的文件上或是 Analysis Services 多維數(shù)據(jù)集分區(qū)上輕松執(zhí)行一組操作。 |
? | ? | ||||||||||||
Analysis Services 集成 是無縫的,它與自動執(zhí)行 Analysis Services DDL 的控制任務(wù)一起處理 Analysis Services 對象,或執(zhí)行數(shù)據(jù)挖掘查詢。正如下面所討論的,DTS 管理還集成了 Analysis Services。 |
? | ? | ||||||||||||
VB.NET 腳本 可與“腳本任務(wù)”一起使用。被稱為“ActiveX 腳本任務(wù)”的第二個(gè)腳本任務(wù)主要用于向后兼容 DTS 2000。 |
? | ? | ||||||||||||
通信任務(wù) 包括:
|
? | ? | ||||||||||||
其他控制流任務(wù) 包括:
|
? | ? | ||||||||||||
其他任務(wù) 可以使用 DTS 對象模型輕松開發(fā)。 |
? | ? |
數(shù)據(jù)流
SQL Server 2005 的 DTS 功能 | 企業(yè) ETL 開發(fā) | ETL 平臺 | ||||
在數(shù)據(jù)流管道中存在多個(gè)源、轉(zhuǎn)換和目的。 只有在轉(zhuǎn)換完成時(shí),數(shù)據(jù)才能被讀取、合并和操作,然后才能寫入。中轉(zhuǎn)表所需的多次寫入被削弱或消除;轉(zhuǎn)換性能得到極大提高。 |
? | ? | ||||
“DTS 管道”任務(wù)使用來自 多個(gè)異類數(shù)據(jù)源 和本機(jī)的數(shù)據(jù)。可擴(kuò)展的“數(shù)據(jù)源”體系結(jié)構(gòu)支持來自平面文件、OLEDB 源(包括 DB2 和 Oracle)和原始文件的數(shù)據(jù)。其他源,包括使用特殊結(jié)構(gòu)化數(shù)據(jù)的源都在計(jì)劃之內(nèi)。 |
? | ? | ||||
其他數(shù)據(jù)源 可以由 Microsoft 及其合作伙伴輕松開發(fā)。 |
? | ? | ||||
來自多個(gè)源的數(shù)據(jù)可以與 聯(lián)接、查找和聯(lián)合 操作符相聯(lián)接。這些操作都在內(nèi)存中執(zhí)行,不需要對數(shù)據(jù)庫或文件執(zhí)行寫入操作。 |
? | ? | ||||
數(shù)據(jù)流可以使用 條件分離和多播 轉(zhuǎn)換。類似編譯器的 DTS 引擎確定了可以 平行操作哪些數(shù)據(jù)流 。 |
? | ? | ||||
大量基于行的數(shù)據(jù)轉(zhuǎn)換都是由 字符映射、復(fù)制映射、數(shù)據(jù)轉(zhuǎn)換和派生列 轉(zhuǎn)換所提供的。這些操作符更像是向?qū)В寝D(zhuǎn)換,它們提供了用戶所需的大部分?jǐn)?shù)據(jù)轉(zhuǎn)換。 |
? | ? | ||||
有些數(shù)據(jù)轉(zhuǎn)換任務(wù)需要對多個(gè)行中的數(shù)據(jù)進(jìn)行比較。 排序和聚合 轉(zhuǎn)換可以在數(shù)據(jù)流中以極高的性能執(zhí)行這些操作,其性能遠(yuǎn)非數(shù)據(jù)庫聚合可及。 |
? | ? | ||||
有些數(shù)據(jù)轉(zhuǎn)換任務(wù)需要復(fù)雜邏輯,例如 模糊匹配、模糊分組、時(shí)間維度生成以及旋轉(zhuǎn)或反旋轉(zhuǎn) 。其他常見任務(wù)(例如 維度鍵管理 )則需要多個(gè)步驟。特殊技術(shù)和向?qū)惯@些復(fù)雜技術(shù)可供所有用戶使用。 |
? | ? | ||||
轉(zhuǎn)換后的數(shù)據(jù)可以寫入 異類目標(biāo) ,其中包括 SQL Server 表、OLEDB 數(shù)據(jù)庫表、平面文件以及原始文件。 |
? | ? | ||||
轉(zhuǎn)換后的數(shù)據(jù)可以與 Microsoft BI 解決方案的其他組件集成 ,其中包括 Analysis Services 數(shù)據(jù)庫和數(shù)據(jù)挖掘模型。 |
? | ? | ||||
由轉(zhuǎn)換步驟所導(dǎo)致的 錯(cuò)誤流 可以以多種方式進(jìn)行管理:
|
? | ? | ||||
其他轉(zhuǎn)換和目的 可以由 Microsoft 及其合作伙伴輕松開發(fā)。 |
? | ? |
開發(fā)和調(diào)試
SQL Server 2005 的 DTS 功能 | 企業(yè) ETL 開發(fā) | ETL 平臺 |
包開發(fā)商可以在每個(gè)控制流任務(wù)中定義控制流 斷點(diǎn) 。在調(diào)試過程中,斷點(diǎn)可以定義在某些任務(wù)執(zhí)行點(diǎn)之前、之后,或定義在這些任務(wù)執(zhí)行點(diǎn)。 |
? | ? |
包開發(fā)商可以為數(shù)據(jù)流中的每個(gè)轉(zhuǎn)換附加一個(gè) 數(shù)據(jù)查看器 。在調(diào)試過程中,數(shù)據(jù)查看器會顯示在該點(diǎn)的轉(zhuǎn)換后數(shù)據(jù)流內(nèi)容。 |
? | ? |
Business Intelligence Development Studio 寄宿在 Visual Studio 中。腳本及其他編程任務(wù)可以充分利用該企業(yè)開發(fā)環(huán)境的優(yōu)點(diǎn)。 |
? | ? |
包開發(fā) 可以幫助用戶將所有包組件(包括自定義腳本和可執(zhí)行程序)捆綁在一起,以用于發(fā)行測試、生產(chǎn)或其他客戶系統(tǒng)。 |
? | ? |
可供 DTS 2000 開發(fā)人員使用的 DTS 2005
DTS 2000 用戶已經(jīng)開發(fā)出了一套執(zhí)行復(fù)雜操作的技巧。這些技巧,尤其是編寫自修改包,在 DTS 2005 中不再有用武之地。在 DTS 2005 中要使用變量和配置基礎(chǔ)結(jié)構(gòu)來編寫動態(tài)包、不要再試圖編寫自修改包。
配置良好的變量和配置基礎(chǔ)結(jié)構(gòu)還可以減少創(chuàng)建復(fù)雜子包系統(tǒng)的需求。如果設(shè)計(jì)完善,單一包便可滿足多種需求;例如,單一包可以在多種不同配置中重復(fù)使用,以用來在維度數(shù)據(jù)倉庫中加載許多維度表。在 DTS 2000 中,一個(gè)復(fù)雜的 DTS 包網(wǎng)絡(luò)可能包括 50-100 個(gè)包;而在 DTS 2005 中,一個(gè)復(fù)雜的網(wǎng)絡(luò)可能只包含 10 個(gè)包。
Analysis Services
SQL Server 2000 Analysis Services 由兩個(gè)主要的互補(bǔ)功能組成:聯(lián)機(jī)分析處理 (OLAP) 和數(shù)據(jù)挖掘。這兩個(gè)組件在 Analysis Services 2005 中仍然存在,并且是分析應(yīng)用程序的基石。
Analysis Services 2005 OLAP 中的功能改進(jìn)主要可以歸納為兩類改進(jìn):
? |
啟用了一些新的分析應(yīng)用程序,而達(dá)到此目的做法便是添加全新的功能,或是使復(fù)雜功能的構(gòu)建變得更加簡單。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
? |
增強(qiáng)了分析應(yīng)用程序的企業(yè)適應(yīng)性
|
構(gòu)建分析數(shù)據(jù)庫的途徑主要有兩個(gè):
? |
完全自定義: 從源開始,通常是從一個(gè)關(guān)系型源開始,定義維度、多維數(shù)據(jù)集、關(guān)鍵績效指標(biāo)、計(jì)算和數(shù)據(jù)挖掘模型。此途徑對那些業(yè)已具備數(shù)據(jù)倉庫或主題集市的客戶來說十分適合。在多維數(shù)據(jù)集向?qū)У牡谝粋€(gè)屏幕中,此選項(xiàng)的標(biāo)簽為“使用現(xiàn)有數(shù)據(jù)庫/數(shù)據(jù)倉庫”。 |
? |
可自定義的模板: 從模板開始,定義和生成一個(gè)完整的應(yīng)用程序,包括關(guān)系數(shù)據(jù)庫、DTS 包和 Analysis Services OLAP 數(shù)據(jù)庫。設(shè)計(jì)和生成這些組件的目的是使這些組件無縫合作,共同組成一個(gè)完整的應(yīng)用程序。此途徑對于那些從模板開始安裝完整商務(wù)智能解決方案的客戶來說十分適合。在多維數(shù)據(jù)集向?qū)У牡谝粋€(gè)屏幕中,此選項(xiàng)的標(biāo)簽為“在不具備數(shù)據(jù)源的前提下設(shè)計(jì)商務(wù)智能模型”。 |
不管采用哪種方法,基本的系統(tǒng)設(shè)計(jì)都假設(shè)使用當(dāng)前熟悉的、來自一個(gè)或多個(gè)源的商務(wù)智能結(jié)構(gòu)來填充維度關(guān)系型數(shù)據(jù)倉庫,然后再用數(shù)據(jù)倉庫來填充 Analysis Services 數(shù)據(jù)庫。但是,SQL Server 2005 提供了許多選項(xiàng),通過消除或淡化不同的組件使其背離了這種常規(guī)設(shè)計(jì)。在下面“統(tǒng)一維度”模型中討論了一些其他的備選系統(tǒng)。
從現(xiàn)有的源數(shù)據(jù)庫創(chuàng)建自定義數(shù)據(jù)庫
創(chuàng)建 Analysis Services 數(shù)據(jù)庫的第一種方法最為 SQL Server 2000 的用戶所熟悉。即從任意結(jié)構(gòu)的源數(shù)據(jù)庫開始著手創(chuàng)建數(shù)據(jù)庫:
? |
按事實(shí)數(shù)據(jù)表和維度表構(gòu)建一個(gè)維度數(shù)據(jù)庫,或 |
? |
任何其他的數(shù)據(jù)庫結(jié)構(gòu),包括標(biāo)準(zhǔn)化的事務(wù)系統(tǒng)。 |
SQL Server 2005 中可從標(biāo)準(zhǔn)化數(shù)據(jù)庫尋源的能力是對 Analysis Services 2000 的一大突破,在 Analysis Services 2000 中,執(zhí)行此操作需要一個(gè)維度結(jié)構(gòu),此結(jié)構(gòu)或是星型的,或是雪花型的,或是拉伸型的。此功能使您可以輕松地開發(fā)具有極低延遲時(shí)間的商務(wù)智能應(yīng)用程序。
通過直接在事務(wù)數(shù)據(jù)庫內(nèi)構(gòu)建 Analysis Services 數(shù)據(jù)庫,而不需要先構(gòu)建正式的數(shù)據(jù)倉庫,可以用較低的成本,輕松有效地滿足許多用戶的要求。如果您需要僅對數(shù)據(jù)執(zhí)行最低的數(shù)據(jù)轉(zhuǎn)換、清理和集成便投入使用,則可考慮使用一個(gè) Analysis Services 數(shù)據(jù)庫來補(bǔ)充或替換現(xiàn)有的關(guān)系報(bào)告。您可以充分利用 Analysis Services 的功能和交互性,更好地管理事務(wù)系統(tǒng)中的負(fù)載。
雖然可以直接從事務(wù)系統(tǒng)構(gòu)建和維護(hù) Analysis Services 數(shù)據(jù)庫,但只有先構(gòu)建關(guān)系型數(shù)據(jù)倉庫才能最好地滿足許多企業(yè)分析的要求。復(fù)雜的數(shù)據(jù)集成和數(shù)據(jù)更改管理問題可以通過典型的數(shù)據(jù)倉庫體系結(jié)構(gòu)得到最好的解決,其中 Analysis Services 數(shù)據(jù)庫充當(dāng)著查詢和分析引擎的角色。
數(shù)據(jù)源和數(shù)據(jù)源視圖
構(gòu)建分析應(yīng)用程序的第一步就是在 Business Intelligence Development Studio 中創(chuàng)建一個(gè)新的 Analysis Services 項(xiàng)目。創(chuàng)建了空項(xiàng)目之后,應(yīng)當(dāng)創(chuàng)建一個(gè)“數(shù)據(jù)源”并將其與源數(shù)據(jù)庫建立連接,此源數(shù)據(jù)庫可以是任何受支持的關(guān)系數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)庫。對于 Beta 2 版本,建議您將 SQL Server 2000 或 SQL Server 2005 關(guān)系數(shù)據(jù)庫作為源。
“數(shù)據(jù)源”負(fù)責(zé)為源數(shù)據(jù)連接存儲信息。“數(shù)據(jù)源視圖”中包含著源數(shù)據(jù)庫表相關(guān)子集的信息。此信息不只局限于源數(shù)據(jù)庫中表的物理結(jié)構(gòu);您還可以添加諸如關(guān)系、表和列的友好名稱、計(jì)算列和命名查詢之類的信息。
“數(shù)據(jù)源視圖”可以在 BI 項(xiàng)目和 DTS 項(xiàng)目之間共享。“數(shù)據(jù)源視圖”很有用處,尤其是在以下幾種情況中:
? |
源數(shù)據(jù)庫包含成千上萬個(gè)表,但其中只有相對少數(shù)的表在 BI 應(yīng)用程序中真正有用。 |
? |
Analysis Services 數(shù)據(jù)庫使用來自多個(gè)源的數(shù)據(jù),這些源有多重?cái)?shù)據(jù)庫、服務(wù)器、平面文件或 RDBMS。 |
? |
BI 系統(tǒng)開發(fā)人員不具有源數(shù)據(jù)庫中的系統(tǒng)管理權(quán)限,且不允許創(chuàng)建物理視圖或修改源數(shù)據(jù)庫。 |
? |
BI 系統(tǒng)開發(fā)人員需要以“脫機(jī)”模式工作,必須斷開與源數(shù)據(jù)庫的連接。設(shè)計(jì)和開發(fā)任務(wù)針對“數(shù)據(jù)源視圖”發(fā)生,而“數(shù)據(jù)源視圖”已從源數(shù)據(jù)中分離出來。 |
您為“數(shù)據(jù)源視圖”設(shè)置良好名稱和關(guān)系所作的投資將換來分析應(yīng)用程序的輕松開發(fā)。
創(chuàng)建維度和多維數(shù)據(jù)集
創(chuàng)建了“數(shù)據(jù)源視圖”之后,便可以右擊“解決方案資源管理器”窗格中的“多維數(shù)據(jù)集”圖標(biāo),選擇“新建多維數(shù)據(jù)集”,創(chuàng)建一個(gè)多維數(shù)據(jù)集。您可以啟用 IntelliCube 檢測和建議。如果您選擇使用 IntelliCube,則必須決定是否構(gòu)建一個(gè)已為報(bào)告經(jīng)過旋轉(zhuǎn)優(yōu)化的多維數(shù)據(jù)集。IntelliCube 技術(shù)會對“數(shù)據(jù)源視圖”中的數(shù)據(jù)庫和數(shù)據(jù)基數(shù)關(guān)系進(jìn)行檢查,并按事實(shí)數(shù)據(jù)表、維度表或用于解析多對多關(guān)系的維度-事實(shí)橋接表來智能呈現(xiàn)表特征。對于 Beta 2 版本來說,選擇是為旋轉(zhuǎn)還是為報(bào)告優(yōu)化多維數(shù)據(jù)集和維度存在一些微小的差別。唯一的差別就是 IntelliCube 是否會嘗試在維度屬性之間創(chuàng)建層次關(guān)系。由于層次易于創(chuàng)建,也易于毀壞,因此無須擔(dān)心會花費(fèi)太多時(shí)間和精力。
建議您在此“多維數(shù)據(jù)集向?qū)А钡某跏计聊缓罅⒓袋c(diǎn)擊“完成”按鈕。這樣會一次定義好所需的 Analysis Services 數(shù)據(jù)庫、維度、層次、屬性和多維數(shù)據(jù)集。您可以對此設(shè)計(jì)進(jìn)行編輯,但通常情況下,仔細(xì)一點(diǎn)兒走完向?qū)В⒃谶^程中作出一些明智的選擇會更加有效。
實(shí)施完“多維數(shù)據(jù)集向?qū)А敝螅赡軙l(fā)現(xiàn)您更喜歡用“維度向?qū)А眮碇鹨坏貏?chuàng)建復(fù)雜的維度,要啟動“維度向?qū)А保恍柙凇敖鉀Q方案資源管理器”窗格中右擊“維度”即可。仔細(xì)定義完大型維度(例如“產(chǎn)品”、“客戶”和“時(shí)間”)后,啟動“多維數(shù)據(jù)集向?qū)А保⒋_保在適當(dāng)?shù)奈恢冒ㄟ@些預(yù)定義的維度。
構(gòu)建和部署
到此為止,前面執(zhí)行的這些步驟已在您的開發(fā)機(jī)器上以 XML 文件輕松創(chuàng)建了維度和多維數(shù)據(jù)集定義和結(jié)構(gòu)。Business Intelligence Development Studio 和“配置管理器”使您可以對目標(biāo)服務(wù)器上的項(xiàng)目構(gòu)建和部署過程進(jìn)行管理。默認(rèn)情況下,“部署”目標(biāo)服務(wù)器就是您的本地服務(wù)器。您可以創(chuàng)建適合其他環(huán)境部署的備選配置。項(xiàng)目的主要屬性,如目標(biāo)服務(wù)器的名稱和數(shù)據(jù)源連接字符串等,可能會因配置而不同。
要在開發(fā)循環(huán)過程中預(yù)覽和測試多維數(shù)據(jù)集和維度,請從 Business Intelligence Development Studio 的菜單中選擇“部署”,在指定的目標(biāo)服務(wù)器上構(gòu)建和部署項(xiàng)目。或者,單擊 F5,或選擇“調(diào)試”(位于 Business Intelligence Development Studio 主菜單中)。這樣會啟動幾個(gè)調(diào)試和瀏覽工具中的一個(gè),具體啟動哪個(gè),要取決于您所執(zhí)行的操作以及您選擇“部署”的時(shí)間。根據(jù)此上下文,“部署”過程會啟動多維數(shù)據(jù)集瀏覽器、MDX 腳本調(diào)試器或 KPI 瀏覽器。
您可能想在定義完系統(tǒng)的維度、度量值和多維數(shù)據(jù)集后查看一下系統(tǒng)原型。請使用相對較少的數(shù)據(jù)針對開發(fā)數(shù)據(jù)庫進(jìn)行處理,以驗(yàn)證數(shù)據(jù)和結(jié)構(gòu)的行為是否與預(yù)期的行為相一致。
作為原型的一部分,您可能想設(shè)計(jì)一些更為復(fù)雜的“Analysis Services 數(shù)據(jù)庫”、“關(guān)鍵績效指標(biāo)”、“操作”和“計(jì)算”組件。如果您的數(shù)據(jù)庫是被對不同數(shù)據(jù)視圖感興趣的不同用戶團(tuán)體使用的話,請深入查看“透視”和備選的安全計(jì)劃。如果您計(jì)劃部署可供國際上不同語言的用戶使用的數(shù)據(jù)庫,則可以使用“翻譯”功能引入本地化項(xiàng)目名稱。最終,原型會評估備選的物理配置,例如“分區(qū)”和不同的“主動緩存”選項(xiàng)。
在 Analysis Service 數(shù)據(jù)庫開發(fā)完成之后,便可以部署數(shù)據(jù)庫對象,以便于進(jìn)行最終測試、臨時(shí)過渡并投入生產(chǎn)服務(wù)器。在構(gòu)建階段的項(xiàng)目輸出可以用作 Analysis Services 部署實(shí)用工具的輸入。此實(shí)用工具可以幫助您部署和處理數(shù)據(jù)庫。
從模板創(chuàng)建可自定義的數(shù)據(jù)庫
我們剛剛描述了從已知源創(chuàng)建自定義 Analysis Services 數(shù)據(jù)庫的基本步驟。這種通過“多維數(shù)據(jù)集向?qū)А焙汀熬S度向?qū)А眲?chuàng)建的方法與創(chuàng)建 Analysis Services 2000 數(shù)據(jù)庫的標(biāo)準(zhǔn)方法十分類似。
創(chuàng)建 2005 分析應(yīng)用程序的另外一種備選方法就是選擇“多維數(shù)據(jù)集向?qū)А钡诙€(gè)屏幕上的“在不具備數(shù)據(jù)源的前提下設(shè)計(jì)商務(wù)智能模型”選項(xiàng)。這種通過向?qū)?chuàng)建的方法與 SQL Server 2000 Accelerator for Business Intelligence 的設(shè)計(jì)體驗(yàn)十分類似。這種設(shè)計(jì)體驗(yàn)會從模板生成一個(gè)完全可自定義的應(yīng)用程序,此處的模板:具有豐富的維度結(jié)構(gòu)和分析功能,還有可能包括一個(gè)關(guān)系型數(shù)據(jù)倉庫和 DTS 包。Microsoft、集成商或獨(dú)立軟件供應(yīng)商都可以提供這種模板。
不管采用哪種通過向?qū)?chuàng)建的方法,是從源數(shù)據(jù)庫創(chuàng)建,還是從模板創(chuàng)建,都可以設(shè)計(jì)相同的 Analysis Services 數(shù)據(jù)庫。第一種選項(xiàng)假設(shè)您將創(chuàng)建一個(gè)完全自定義的系統(tǒng)。對象名稱和結(jié)構(gòu)都是可以完全自定義的,初始設(shè)計(jì)是受源數(shù)據(jù)庫中的名稱和結(jié)構(gòu)所驅(qū)動的。模板選項(xiàng)也可以創(chuàng)建一個(gè)完全自定義的數(shù)據(jù)庫,但是初始設(shè)計(jì)是受專家主題區(qū)域模板所驅(qū)動的。
許多用戶都喜歡將這兩種方法結(jié)合使用。一個(gè)非常常見的方法就是用現(xiàn)有源創(chuàng)建 Analysis Services 數(shù)據(jù)庫中的大部分內(nèi)容,而用模板法生成“時(shí)間”維度。
統(tǒng)一維度模型
Analysis Services 2005 使關(guān)系數(shù)據(jù)庫與多維度 OLAP 數(shù)據(jù)庫之間的界線變得更加模糊。OLAP 數(shù)據(jù)庫分析應(yīng)用程序一直以來都具有著巨大的優(yōu)勢,這些優(yōu)勢主要體現(xiàn)在以下幾個(gè)方面:
? |
卓越的查詢性能、 |
? |
豐富的分析功能,以及 |
? |
其易于業(yè)務(wù)分析師使用的操作簡單性。 |
不過,在實(shí)現(xiàn)這些功能的同時(shí)也帶來了一定的負(fù)面效應(yīng)。到目前為止,已經(jīng)發(fā)現(xiàn)的問題就有 OLAP 數(shù)據(jù)庫(包括 Analysis Services 2000 在內(nèi))很難交付以下內(nèi)容:
? |
包括多對多關(guān)系的復(fù)雜架構(gòu)、 |
? |
對廣泛屬性集的詳細(xì)報(bào)告,以及 |
? |
低延遲數(shù)據(jù)。 |
通過將傳統(tǒng) OLAP 分析與關(guān)系報(bào)告二者的優(yōu)點(diǎn)相結(jié)合,Analysis Services 2005 能夠提供一個(gè)可以同時(shí)覆蓋這兩方面需求的統(tǒng)一維度模型。在 SQL Server 2005 中定義的一套多維數(shù)據(jù)集和維度被稱為統(tǒng)一維度模型 (Unified Dimensional Model),或 UDM。UDM 的優(yōu)勢和靈活性引發(fā)了設(shè)計(jì)領(lǐng)域的巨變。過去,BI 架構(gòu)師會權(quán)衡備選基礎(chǔ)結(jié)構(gòu)的收益和成本,并在關(guān)系數(shù)據(jù)庫和 OLAP 數(shù)據(jù)庫之間作出選擇。現(xiàn)在,架構(gòu)師可以設(shè)計(jì)一個(gè)“統(tǒng)一維度模型”,然后從傳統(tǒng)極限中確定一點(diǎn)用于放置 Analysis Services 系統(tǒng)邏輯設(shè)計(jì)和物理配置。
基于屬性的維度
Analysis Services 2005 圍繞維度的 屬性 ,而非維度的 層次 構(gòu)建多維數(shù)據(jù)集。在 Analysis Services 2000 中,維度設(shè)計(jì)由層次主宰,層次的示例有 {年、月、日} 或 {國家、地區(qū)、城市}。這些層次要求各層之間存在密切的數(shù)據(jù)關(guān)系。作為成員屬性和虛擬維度公開的“屬性”是“二等公民”。雖然有可能在物理維度中生成屬性,但性能因素卻使這一技術(shù)的廣泛使用大打折扣。熟悉關(guān)系結(jié)構(gòu)的用戶對 OLAP 數(shù)據(jù)庫中對層次的過度側(cè)重深感困惑。
Analysis Services 2005 結(jié)構(gòu)與關(guān)系型維度結(jié)構(gòu)更為類似。一個(gè)維度可包含多個(gè)屬性,每個(gè)屬性都可用于切片和篩選查詢,同時(shí)每個(gè)查詢又可以合并到層次中,而不必考慮數(shù)據(jù)的相互關(guān)系。
有 OLAP 背景的用戶都知道強(qiáng)大的層次結(jié)構(gòu)的價(jià)值,有一點(diǎn)您可以肯定,那就是“城市”清晰地匯總為“地區(qū)”和“國家”。這種自然層次結(jié)構(gòu)依然存在,并應(yīng)在適當(dāng)?shù)奈恢眠M(jìn)行定義:查詢性能會因?yàn)檫@種層次結(jié)構(gòu)而得到提高。
例如,設(shè)想一個(gè)“客戶”維度。關(guān)系型源表有八列:
? |
客戶鍵 |
? |
客戶名稱 |
? |
年齡 |
? |
性別 |
? |
電子郵件 |
? |
城市 |
? |
地區(qū) |
? |
國家 |
相應(yīng)的 Analysis Services 維度應(yīng)具有七個(gè)屬性:
? |
客戶(整型鍵、以“客戶名稱”作為名稱) |
? |
年齡、性別、電子郵件、城市、地區(qū)、國家 |
數(shù)據(jù)中存在一種自然層次結(jié)構(gòu),{國家、地區(qū)、城市、客戶}。出于導(dǎo)航目的,應(yīng)用程序開發(fā)人員可以選擇創(chuàng)建第二個(gè)層次結(jié)構(gòu):{年齡、性別}。商務(wù)用戶并沒有看到這兩個(gè)層次結(jié)構(gòu)行為方式之間有何區(qū)別,但是,自然層次卻可以從深諳層次關(guān)系的索引結(jié)構(gòu)(對用戶隱藏)中受益。
新維度結(jié)構(gòu)的最大優(yōu)勢在于:
? |
維度不需要加載到內(nèi)存中。因此,維度可以非常巨大(經(jīng)測試,Beta 2 可支持上千萬名成員)。 |
? |
用戶可以添加和刪除屬性層次結(jié)構(gòu),而不必再重新處理維度。屬性層次索引結(jié)構(gòu)屬輕型結(jié)構(gòu),在后臺計(jì)算,并不影響多維數(shù)據(jù)集查詢。 |
? |
重復(fù)的維度信息被去除;使得維度更加輕巧。 |
? |
由于引擎為并行處理創(chuàng)建了機(jī)會,因此維度處理信息性能得到了改進(jìn)。 |
維度類型
Analysis Services 2000 中包括兩種維度類型:常規(guī)層次類型和父子類型。Analysis Services 2005 新增了一些重要的新維度結(jié)構(gòu)。其中有些結(jié)構(gòu)的名稱是臨時(shí)的,但是,這些名稱都是 BI 文獻(xiàn)中較為通用的。
? |
角色扮演: 維度扮演著一些重要角色,具體哪些角色要依上下文而定。例如,[時(shí)間] 維度可能會被 [訂購日期] 和 [發(fā)貨日期] 重用。在 2005 中,扮演著某些角色的維度只需存儲一次,便可多次使用。這樣便可使所需的硬盤空間和處理時(shí)間降至最低。 |
? |
事實(shí): 事實(shí)或“退化”維度與事實(shí)(如事務(wù)編號)具有一一對應(yīng)的關(guān)系。從本質(zhì)上講,退化維度不能用于分析,但可用作標(biāo)識,以定位特定的事務(wù),或識別組成聚合單元的事務(wù)。 |
? |
引用: 維度并不能夠直接和事實(shí)數(shù)據(jù)表發(fā)生聯(lián)系,但可通過另一維度間接發(fā)生聯(lián)系。這方面的原型示例有 [地理位置] 引用維度,它同時(shí)關(guān)聯(lián)了 [客戶] 和 [銷售團(tuán)隊(duì)] 兩個(gè)維度。引用維度可能由數(shù)據(jù)提供程序提供,并包括在多維數(shù)據(jù)集中,不必再修改事實(shí)數(shù)據(jù)。 |
? |
數(shù)據(jù)挖掘: 數(shù)據(jù)挖掘維度支持從數(shù)據(jù)挖掘模型(包括群集、決策樹和關(guān)聯(lián)規(guī)則)生成的維度。 |
? |
多對多: 這些維度有時(shí)被稱為多值維度。在大部分維度中,事實(shí)能且只能連接一個(gè)維度成員。多對多維度解決了多維度成員問題。例如,銀行儲蓄客戶可以有多個(gè)帳戶(支票、儲蓄);一個(gè)帳戶可以有多個(gè)客戶 (Mary Smith、John Smith)。[客戶] 維度有多個(gè)成員,這些成員都與一個(gè)帳戶事務(wù)相關(guān)聯(lián)。在維度不能夠直接關(guān)聯(lián)事實(shí)數(shù)據(jù)表時(shí),2005 多對多維度支持復(fù)雜的分析,并擴(kuò)展了維度模型,使之超越了傳統(tǒng)的星形架構(gòu)。 |
量度組和透視
Analysis Services 2005 引入了“量度組”和“透視”,以用來簡化分析數(shù)據(jù)庫的設(shè)計(jì)和部署。在 Analysis Services 2000 中,鼓勵用戶構(gòu)建多個(gè)物理多維數(shù)據(jù)集。每個(gè)多維數(shù)據(jù)集相當(dāng)于一個(gè)特定的維度,通常還相當(dāng)于一個(gè)特定的關(guān)系事實(shí)數(shù)據(jù)表。虛擬多維數(shù)據(jù)集以一種對商務(wù)用戶透明,而對開發(fā)人員設(shè)計(jì)又不太復(fù)雜的方式,合并多個(gè)事實(shí)數(shù)據(jù)表。
在 2005 中,最通用的方案將具有一個(gè)包含一個(gè)或多個(gè)“量度組”的物理多維數(shù)據(jù)集。量度組中的事實(shí)數(shù)據(jù)具有特定的細(xì)化程度(由維度層次的交叉點(diǎn)定義)。查詢根據(jù)需要被自動定向到不同的量度組。在物理層上,分區(qū)(與 Analysis Services 2000 分區(qū)類似)在“量度組”上定義。
大型應(yīng)用程序?qū)橛脩籼峁┐罅康木S度、量度組,而且還會給導(dǎo)航帶來難度。在“多維數(shù)據(jù)集編輯器”的“透視”選擇卡中定義的“透視”可以創(chuàng)建一個(gè)多維數(shù)據(jù)集的子集“視圖”。為了要提供一定程度的個(gè)性化,可以將安全性角色與適合該角色的透視集相關(guān)聯(lián)。
我們希望大部分的 Analysis Services 2005 數(shù)據(jù)庫都包含一個(gè)具有多個(gè)量度組和多個(gè)透視的多維數(shù)據(jù)集。
對多維數(shù)據(jù)集事實(shí)結(jié)構(gòu)和查詢性能所做的其他改進(jìn)有:
? |
量度可以為空;在 SQL SERVER 2000 中,"null" 量度被當(dāng)作 0 處理。 |
? |
適當(dāng)?shù)亩嗑S數(shù)據(jù)集分區(qū)使得“非重復(fù)計(jì)數(shù)度量值”的查詢性能得到了改進(jìn),性能值增加了幾個(gè)數(shù)量級。 |
? |
對備選數(shù)據(jù)庫管理系統(tǒng)的訪問由可擴(kuò)展的部件基礎(chǔ)結(jié)構(gòu)提供。RDBMS 的部件用于指定如何為關(guān)系查詢和寫入優(yōu)化 SQL 語句。用戶可以輕松添加其他關(guān)系系統(tǒng)的部件;部件被作為 XSL 文件實(shí)現(xiàn)。 |
計(jì)算和分析
使用分析服務(wù)器(如 Analysis Services)最大的爭議之一就是其集中定義復(fù)雜計(jì)算的能力。Analysis Services 一直以來都能交付豐富的分析數(shù)據(jù),但對某些復(fù)雜概念卻很難實(shí)現(xiàn)。
其中一種概念就是半累積量度。最通用的量度值(如 [銷售額])能夠清晰地匯總所有維度:長期以來的 [總銷售額] 是指所有產(chǎn)品、所有客戶在所有時(shí)間內(nèi)的銷售總額。相比之下,半累積量度值可能在某些維度中是累積的,而在其他的維度卻不是累積的。最常見的一個(gè)例子便是余額,如倉庫中的貨品數(shù)。很顯然的,昨天和今天這兩天的余額總計(jì)肯定不等于昨天的余額加上今天的余額。相反,它可能是期末余額,雖然在有些情況下它是期初余額。在 Analysis Services 2000 中,您必須定義一個(gè)復(fù)雜的 MDX 計(jì)算,幫能交付正確的度量值。而在 Analysis Services 2005 中,期初余額和期末余額都是本機(jī)聚合類型。
非重復(fù)計(jì)數(shù)度量值在 2005 中也得到了很大的改進(jìn)。現(xiàn)在,非重復(fù)計(jì)數(shù)度量值可定義在字符串?dāng)?shù)據(jù)上,而查詢可以被定義為在任意集合上執(zhí)行“非重復(fù)計(jì)算”。而 Analysis Services 2000 只能夠在預(yù)先定義的層次結(jié)構(gòu)上執(zhí)行非重復(fù)計(jì)算。
“時(shí)間智能”向?qū)?chuàng)建一個(gè)時(shí)間計(jì)算維度,其中包含該期間與最后期間的對比計(jì)算,可以移動平均值,同時(shí)還可創(chuàng)建其他的通用時(shí)間計(jì)算構(gòu)造。
MDX 腳本
多維表達(dá)式 (MDX: MultiDimension Expression) 是一種功能非常強(qiáng)大的語言,可用于定義 Analysis Services 2000 計(jì)算和安全規(guī)則。MDX 功能強(qiáng)大,但也也很復(fù)雜。Analysis Services 2005 利用被簡化了結(jié)構(gòu)和語法的“MDX 腳本”定義了一種新的計(jì)算模型。
MDX 還是 Analysis Services 系統(tǒng)中的查詢語言。查詢工具(如 Excel 透視表)根據(jù)用戶的“拖放”行為生成 MDX 查詢。MDX 的這種使用與“MDX 腳本”無關(guān);“MDX 腳本”用于服務(wù)器定義的對象,如計(jì)算成員和單元計(jì)算,并非用于用戶查詢。
在定義 Analysis Services 2005 多維數(shù)據(jù)集時(shí),其中只包含結(jié)構(gòu),而沒有數(shù)據(jù)。“MDX 腳本”是多維數(shù)據(jù)集結(jié)構(gòu)的組成部分。一般情況下都會定義一個(gè)默認(rèn)的“MDX 腳本”命令,用來計(jì)算默認(rèn)的聚合。默認(rèn)的“MDX 腳本”命令只包含一條語句:
Calculate;
在多維數(shù)據(jù)集完全處理之后,應(yīng)用默認(rèn) MDX Script 之前,多維數(shù)據(jù)集將包含葉層級的數(shù)據(jù),但不包含聚合。在應(yīng)用單一語句的默認(rèn)“MDX 腳本”時(shí),將計(jì)算和存儲聚合。
“MDX 腳本”語句包含以下命令,用分號隔開:
? |
限制語句作用域的作用域語句 |
? |
公式和值分配 |
? |
計(jì)算成員定義 |
? |
命名集定義 |
在多維數(shù)據(jù)集的設(shè)計(jì)中,Business Intelligence Development Studio 的用戶界面和“MDX 腳本”均(其中包括計(jì)算成員和命名組)在“計(jì)算”視圖中構(gòu)建。“MDX 腳本”可以在提供語法向?qū)У哪J(rèn)“計(jì)算表單”視圖中查看,也可以在“計(jì)算腳本”視圖中查看,這一視圖把“MDX 腳本”顯示為一組用分號分隔的命令。您可以在這兩個(gè)視圖間來回切換,雖然“表單”視圖的顯示要求整個(gè)腳本的語法必須正確。
“MDX 腳本”具有幾個(gè)主要功能:
? |
腳本遵循過程模型:依次應(yīng)用語句。“MDX 腳本”開發(fā)人員不需要再受傳遞次序的煩惱,他們得到充分的保護(hù),不必再擔(dān)心會編寫出引起無限制遞歸的腳本。 |
? |
可包含計(jì)算:SCOPE 語句使您可以針對多維數(shù)據(jù)集的特定區(qū)域,定義一個(gè)或多個(gè)計(jì)算。例如: SCOPE ([Customers].[Country].[Country].[USA]); [Measures].[Sales] = 100; END SCOPE; |
? |
作用域可以嵌套。 |
? |
可緩存計(jì)算:CACHE 關(guān)鍵字表示腳本計(jì)算結(jié)果應(yīng)存儲在磁盤上,而不是在執(zhí)行運(yùn)行時(shí)計(jì)算。在查詢包含大量復(fù)雜計(jì)算的大型多維數(shù)據(jù)集時(shí),緩存的計(jì)算可以實(shí)現(xiàn)非常高的查詢性能。當(dāng)輸入緩存計(jì)算更改時(shí),該計(jì)算便會被刪除和重建。 |
? |
用戶可以對“MDX 腳本”進(jìn)行調(diào)試。您可以逐行完成“MDX 腳本”,瀏覽每步的多維數(shù)據(jù)集結(jié)果。 |
存儲過程
Analysis Services 2005 引入了存儲過程,來擴(kuò)展用戶定義功能 (UDF: User defined function) 所提供的能力。存儲過程可以用任何公共語言運(yùn)行時(shí)編程語言(例如 C++、Visual Basic 或 C)編寫。存儲過程允許一次性開發(fā)公共代碼、將代碼存儲在一個(gè)位置,并在其他存儲過程、計(jì)算和用戶查詢中重新使用所存儲的公共代碼,從而簡化了數(shù)據(jù)庫的開發(fā)和實(shí)施。
在 Analysis Services 2005 中存在兩種類型的存儲過程:
? |
MDX 函數(shù)存儲過程與任何其他的 MDX 函數(shù)相似,它提供了一種可輕松擴(kuò)展 MDX 語言的機(jī)制。 |
? |
自定義存儲過程執(zhí)行特定于實(shí)施的任務(wù),例如多維數(shù)據(jù)集處理,或更新多維數(shù)據(jù)集部分中的單元。 |
存儲過程可用于執(zhí)行客戶端應(yīng)用程序可以執(zhí)行的任何任務(wù)。
關(guān)鍵績效指標(biāo)
Analysis Services 2005 為服務(wù)器端計(jì)算定義引入了關(guān)鍵績效指示 (KPI) 框架,用來衡量您的業(yè)務(wù)。這些 KPI 將通過數(shù)據(jù)訪問 API 和 Microsoft 與 第三 方工具,被顯示在報(bào)告、門戶和儀表板中。對于 Beta 2 版本而言,還沒有可用于顯示 KPI 的客戶端工具。
不同的評論員和供應(yīng)商用縮寫 "KPI" 指代不同的概念。對于 Microsoft SQL Server Analysis Services 2005,精確定義 KPI 的過程可分為以下四個(gè)步驟:
? |
有待測量的值:物理度量值,如銷售額,計(jì)算度量值,如利潤,或在 KPI 中定義的計(jì)算, |
? |
值目標(biāo):定義度量值目標(biāo)的值(或解析為值的 MDX 表達(dá)式), |
? |
狀態(tài):評估當(dāng)前值狀態(tài)的 MDX 表達(dá)式,其正常值范圍從 -1(極差)到 +1(極佳), |
? |
趨勢:評估當(dāng)前值趨勢的 MDX 表達(dá)式。相對其目標(biāo)而言,值是逐漸變好還是逐漸變壞? |
以下是網(wǎng)頁上顯示的一些 KPI 示例:
實(shí)時(shí)商務(wù)智能
數(shù)據(jù)倉庫和商務(wù)智能應(yīng)用程序過去都是使用“過時(shí)”的或高延遲的數(shù)據(jù),數(shù)據(jù)每月、每周或每天刷新一次。傳統(tǒng)擁護(hù)者斷言,實(shí)時(shí) BI 是相互矛盾的,因?yàn)榻y(tǒng)計(jì)決策不需要刷新頻率過高(超過每天一次)的數(shù)據(jù)。評論者忘記了一件事情,就是商務(wù)智能應(yīng)深入整個(gè)企業(yè),而不僅僅是將策略或制定的戰(zhàn)術(shù)決策部署給少數(shù)的分析家或行政執(zhí)行人員。可操作的商務(wù)智能要求低延遲的數(shù)據(jù)。
Analysis Services 2005 為可操作的商務(wù)智能提供了新的處理選項(xiàng)。在 Analysis Services 2000 中,無論是多維數(shù)據(jù)集的存儲模式還是分區(qū)策略,都是用“拉”模型處理。啟動 Analysis Services 進(jìn)程在源數(shù)據(jù)庫中查找新的信息、處理可選存儲的詳細(xì)數(shù)據(jù),并計(jì)算和存儲聚合。
在 Analysis Services 2005 中仍支持“拉”模型,但結(jié)合了對低延遲商務(wù)智能異常有效的其他選項(xiàng)。
? |
從 DTS 管道中推出數(shù)據(jù) ,或從自定義應(yīng)用程序中推出數(shù)據(jù)。數(shù)據(jù)可以從 DTS 包管道直接流入 Analysis Services 分區(qū),不用立即存儲。這種方案可用于降低分析數(shù)據(jù)的延遲(和存儲成本)。 |
? |
按主動緩存管理多維數(shù)據(jù)集, 以指定延遲和性能特性管理緩存,勿需管理干涉。 |
Analysis Services 多維存儲的查詢性能特性主宰著關(guān)系型存儲。簡而言之,查詢針對多維 (MOLAP) 存儲執(zhí)行時(shí)效果最佳。其不足之處是延遲:多維存儲是從其關(guān)系源向下流動的。主動緩存技術(shù)的技巧就在于能夠在最小化數(shù)據(jù)延遲和管理成本的同時(shí)最大化查詢性能。
主動緩存功能簡化了管理數(shù)據(jù)過期問題的過程。如果事務(wù)發(fā)生在源數(shù)據(jù)庫(如新的維度成員或新的事實(shí)事務(wù))上,現(xiàn)有“緩存”便會過期。主動緩存技術(shù)提供了一種可調(diào)整的機(jī)制,可確定重新構(gòu)建多維緩存的頻率;指定在重新構(gòu)建緩存時(shí)答復(fù)查詢的方式;在不需要任何管理干涉的情況下啟動過程。
主動緩存技術(shù)使您可以將多維數(shù)據(jù)集設(shè)置為在事務(wù)發(fā)生時(shí),自動刷新其多維緩存。雖然 Analysis Services 處理數(shù)據(jù)速度非常快,但處理過程還是需要一些時(shí)間的。如果多維緩存處理過程沒有完成,主動緩存配置便可以自動將查詢重定向到相關(guān)的存儲。
在設(shè)計(jì)主動緩存配置時(shí),一定要謹(jǐn)記必須為每個(gè)多維分區(qū)都設(shè)置主動緩存。如果分區(qū)包括短時(shí)間范圍(如一小時(shí))內(nèi)的數(shù)據(jù),緩存刷新過程可能會發(fā)生的非常快。最為復(fù)雜的主動緩存配置依賴于從關(guān)系數(shù)據(jù)庫發(fā)往有更新發(fā)生的 Analysis Services 的通知。Microsoft SQL Server 關(guān)系數(shù)據(jù)庫支持這種通知。對于不能夠提交通知的數(shù)據(jù)庫,可以將 Analysis Services 配置為根據(jù)定義的查詢,輪詢更改。
主動緩存的參數(shù)有:
? |
靜止期: 在服務(wù)器開始處理新信息前,關(guān)系源必須處于事務(wù)空閑狀態(tài)的時(shí)間量。該參數(shù)通常設(shè)置為一個(gè)小于十秒鐘的值。如果在關(guān)系源上存在許多連續(xù)的更新,則應(yīng)等待靜止期,以針對重復(fù)性刪除和重建緩存加以保護(hù)。 |
? |
延遲: 允許用戶訪問過期數(shù)據(jù)的時(shí)間量。如果延遲設(shè)置為 0,則只要收到通知,用戶查詢就會被重定向到關(guān)系源。如果延遲設(shè)置為 600 秒,用戶則只能訪問十分鐘前的數(shù)據(jù)。如果設(shè)置為 -1,則表示用戶將一直訪問過期數(shù)據(jù),直至主動緩存處理完畢。 |
? |
靜默覆蓋間隔: 更改通知與主動緩存處理開始之間的最大持續(xù)時(shí)間。如果源數(shù)據(jù)庫被不斷更新,此參數(shù)將覆蓋“靜止期”設(shè)置。 |
? |
強(qiáng)制重建間隔: 當(dāng)源數(shù)據(jù)庫系統(tǒng)不能提供更新通知時(shí),可使用此參數(shù)提供簡單的主動緩存功能。如果源數(shù)據(jù)在 SQL Server RDBMS 中,則應(yīng)將該參數(shù)設(shè)置為 0。 |
數(shù)據(jù)挖掘
概述
Microsoft SQL Server 2005 Data Mining(數(shù)據(jù)挖掘)屬于商務(wù)智能技術(shù),它可幫助您構(gòu)建復(fù)雜的分析模型,并使其與您的業(yè)務(wù)操作相集成。數(shù)據(jù)挖掘可回答如下問題
? |
該客戶的信用風(fēng)險(xiǎn)如何? |
? |
客戶的特征如何? |
? |
人們愿意同時(shí)購買哪些產(chǎn)品? |
? |
下個(gè)月能賣出多少產(chǎn)品? |
數(shù)據(jù)挖掘應(yīng)用程序?qū)?shù)據(jù)挖掘模型集成到日常的業(yè)務(wù)運(yùn)營之中。許多數(shù)據(jù)挖掘項(xiàng)目的目標(biāo)是構(gòu)建可供業(yè)務(wù)用戶、合作伙伴和客戶使用的分析應(yīng)用程序,而不必理會應(yīng)用程序底層的復(fù)雜計(jì)算。要實(shí)現(xiàn)這一目標(biāo),需要執(zhí)行兩個(gè)主要步驟:構(gòu)建數(shù)據(jù)挖掘模型并構(gòu)建應(yīng)用程序。SQL Server 2005 Data Mining 使這些步驟比以往更加簡單。
Microsoft 2005 中數(shù)據(jù)挖掘功能的目標(biāo)是構(gòu)建具備以下特征的工具:
? |
簡單易用 |
? |
可提供一整套的功能 |
? |
可輕松嵌入到產(chǎn)品應(yīng)用程序中 |
? |
緊密集成其他的 SQL Server BI 技術(shù),以及 |
? |
能夠擴(kuò)展數(shù)據(jù)挖掘應(yīng)用程序的市場。 |
可以肯定,本白皮書的每位讀者幾乎都曾“使用”過數(shù)據(jù)挖掘應(yīng)用程序。如果您已在線購得了本書或音樂,并收到了“購買此產(chǎn)品的其他客戶”的建議,或者,如果信用卡公司要求您確認(rèn)一宗可疑交易,或者,食品店在收條上打印個(gè)性化優(yōu)惠券,所有這些,都是您從使用數(shù)據(jù)挖掘應(yīng)用程序中得到的好處。時(shí)至今日,這種應(yīng)用程序的開發(fā)已集中于解決大型公司所面臨的最大問題,這些公司能夠承受分析能力的匱乏以及巨額的開發(fā)費(fèi)用,而這些都是過去用傳統(tǒng)方法構(gòu)建數(shù)據(jù)挖掘應(yīng)用程序所需面對的。正如 Microsoft 的 OLAP 技術(shù)已推動了 OLAP 市場增長一樣,我們期望能夠?qū)?shù)據(jù)挖掘技術(shù)推廣開來,使那些在過去不能開發(fā)這種應(yīng)用程序的企業(yè)和部門也能夠加入到其開發(fā)行列中來。
使用 SQL Server 2005 Data Mining 工具開發(fā)一套數(shù)據(jù)模式,然后在這些模式的基礎(chǔ)上隨意執(zhí)行預(yù)測。這是所有數(shù)據(jù)挖掘的模式:開發(fā)、模式發(fā)現(xiàn)和模式預(yù)測。
數(shù)據(jù)挖掘算法
所有數(shù)據(jù)挖掘工具(包括 Microsoft SQL Server 2005 Analysis Services)都采用了多種算法。當(dāng)然,Analysis Services 是可擴(kuò)展的;第三方 ISV 可以開發(fā)算法,并將所開發(fā)的算法無縫地融入到 Analysis Services 數(shù)據(jù)挖掘框架之中。根據(jù)數(shù)據(jù)和目標(biāo)的不同,應(yīng)該采用不同的算法,而且每種算法都可用于解決多個(gè)問題。
數(shù)據(jù)挖掘工具擅長解決多種類型的問題。下表概括了業(yè)務(wù)問題的大致分類:
分析問題 | 示例 | Microsoft 算法 | ||||||||||||
分類 :為案例分配預(yù)定義的級別(如“好”與“差”) |
|
|
||||||||||||
分割 :開發(fā)一種按相似案例分組的分類方法 |
|
|
||||||||||||
關(guān)聯(lián) :相關(guān)性高級計(jì)算 |
|
|
||||||||||||
時(shí)間序列預(yù)測 :預(yù)測未來 |
|
|
||||||||||||
預(yù)測 :根據(jù)相似案例(如現(xiàn)有客戶)的值預(yù)測新方案(如新客戶)的值 |
|
|
||||||||||||
偏差分析 :發(fā)現(xiàn)案例或群體與其他案例和群體之間的差別 |
|
|
SQL Server 2005 中附帶了最流行的數(shù)據(jù)挖掘算法。
? |
Microsoft Decision Trees (決策樹)通常是數(shù)據(jù)研究的起始點(diǎn)。它是主要的分類算法,對離散和連接屬性的可預(yù)測建模效果很好。用算法構(gòu)建模型時(shí),它著眼于數(shù)據(jù)集中每個(gè)輸入屬性是如何影響預(yù)測屬性的結(jié)果的。其目標(biāo)是找到一個(gè)輸入屬性及其狀態(tài)的組合,使您能夠預(yù)測出所預(yù)測屬性的輸出結(jié)果。 |
? |
Microsoft Na?ve Bayes (貝葉斯算法)能夠快速構(gòu)建可用于分類和預(yù)測的數(shù)據(jù)挖掘模型。如果知道可預(yù)測屬性的每種狀態(tài),便可計(jì)算出輸入屬性每個(gè)可能狀態(tài)的概率。這種算法只支持離散(不連續(xù))屬性,它認(rèn)為所有輸入屬性都是彼此獨(dú)立的(前提是知道可預(yù)測屬性)。因?yàn)樨惾~斯算法的計(jì)算速度非常快,因此在初始數(shù)據(jù)研究階段通常會選擇這種算法進(jìn)行分類和預(yù)測問題。 |
? |
Microsoft Clustering 使用迭代技術(shù)將來自數(shù)據(jù)集的記錄分成若干個(gè)包含相似特性的簇。通過使用這些簇,您可以研究數(shù)據(jù),找出彼此之間的相互關(guān)系。您還可以從群集模型創(chuàng)建預(yù)測。 |
? |
Microsoft Association 基于 priori 算法,它為在大型數(shù)據(jù)集中查找多路關(guān)聯(lián)提供了一種有效的方法。Association 算法在數(shù)據(jù)庫所有事務(wù)中循環(huán),在單一用戶事務(wù)中查找最有可能同時(shí)出現(xiàn)的項(xiàng)目。關(guān)聯(lián)的項(xiàng)目被分到一起,放入項(xiàng)目集中,生成可用于預(yù)測的規(guī)則。Microsoft Association 通常用于購物籃分析。對于 Association 分析而言,執(zhí)行大量“非重復(fù)計(jì)數(shù)”的關(guān)系或 OLAP 分析是一個(gè)值得考慮的選擇。Microsoft Association 算法對算法參數(shù)的選擇很敏感,因此,對于一些小問題,使用 Microsoft Decision Trees 算法進(jìn)行購物籃分析可能效果更佳。 |
? |
Microsoft Sequence Clustering 將順序分析與在數(shù)據(jù)研究和預(yù)測中使用的群集方法結(jié)合在了一起。順序群集模型對事物發(fā)生次序很敏感。此外,群集算法還考慮到記錄群集中的其他屬性,使您可以開發(fā)關(guān)聯(lián)順序和非順序信息的模型。Sequence Clustering 算法將被用于執(zhí)行點(diǎn)擊流分析,以便于分析 Web 站點(diǎn)的通信流量、識別與特殊產(chǎn)品銷售關(guān)系最為密切的頁面,并預(yù)測接下來要訪問的頁面。 |
? |
Microsoft Time Series (時(shí)間序列)會創(chuàng)建可用于預(yù)測一個(gè)或多個(gè)連續(xù)變量(如股票價(jià)格)的模型。Time Series 算法的預(yù)測完全依據(jù)于在模型創(chuàng)建過程中從培訓(xùn)數(shù)據(jù)中推導(dǎo)得出的趨勢。Microsoft Time Series 使用 AutoRegression Trees 技術(shù),非常簡單易用,并可生成精確度極高的模型。在該算法中有一條專門用于時(shí)間序列的統(tǒng)計(jì)分析規(guī)則。大多數(shù)其他數(shù)據(jù)挖掘產(chǎn)品都提供了多項(xiàng)技術(shù),如 ARMA、ARIMA 和 Box-Jenkins,統(tǒng)計(jì)師必須在這些技術(shù)中確定模型的最佳技術(shù)選擇。Microsoft 選擇了一種方法,既可使廣泛的受眾能夠理解時(shí)間序列,又具備異常精確的結(jié)果。 |
? |
Microsoft Neural Net 和 Decision Trees 及 Na?ve Bayes 一樣,主要用于數(shù)據(jù)研究、分類和預(yù)測。Neural Net 是一種人工智能技術(shù),該技術(shù)可以利用所有可能的數(shù)據(jù)關(guān)系。因?yàn)樗且环N非常徹底的技術(shù),因此它是三個(gè)分類算法中最慢的算法。 |
構(gòu)建挖掘模型
模型的構(gòu)建、培訓(xùn)和測試過程是創(chuàng)建應(yīng)用程序過程中最為困難的一部分。正如下面我們要討論的,實(shí)際開發(fā)應(yīng)用程序是一個(gè)簡單的編程過程。在開始構(gòu)建數(shù)據(jù)挖掘模型之前,您應(yīng)當(dāng)已經(jīng)收集和清理了您的數(shù)據(jù),這些數(shù)據(jù)極有可能位于數(shù)據(jù)倉庫中。SQL Server 2005 Data Mining 可以從關(guān)系數(shù)據(jù)庫或 Analysis Services 多維數(shù)據(jù)中訪問數(shù)據(jù)。
開發(fā)數(shù)據(jù)挖掘模型的最佳人選是同時(shí)具備業(yè)務(wù)和技術(shù)技巧的人員。模型的開發(fā)人員將會從其統(tǒng)計(jì)背景中獲益、了解企業(yè)面臨的關(guān)鍵業(yè)務(wù)問題、對數(shù)據(jù)和關(guān)系產(chǎn)生極大的好奇心,同時(shí)還能夠利用 SQL Server 2005 工具處理和存儲數(shù)據(jù)。現(xiàn)有數(shù)據(jù)倉庫小組中的成員最有可能遇到這些標(biāo)準(zhǔn)。
作為數(shù)據(jù)挖掘的初學(xué)者,應(yīng)在構(gòu)建原型模型的同時(shí),計(jì)劃花費(fèi)數(shù)周時(shí)間來研究數(shù)據(jù)、工具以及可供選擇的算法。使用一臺您具備數(shù)據(jù)庫管理權(quán)限的開發(fā)服務(wù)器。構(gòu)建模型的最初階段是探索階段:您可能會希望以不同的方法來重新構(gòu)建數(shù)據(jù)和實(shí)驗(yàn)。當(dāng)然,您肯定希望從少量數(shù)據(jù)子集開始,并在開發(fā)愈加清晰的模型設(shè)計(jì)時(shí)擴(kuò)展數(shù)據(jù)集。在原型階段,不要為如何構(gòu)建一個(gè)“可供生產(chǎn)使用”的應(yīng)用程序而擔(dān)心。使用 DTS 或執(zhí)行任何所需數(shù)據(jù)處理最為舒適的任何工具。保存一份記錄有必要轉(zhuǎn)換的高級日志,但不要期望您所做的一卻都能成為永久應(yīng)用程序的一部分。
您應(yīng)當(dāng)準(zhǔn)備兩套數(shù)據(jù):一套用于開發(fā)模型,而另一套用于測試模型的精確度,從中選擇適合您業(yè)務(wù)問題最佳模型。在考慮如何劃分?jǐn)?shù)據(jù)子集時(shí),要確保沒有引入任何偏差。例如,從十個(gè)客戶中選擇一個(gè)客戶,或根據(jù)姓氏的第一個(gè)字符區(qū)分,或根據(jù)一些其他任意屬性區(qū)分。
開發(fā)數(shù)據(jù)挖掘模型的過程涉及選擇以下內(nèi)容:
? |
輸入數(shù)據(jù)集、 |
? |
輸入字段、 |
? |
數(shù)據(jù)挖掘算法,以及 |
? |
該算法在計(jì)算過程中所用到的參數(shù)。 |
如果不知道哪種類型的算法適合處理您的業(yè)務(wù)問題,請先從“決策樹”或“貝葉斯”入手研究數(shù)據(jù)。如果不知道要包括哪些屬性,就選擇所有屬性。使用相關(guān)性網(wǎng)絡(luò)視圖,從中獲得可幫助您簡化復(fù)雜模型的視圖。
在原型開發(fā)階段,您可能希望構(gòu)建相關(guān)模型,以便評估最佳算法和模型。使用“挖掘精度”圖表評估在預(yù)測中效果最佳的模型。您可能還希望構(gòu)建相關(guān)模型,對相同的數(shù)據(jù)執(zhí)行不同類型的分析。這些模型在作為相關(guān)模型時(shí)的處理速度要比作為獨(dú)立定義模型時(shí)的處理速度快。
在構(gòu)建和測試原型后,便可以構(gòu)建和測試實(shí)際數(shù)據(jù)挖掘模型。在將數(shù)據(jù)輸入數(shù)據(jù)挖掘引擎前,如果需要轉(zhuǎn)換數(shù)據(jù),那么為了要實(shí)現(xiàn)這些操作,應(yīng)當(dāng)開發(fā)可供生產(chǎn)用的操作流程。在某些情況下,可能要選擇從 DTS 管道直接植入挖掘模型。如果在少量數(shù)據(jù)的基礎(chǔ)上開發(fā)原型,將需要在整套培訓(xùn)數(shù)據(jù)的基礎(chǔ)上重新評估備選模型。
構(gòu)建數(shù)據(jù)挖掘應(yīng)用程序
在 Business Intelligence Development Studio 中開發(fā)和研究數(shù)據(jù)挖掘模型可使企業(yè)獲得巨大的價(jià)值。您可以瀏覽模型,了解數(shù)據(jù)與業(yè)務(wù)之間的關(guān)系,并使用該信息促進(jìn)策略決策的制定。但是,其最大的價(jià)值還是來自可以影響公司日常操作的數(shù)據(jù)挖掘應(yīng)用程序:例如,向客戶推薦產(chǎn)品、記錄客戶信用風(fēng)險(xiǎn),或根據(jù)預(yù)測的庫存不足下訂單的數(shù)據(jù)挖掘應(yīng)用程序。要開發(fā)可操作的數(shù)據(jù)挖掘應(yīng)用程序,您需要跳出 Business Intelligence Development Studio 的圈子,并用 Microsoft Visual Studio 或您選擇的其他開發(fā)環(huán)境編寫代碼。
大部分企業(yè)客戶都將面向客戶的數(shù)據(jù)挖掘應(yīng)用程序?qū)嵤榛?web 的 Win32 應(yīng)用程序,如 ASP 頁。數(shù)據(jù)挖掘模型業(yè)已構(gòu)建完畢,而且應(yīng)用程序也可以根據(jù)客戶的選擇或在 web 商務(wù)應(yīng)用程序中輸入的內(nèi)容,為客戶執(zhí)行預(yù)測。這可能是十分簡單的應(yīng)用程序;唯一不尋常的部分是發(fā)布預(yù)測查詢。
數(shù)據(jù)挖掘應(yīng)用程序開發(fā)人員不一定就是開發(fā)數(shù)據(jù)挖掘模型的人員。應(yīng)用程序開發(fā)人員應(yīng)具備一流的開發(fā)技能,而對業(yè)務(wù)或統(tǒng)計(jì)知識的需求則相對較低。
Microsoft 的數(shù)據(jù)挖掘技術(shù)大大地簡化了構(gòu)建自動化數(shù)據(jù)挖掘應(yīng)用程序的過程。其中共有兩個(gè)步驟:
? |
開發(fā)數(shù)據(jù)挖掘預(yù)測查詢,其 DMX 語法在“數(shù)據(jù)挖掘”規(guī)范的 OLE DB 中定義。不需要手工編寫 DMX,用戶只需單擊 Business Intelligence Development Studio 編輯器左欄上的“挖掘模型預(yù)測”圖標(biāo)即可。“預(yù)測查詢構(gòu)建器”圖形化工具會幫助您開發(fā)預(yù)測查詢。 |
? |
在數(shù)據(jù)挖掘應(yīng)用程序中使用預(yù)測查詢。如果應(yīng)用程序只使用 DMX 便可完成預(yù)測,則項(xiàng)目應(yīng)包括 ADO、ADO.Net 或 ADOMD.Net 等類引用(建議在 Beta 1 之后的開發(fā)中使用 ADOMD.Net)。如果您正在構(gòu)建一個(gè)更為復(fù)雜的應(yīng)用程序(例如要顯示用戶挖掘模型查看器,如“決策樹查看器”),將需要包括 Microsoft.AnalysisServices 和 Microsoft.AnalysisServices.Viewers 類。 |
有些客戶(主要是獨(dú)立軟件供應(yīng)商)希望創(chuàng)建可生成數(shù)據(jù)挖掘模型的應(yīng)用程序。這種應(yīng)用程序可能會替代在 Business Intelligence Development Studio 中開發(fā)挖掘模型,但可能只適用于特定的領(lǐng)域,如 web 分析。在這種情況下,開發(fā)項(xiàng)目就需要包括 Microsoft.DataWarehouse.Interfaces,以便可以獲得對 AMO(Analysis Management Objects,分析管理對象)的訪問權(quán)限。
DMX 示例
數(shù)據(jù)挖掘過程包括三個(gè)步驟,分別為創(chuàng)建數(shù)據(jù)挖掘模型、培訓(xùn)模型和根據(jù)模型預(yù)測行為,這三個(gè)步驟都可通過簡單、類似 SQL 編程語言的 DMX 來實(shí)現(xiàn)。示例語法如下所示;DMX 的完整使用方法可從聯(lián)機(jī)叢書中獲得。
創(chuàng)建數(shù)據(jù)挖掘模型:
CREATE MINING MODEL CreditRisk (CustID????????LONG KEY, Gender????????TEXT DISCRETE, Income????????LONG CONTINUOUS, Profession????TEXT DISCRETE, Risk????????TEXT DISCRETE PREDICT) USING Microsoft_Decision_Trees
培訓(xùn)數(shù)據(jù)模型:
INSERT INTO CreditRisk (CustId, Gender, Income, Profession, Risk) SELECT CustomerID, Gender, Income, Profession, Risk From Customers
根據(jù)數(shù)據(jù)挖掘模型預(yù)測行為:
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
Reporting Services
隨著 Microsoft SQL Server 2005 的發(fā)布,Microsoft 在其集成商務(wù)智能平臺中拓展了一個(gè)新的主要組件。即 SQL Server Reporting Services,該組件使得人們不管在任何商業(yè)環(huán)境中,都可將適當(dāng)?shù)男畔⑺瓦_(dá)適當(dāng)?shù)娜藛T,從而擴(kuò)展了 Microsoft 的商務(wù)智能發(fā)展前景。
Reporting Services 是一個(gè)基于服務(wù)器的完整平臺,可創(chuàng)建、管理和交付傳統(tǒng)報(bào)告和交互式報(bào)告。它包括您創(chuàng)建、分發(fā)和管理報(bào)告所需的一切工具和信息。同時(shí),產(chǎn)品的標(biāo)準(zhǔn)模塊化設(shè)計(jì)和應(yīng)用程序編程接口 (API) 使軟件開發(fā)人員、數(shù)據(jù)提供商和企業(yè)能夠集成原有系統(tǒng)或第三方應(yīng)用程序中的報(bào)告功能。
Reporting Services 隨 SQL Server 2005 一起發(fā)布,其中包括:
? |
用于創(chuàng)建、管理和查看報(bào)告的一整套工具 |
? |
用于承載和處理報(bào)告的引擎 |
? |
可將報(bào)告嵌入到(或?qū)⒔鉀Q方案集成到)不同 IT 環(huán)境中的可擴(kuò)展體系結(jié)構(gòu)與開放式接口。 |
為什么使用 Reporting Services?
毫無疑問,能夠在適當(dāng)?shù)臅r(shí)間將適當(dāng)?shù)男畔⑺瓦_(dá)適當(dāng)?shù)娜藛T具有巨大的價(jià)值。對于許多企業(yè)而言,這是一個(gè)挑戰(zhàn),因?yàn)檫@些需要訪問信息的人員不但具有廣泛的技術(shù)專業(yè)背景,而且還可能分散在整個(gè)傳統(tǒng)組織內(nèi)的不同位置,甚至于組織之外。
Reporting Services 通過靈活的訂閱和交付機(jī)制簡化了傳統(tǒng)報(bào)告與交互式報(bào)告的創(chuàng)建過程,并可將這些報(bào)告順利地交付給廣泛的人群。它還為處理復(fù)雜苛刻的商業(yè)環(huán)境提供了必要的安全性和可管理性。
Reporting Services 提供了獨(dú)一無二的屬性組合:
? |
完整的、基于服務(wù)器的報(bào)告平臺 :Reporting Services 支持從創(chuàng)建報(bào)告到提交報(bào)告和后續(xù)管理的整個(gè)報(bào)告生命周期。 |
? |
靈活可擴(kuò)展的報(bào)告功能 :Reporting Services 具用可擴(kuò)展的交付選項(xiàng),可同時(shí)支持眾多格式的傳統(tǒng)報(bào)告和交互式報(bào)告。它可通過開放式的 API 和接口輕松集成到任何環(huán)境或解決方案中。 |
? |
可伸縮性 :產(chǎn)品基于 web 的標(biāo)準(zhǔn)化模塊設(shè)計(jì),可輕松擴(kuò)展為支持高數(shù)據(jù)容量的環(huán)境。您能夠創(chuàng)建具有多個(gè)報(bào)告服務(wù)器的報(bào)告服務(wù)器場,訪問同一核心報(bào)告,為數(shù)以千計(jì)的 web 客戶端提供服務(wù)。 |
? |
與 Microsoft 產(chǎn)品和工具的集成 :Reporting Services 隨 SQL Server 一起發(fā)布,可輕松集成我們所熟悉的 Microsoft 工具,如 Office 和 SharePoint Portal Server,無需進(jìn)行編程和自定義設(shè)置。 |
使用 Reporting Services 的途徑
由于 Reporting Services 是結(jié)合可伸縮、可擴(kuò)展體系結(jié)構(gòu)的單一完整的報(bào)告平臺,因此它可滿足范圍廣泛的報(bào)告需求。
? |
企業(yè) 報(bào)告: 企業(yè)可在內(nèi)部報(bào)告和商務(wù)智能應(yīng)用程序中使用 Reporting Services。許多公司都創(chuàng)建數(shù)據(jù)集市或倉庫來匯總操作數(shù)據(jù)。通過使用 Reporting Services,公司的 IT 員工可以設(shè)計(jì)各種報(bào)告,并將這些報(bào)告通過電子郵件分發(fā),或在公司門戶上發(fā)布,將這些報(bào)告部署給的整個(gè)企業(yè)中的個(gè)人。Reporting Service 作為集成在 Microsoft BI 平臺中的一項(xiàng)綜合報(bào)告解決方案,為企業(yè)提供了巨大的價(jià)值。 |
? |
嵌入式報(bào)告: 獨(dú)立軟件供應(yīng)商 (ISV) 可以使用 Reporting Services 將報(bào)告預(yù)先定義為打包應(yīng)用程序(隨 Microsoft SQL Server 同時(shí)運(yùn)行的)的一部分。客戶的 IT 組織可按原樣訪問這些報(bào)告,或使用 Reporting Services 自定義報(bào)告,或?yàn)樘囟I(yè)務(wù)需求創(chuàng)建新報(bào)告。Reporting Services 為獨(dú)立軟件供應(yīng)商 (ISV) 提供了一種在應(yīng)用程序中嵌入靈活的交互式報(bào)告的簡單方法。 |
? |
為合作伙伴/客戶設(shè)計(jì)的 Web 報(bào)告: 組織可以將傳統(tǒng)報(bào)告或交互式 web 報(bào)告部署為通過外部網(wǎng)絡(luò)與客戶或合作伙伴交互。Reporting Services 在提供個(gè)性化和互動性的同時(shí),還使報(bào)告客戶擺脫了復(fù)雜的底層數(shù)據(jù)源。 |
Reporting Services 功能
Reporting Services 將集中式托管報(bào)告系統(tǒng)的優(yōu)點(diǎn)與桌面及基于 Web 應(yīng)用程序的靈活性和按需選擇性集于一身。Reporting Services 是一個(gè)完整的報(bào)告平臺,支持從報(bào)告創(chuàng)建到報(bào)告部署的整個(gè)報(bào)告生命周期。
制作報(bào)告
Reporting Services 包括創(chuàng)建傳統(tǒng)報(bào)告或交互式報(bào)告所需的一切工具及技術(shù),其中包括具有報(bào)告設(shè)計(jì)向?qū)Чδ艿膱D形化報(bào)告設(shè)計(jì)器工具。
報(bào)告制作功能 | 詳細(xì)信息 |
受到廣泛支持的數(shù)據(jù)源 |
Microsoft SQL Server Microsoft Analysis Services 所有兼容 OLE DB 的數(shù)據(jù)源 所有兼容 ODBC 的數(shù)據(jù)源 |
靈活的制作工具 |
報(bào)告設(shè)計(jì)器(使用 Visual Studio 2005) 基于 XML 的報(bào)告定義語言 (RDL) 生成 RDL 的第三方工具 |
靈活的報(bào)告格式 |
自由格式 表格 矩陣 圖表 使用運(yùn)行時(shí)篩選的參數(shù)化報(bào)告 排序和分組 演練 鏈接的報(bào)告 |
模塊化報(bào)告執(zhí)行 |
轉(zhuǎn)換是從查詢流程中分離出來的一個(gè)流程;同一份報(bào)告可能轉(zhuǎn)換為不同的格式。 執(zhí)行可按計(jì)劃執(zhí)行,也可以按需執(zhí)行。 |
管理報(bào)告
Reporting Services 包括基于 web 的工具,可用于管理報(bào)告和報(bào)告服務(wù)器 Web 應(yīng)用程序。管理員可使用此界面為報(bào)告定義基于角色的安全性、編排報(bào)告執(zhí)行和提交,以及跟蹤報(bào)告歷史。或者,企業(yè)或 ISV 可以使用 Reporting Services Web Services API 編寫自定的管理工具。
由于報(bào)告定義、文件夾和資源都存儲在 SQL Server 數(shù)據(jù)庫中,因此,您可以使用其他工具(如 SQL Server Management Studio)管理元數(shù)據(jù),或使用那些充分采納已發(fā)布 API 的第三方應(yīng)用程序。
Reporting Services 實(shí)施了一個(gè)靈活、基于角色的安全模型,用來保護(hù)報(bào)告和報(bào)告資源。這一功能可根據(jù)各種不同的安全需求量身定做。該產(chǎn)品包括根據(jù)需要集成其他安全模型的可擴(kuò)展接口。
報(bào)告管理功能 | 詳細(xì)信息 | ||||||
報(bào)告元數(shù)據(jù) |
|
||||||
數(shù)據(jù)源管理 |
|
||||||
參數(shù)管理 |
|
||||||
報(bào)告編排 |
集成 SQL Server 代理 |
||||||
執(zhí)行屬性 |
實(shí)時(shí)、緩存或快照。Reporting Services 快照是報(bào)告數(shù)據(jù)集(運(yùn)行報(bào)告快照時(shí)報(bào)告的源查詢結(jié)果)的存儲副本。 |
||||||
報(bào)告執(zhí)行的歷史 |
被保留下來,以供需要時(shí)再次使用的快照分類列表 |
||||||
報(bào)告安全性 |
|
||||||
報(bào)告服務(wù)器 Web 應(yīng)用程序 |
基于 Web 的管理工具,這些工具可用于:
|
||||||
靈活的管理 API |
Web 服務(wù) API |
提交報(bào)告
您可以將報(bào)告提交到門戶、將其以電子郵件的形式發(fā)送給用戶,或讓用戶使用基于 web 的報(bào)告服務(wù)器從文件夾層級中訪問報(bào)告。導(dǎo)航、搜索和訂閱功能可幫助用戶根據(jù)其需要定位和運(yùn)行報(bào)告。個(gè)性化的訂閱功能可讓用戶自行選擇自己喜歡的轉(zhuǎn)換格式。
報(bào)告提交功能 | 詳細(xì)信息 | ||||||||||||
報(bào)告轉(zhuǎn)換選項(xiàng)的范圍 |
|
||||||||||||
靈活的提交選項(xiàng) |
|
總結(jié)
Microsoft SQL Server 2005 是一個(gè)完整的商務(wù)智能平臺,它所提供的基礎(chǔ)結(jié)構(gòu)和服務(wù)器組件可用于構(gòu)建:
? |
易于查詢且維護(hù)成本較低的大型復(fù)雜數(shù)據(jù)倉庫; |
? |
較小規(guī)模的企業(yè)或大型企業(yè)中的部門可以輕松構(gòu)建和管理小型報(bào)告和分析系統(tǒng); |
? |
向操作用戶交付分析數(shù)據(jù)的低延遲系統(tǒng); |
? |
閉環(huán)分析和數(shù)據(jù)挖掘系統(tǒng);以及 |
? |
擴(kuò)展商務(wù)智能的嵌入式系統(tǒng)。 |
為用戶所熟悉的工具(SQL Server 關(guān)系數(shù)據(jù)庫、DTS、Reporting Services 和 Analysis Services OLAP 以及數(shù)據(jù)挖掘)也都得到了極大的改進(jìn)。新增功能(如 Business Intelligence Development Studio 和 SQL Server Management Studio)進(jìn)一步擴(kuò)展了 Microsoft BI 平臺。每個(gè)工具都具有創(chuàng)新性,其設(shè)計(jì)都可令您事半功倍:用比以前更少的硬件、規(guī)模更小的團(tuán)隊(duì)更快更好地構(gòu)建、部署和管理重要的商務(wù)智能應(yīng)用程序。
附錄 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
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
