商業(yè)智能:構(gòu)建您的第一個(gè)多維數(shù)據(jù)集 |
發(fā)布時(shí)間: 2012/9/3 17:20:09 |
我將通過創(chuàng)建一個(gè)包含自己的數(shù)據(jù)采樣的簡單多維數(shù)據(jù)集,向用戶介紹 Microsoft SQL Server Analysis Services。但當(dāng)我這么做時(shí)一定要當(dāng)心,因?yàn)樵谛掠脩魹樽约嚎吹降臇|西感到興奮并且想要馬上按照以前從不認(rèn)為有可能的方式研究數(shù)據(jù)時(shí),我曾不止一次地被人推到一邊。無論您是想讓自己的數(shù)據(jù)更易于瀏覽,還是希望用戶社區(qū)能支持大量數(shù)據(jù),您都將發(fā)現(xiàn) SQL Server Analysis Services (SSAS) 會(huì)提供一些工具。 本文是系列文章的第三部分;前兩篇文章發(fā)表在 2009 年 8 月刊中,可在 technet.microsoft.com/magazine/ee263919.aspx 上找到。這個(gè)系列通過在您生成簡單 BI 解決方案時(shí)使用 Microsoft SQL Server 2008 中提供的組件,幫助您更好地理解商業(yè)智能 (BI)。因?yàn)槲覍⒖记懊鎯善恼轮兴榻B的概念和技術(shù),所以如果您尚未閱讀這兩篇文章,建議您先花一些時(shí)間來回顧這些文章。 在“規(guī)劃您的第一個(gè) BI 解決方案”中,我解釋了構(gòu)建數(shù)據(jù)市場相對于直接從企業(yè)數(shù)據(jù)庫檢索數(shù)據(jù)的優(yōu)勢。我還提供了下載所需的示例數(shù)據(jù)庫的說明,以便您可以按照這些文章中描述的步驟進(jìn)行操作。隨后,Derek Comingore 在“為 BI 解決方案構(gòu)建數(shù)據(jù)基礎(chǔ)”中解釋了如何使用 Integration Services 向數(shù)據(jù)市場填充企業(yè)數(shù)據(jù)庫中的數(shù)據(jù)。在本文中,我將向您演示如何基于類似的數(shù)據(jù)市場設(shè)計(jì)構(gòu)建多維數(shù)據(jù)集。 您為什么應(yīng)該構(gòu)建多維數(shù)據(jù)集?我的第一篇文章總結(jié)了為什么要將數(shù)據(jù)移出您的企業(yè)數(shù)據(jù)庫并移入稱作“數(shù)據(jù)市場”的結(jié)構(gòu)中。查詢數(shù)據(jù)市場當(dāng)然具有其好處,并可能足以滿足一些方案,但通過再一次重新將數(shù)據(jù)打包到一個(gè)稱作多維數(shù)據(jù)集的結(jié)構(gòu)中,可另外實(shí)現(xiàn)一些好處。實(shí)際上,數(shù)據(jù)市場作為數(shù)據(jù)通向其多維數(shù)據(jù)集中的最終目的地的中轉(zhuǎn)站而存在,因此它在整個(gè)解決方案中仍然非常重要。 構(gòu)建用來存儲(chǔ)數(shù)據(jù)的多維數(shù)據(jù)集的另一個(gè)好處是,對于不能輕松存儲(chǔ)在關(guān)系數(shù)據(jù)市場中的計(jì)算而言,您可以集中管理其業(yè)務(wù)規(guī)則。此外,多維數(shù)據(jù)集結(jié)構(gòu)可使編寫用于對比逐年數(shù)據(jù)的查詢的任務(wù)輕松很多,或者可使創(chuàng)建累積值(如今年迄今為止的銷售量)的任務(wù)輕松很多。 而且,您可獲得透明管理多維數(shù)據(jù)集中的聚合數(shù)據(jù)的能力。為了提高包含大量數(shù)據(jù)的關(guān)系數(shù)據(jù)市場中的查詢性能,數(shù)據(jù)庫管理員經(jīng)常會(huì)創(chuàng)建匯總表,以便為不需要事務(wù)級別詳細(xì)信息的查詢準(zhǔn)備數(shù)據(jù)。SSAS 創(chuàng)建匯總表的邏輯等價(jià)表(稱作“聚合”)并使它們保持最新。 本文中我將繼續(xù)介紹第一篇文章中介紹的方案。這些方案為通過這個(gè)系列構(gòu)建的 BI 解決方案定義基本分析目標(biāo)。該解決方案必須能夠演示哪個(gè)銷售渠道對于 Adventure Works、Internet Sales 或 Reseller Sales 更加有利可圖,以及銷售趨勢是否指示特定產(chǎn)品的需求量正在增長或正在下降。BI 解決方案的源數(shù)據(jù)是 AdventureWorksDW2008 數(shù)據(jù)庫,該數(shù)據(jù)庫應(yīng)用 Derek 的文章中描述的維度建模和 ETL 準(zhǔn)則。 您可以從 CodePlex(地址為 msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18407)下載用于構(gòu)建適合 Adventure Works 的解決方案的示例數(shù)據(jù)庫。利用作為源提供的數(shù)據(jù)市場,您隨時(shí)可以構(gòu)建 Analysis Services 2008 數(shù)據(jù)庫。 準(zhǔn)備 Analysis Services 數(shù)據(jù)庫第一步是在 Business Intelligence Development Studio (BIDS) 中創(chuàng)建項(xiàng)目。從 Microsoft SQL Server 2008 程序組中啟動(dòng) BIDS,單擊“文件”|“新建”|“項(xiàng)目”。在“新建項(xiàng)目”對話框中,選擇“Analysis Services 項(xiàng)目”。在“名稱”文本框中,鍵入 ssas_TECHNET_AW2008,然后根據(jù)需要更改項(xiàng)目的位置。單擊“確定”創(chuàng)建項(xiàng)目。 現(xiàn)在,添加一個(gè)數(shù)據(jù)源來定義數(shù)據(jù)市場的連接字符串。在解決方案資源管理器中,右鍵單擊“數(shù)據(jù)源”文件夾,然后單擊“新建數(shù)據(jù)源”。在“數(shù)據(jù)源向?qū)?rdquo;中,在“歡迎使用”頁上單擊“下一步”(如果尚未禁用)。在“選擇如何定義連接”頁上,單擊“新建”來設(shè)置新連接。在“連接管理器”中,默認(rèn)值是 SQL Server Native Client。此值對于此項(xiàng)目是正確的,但您還可以使用 OLE DB 或 .NET 提供程序來訪問其他類型的數(shù)據(jù)。 若要定義連接,請?jiān)?ldquo;服務(wù)器名稱”文本框中鍵入您的服務(wù)器名稱,或從下拉列表中選擇名稱,然后在數(shù)據(jù)庫下拉列表中選擇“AdventureWorksDW2008”,并單擊“確定”。當(dāng)您返回到“數(shù)據(jù)源向?qū)?rdquo;中時(shí),單擊“下一步”。在“模擬信息”頁上,選擇“使用服務(wù)帳戶”選項(xiàng)。服務(wù)帳戶用于在將數(shù)據(jù)加載到您的 SSAS 數(shù)據(jù)庫時(shí)從源中讀取數(shù)據(jù),且其必須具有讀權(quán)限才能執(zhí)行此操作。單擊“下一步”,然后單擊“完成”結(jié)束向?qū)А?/p> 創(chuàng)建數(shù)據(jù)源視圖接下來,您將創(chuàng)建數(shù)據(jù)源視圖 (DSV) 作為數(shù)據(jù)源中表或視圖的抽象,您需要使用它來定義維度和多維數(shù)據(jù)集。如果您僅具有對數(shù)據(jù)市場的讀權(quán)限并且無法在源處進(jìn)行更改,則您可以方便地更改 DSV,而不用修改基礎(chǔ)數(shù)據(jù)源。在解決方案資源管理器中,右鍵單擊“數(shù)據(jù)源視圖”文件夾,然后單擊“新建數(shù)據(jù)源視圖”。 如有需要,在“歡迎使用”頁上單擊“下一步”。在“選擇數(shù)據(jù)源”頁上,選擇您剛剛添加到項(xiàng)目的數(shù)據(jù)源,并單擊“下一步”。通過雙擊所需的每個(gè)表或視圖向 DSV 添加對象。若要?jiǎng)?chuàng)建能幫助您回答本文開頭所提出的 BI 問題的 DSV,請向 DSV 添加下列表:DimDate、DimProduct、DimProductCategory、DimProductSubcategory、FactInternetSales 和 FactResellerSales。當(dāng)您在學(xué)習(xí)如何使用 SSAS 時(shí),最好從簡單的 DSV 學(xué)起。如果需要支持 BI 解決方案的其他問題,您始終可以在以后添加更多表。當(dāng)您添加完表后,在“數(shù)據(jù)源視圖向?qū)?rdquo;中單擊“下一步”,然后單擊“完成”。 建議您,通過在 DSV 設(shè)計(jì)器的“表”窗格中選擇每個(gè)表,并從每個(gè)表的 FriendlyName 屬性中刪除 Dim 和 Fact 前綴來簡化表的名稱。然后,您用來創(chuàng)建維度和多維數(shù)據(jù)集的向?qū)⑹褂?FriendlyName 屬性中的值向?qū)ο蠓峙涿Q。圖 1 中顯示了完整的 DSV。 圖 1:數(shù)據(jù)源視圖 除了在 DSV 中更改表的屬性之外,如果物理源沒有定義表之間的邏輯主鍵或邏輯關(guān)系,則您還可以定義它們。如果這些定義在數(shù)據(jù)層未物理就緒或在 DSV 中未邏輯就緒,則 SSAS 將無法正確顯示數(shù)據(jù)。您還可以添加命名計(jì)算,就好像向視圖中添加派生列一樣,也可以將表對象替換為命名查詢,就好像創(chuàng)建視圖一樣。 準(zhǔn)備在 SSAS 中構(gòu)建日期維度時(shí),您需要向 Date 表添加兩個(gè)命名計(jì)算(Quarter 和 Month),以將年份列與季度列和月份列連接起來。否則,當(dāng)您要查看匯總數(shù)據(jù)時(shí),數(shù)據(jù)將不會(huì)按照月份、季度和年份正常累積。若要為 Quarter 添加命名計(jì)算,請?jiān)谠O(shè)計(jì)器或“表”窗格中右鍵單擊 Date 表,再單擊“新建命名計(jì)算”。在“列名稱”文本框中鍵入 Quarter。在“表達(dá)式”文本框中鍵入以下表達(dá)式: 'Qtr ' + convert(char(1), CalendarQuarter) + ' ' + convert(char(4), CalendarYear) 單擊“確定”,現(xiàn)在重復(fù)上述步驟來為 Month 添加命名計(jì)算,使用的表達(dá)式是: left(EnglishMonthName, 3) + ' ' + convert(char(4), CalendarYear) 請注意,設(shè)計(jì)器中的 Date 表(如圖 2 中所示)顯示帶有計(jì)算器圖標(biāo)的命名計(jì)算,以將它們與表中物理存在的列進(jìn)行區(qū)分。通過右鍵單擊表并單擊“瀏覽數(shù)據(jù)”,可以查看添加命名計(jì)算的效果。BIDS 中將打開一個(gè)新窗口以顯示源表中的數(shù)據(jù)。 一直滾動(dòng)到右側(cè)時(shí),您可以看到命名計(jì)算的值。在您繼續(xù)構(gòu)建維度之前,始終應(yīng)使用“瀏覽數(shù)據(jù)”命令確認(rèn)命名計(jì)算按預(yù)期方式顯示。 在 Analysis Services 中定義維度向 DSV 添加維度表后,您即可在 SSAS 數(shù)據(jù)庫中創(chuàng)建維度。請注意,您使用維度可存儲(chǔ)有關(guān)業(yè)務(wù)實(shí)體的信息,如人員、地點(diǎn)和事物。若要能回答本文開頭所提出的 BI 問題,您需要為 Date 和 Product 創(chuàng)建維度。 圖 2 帶有命名計(jì)算的 Date 表 在任一情況下,您需要為事務(wù)表中的數(shù)據(jù)提供一個(gè)開始日期和一個(gè)結(jié)束日期。SSAS 可以在數(shù)據(jù)源中創(chuàng)建并填充一個(gè)物理表,然后使用此數(shù)據(jù)源填充在 SSAS 數(shù)據(jù)庫中維護(hù)的維度,也可以簡單地在 SSAS 數(shù)據(jù)庫單獨(dú)維護(hù)維度。 當(dāng)您需要能夠支持對數(shù)據(jù)源的關(guān)系查詢時(shí),您可以選擇生成物理表。單擊“下一步”繼續(xù)。 在“指定源信息”頁上,從“主表”下拉列表中選擇“日期”。注意,鍵列是 DateKey。該鍵列必須唯一標(biāo)識(shí)表中的每條記錄,以便 SSAS 返回查詢結(jié)果時(shí)能夠正確地對數(shù)據(jù)進(jìn)行聚合或分組。然后,在“名稱列”下拉列表中選擇“FullDateAlternateKey”。SSAS 將名稱列用作標(biāo)簽顯示給用戶,而不是顯示鍵列。 單擊“下一步”。 在“選擇維度屬性”頁上,選擇要包括在維度中的屬性,然后使用這些屬性定義層次結(jié)構(gòu)或其他分組標(biāo)簽。 是否包括維度表中的所有屬性取決于您要在 BI 解決方案中支持的問題類型。應(yīng)僅添加所需數(shù)量的屬性以確保 SSAS 以最優(yōu)方式執(zhí)行,從而避免消耗不必要的存儲(chǔ)空間并避免太多選項(xiàng)給用戶造成混淆。對于此維度,請選擇“Calendar Year”、“Quarter”和“Month”。單擊“下一步”,然后單擊“完成”。 若要確保可以唯一標(biāo)識(shí)每個(gè)屬性,請更新 KeyColumn 屬性。通過將此屬性設(shè)置為鍵列,確保 Month 按數(shù)字順序正確排序,而不是按月份名稱的字母順序排序(默認(rèn)排序順序)。 若要更新 KeyColumn 屬性,請?jiān)谧髠?cè)的“屬性”窗格中選擇“Month”。在“屬性”窗口中,單擊“KeyColumns”屬性,然后單擊省略號(hào)按鈕。在“鍵列”對話框中,單擊左箭頭清除當(dāng)前分配,然后雙擊 CalendarYear 和 MonthNumberOfYear,F(xiàn)在,通過單擊 NameColumns 屬性框中的省略號(hào)按鈕,為此屬性分配一個(gè)標(biāo)簽。選擇“EnglishMonthName”,并單擊“確定”。 重復(fù)上述步驟,將 Quarter 屬性的 KeyColumns 屬性設(shè)置為 CalendarYear 和 CalendarQuarter,并將 NameColumns 屬性設(shè)置為 Quarter。 圖 3 設(shè)計(jì)器中顯示的日期維度 您可以看到維度及其關(guān)聯(lián)屬性,包括左側(cè)“屬性”窗格中的鍵屬性。如果您決定稍后添加更多屬性,則可以將這些屬性從“數(shù)據(jù)源視圖”窗格逐一拖到“屬性”窗格。您只有在啟動(dòng)新維度時(shí)才會(huì)使用“維度向?qū)?rdquo;,但稍后可在維度設(shè)計(jì)器中進(jìn)行任何所需的更改。 現(xiàn)在,使用“維度向?qū)?rdquo;創(chuàng)建 Product 維度,將 Product 用作主表,并將 EnglishProductName 用作名稱列。因?yàn)?Product 維度是雪花型架構(gòu),所以該向?qū)О粋(gè)附加頁面來確認(rèn)您想要包括相關(guān)表 ProductSubcategory 和 ProductCategory。 接下來,向維度添加 Color 和 Size 屬性。請注意,該向?qū)⒆詣?dòng)為雪花型表選擇鍵列 Product Subcategory Key 和 Product Category Key。您需要在這些屬性對應(yīng)的名稱列中添加,但必須首先完成該向?qū),然后您才能修改屬性?nbsp; 當(dāng)顯示維度設(shè)計(jì)器時(shí),選擇“屬性”窗格中的“Product Category Key”。在“屬性”中,找到“Name”屬性,將名稱更改為“Category”。在“屬性”窗口中向下滾動(dòng),找到“NameColumn”屬性。 在屬性文本框中單擊以顯示省略號(hào)按鈕,單擊此按鈕,選擇 EnglishProductCategoryName,然后單擊“確定”,F(xiàn)在,重復(fù)上述步驟,將 Product Subcategory Key 重命名為 Subcategory,并將 EnglishProductSubcategoryName 指定為其名稱列。最后,將 Product Key 屬性重命名為 Product。 添加層次結(jié)構(gòu)請注意在“屬性”窗格中維度名稱 Product 下面顯示的藍(lán)色波浪線。當(dāng)您將光標(biāo)放在此線上方時(shí),將出現(xiàn)一條警告消息“在非父子維度中創(chuàng)建層次結(jié)構(gòu)。”此消息是內(nèi)置在 SSAS 2008 中的最佳做法警告的一個(gè)示例,可幫助您正確構(gòu)建 SSAS 數(shù)據(jù)庫。通過單擊文檔工作區(qū)中的相應(yīng)選項(xiàng)卡,或雙擊解決方案資源管理器中的 Date.dim,返回到 Date 維度設(shè)計(jì)器,在那里您將會(huì)看到相同的警告。 出于幾個(gè)原因,尤其是出于用戶友好和優(yōu)化目的,將層次結(jié)構(gòu)添加到維度是公認(rèn)的最佳做法。更具體地講,層次結(jié)構(gòu)為用戶提供從匯總數(shù)據(jù)到詳細(xì)數(shù)據(jù)要遵循的導(dǎo)航路徑。此外,通過允許 SSAS 在用戶查詢之間計(jì)算和存儲(chǔ)聚合,還可提高查詢性能。 例如,如果用戶希望按年份查看經(jīng)銷商銷售額,而且 Date 維度中的層次結(jié)構(gòu)定義從鍵屬性 (Date Key) 到 Calendar Year 屬性的匯總路徑,則 SSAS 可以在處理過程中按年份計(jì)算銷售數(shù)據(jù),然后將結(jié)果放入永久存儲(chǔ)中。此聚合存儲(chǔ)避免了查詢時(shí)計(jì)算每年銷售額的需要,而且這是與從關(guān)系數(shù)據(jù)市場檢索數(shù)據(jù)或從多維度數(shù)據(jù)庫(如 SSAS)檢索數(shù)據(jù)的主要區(qū)別。 若要向 Date 維度添加層次結(jié)構(gòu),請?jiān)诰S度設(shè)計(jì)器中,將 Calendar Year 屬性從“屬性”窗格拖到“層次結(jié)構(gòu)”窗格。在您添加第一個(gè)屬性后,將出現(xiàn)一個(gè)層次結(jié)構(gòu)對象,并且在剛剛添加的屬性下面有一個(gè)新的空級別。通過將 Quarter 和 Month 屬性分別放入空級別的空間內(nèi),將這兩個(gè)屬性添加到層次結(jié)構(gòu)中。接下來,通過右鍵單擊“層次結(jié)構(gòu)”,再單擊“重命名”并鍵入“Year”來重命名層次結(jié)構(gòu)。 盡管您添加了一個(gè)層次結(jié)構(gòu),但仍然出現(xiàn)關(guān)于 Date 維度的警告。將光標(biāo)放在波浪線上可看到新警告“避免將屬性的可見屬性層次結(jié)構(gòu)用作用戶定義的層次結(jié)構(gòu)中的級別。”這條消息建議您防止用戶在屬性已包含在層次結(jié)構(gòu)中時(shí)查看屬性本身。換句話說,用戶只有在層次結(jié)構(gòu)內(nèi)部進(jìn)行導(dǎo)航時(shí)才能查看屬性。 根據(jù)我的經(jīng)驗(yàn),您應(yīng)該結(jié)合用戶做出這個(gè)決定。如果您決定處理此警告,則選擇“屬性”窗格中的“Quarter”,然后在“屬性”窗口中,將 AttributeHierarchyVisible 值更改為 False。 屬性關(guān)系在層次結(jié)構(gòu)本身上顯示另一條警告。在這種情況下,此消息將警告可能引發(fā)了性能問題,因?yàn)閷哟谓Y(jié)構(gòu)的一個(gè)或多個(gè)級別之間的屬性關(guān)系丟失。屬性關(guān)系由 SSAS 用來優(yōu)化查詢性能和聚合設(shè)計(jì),以減少維度所需的存儲(chǔ)量并加快數(shù)據(jù)庫處理時(shí)間。 單擊維度設(shè)計(jì)器中的“屬性關(guān)系”選項(xiàng)卡。(請注意,僅當(dāng)您在使用 Analysis Services 2008 時(shí)此選項(xiàng)卡才可用。)默認(rèn)情況下,所有屬性直接與鍵屬性 Date Key 相關(guān)。若要通過重新分配關(guān)系優(yōu)化設(shè)計(jì),則將 Month 對象拖到 Quarter 對象,然后將 Quarter 對象拖到 Year 對象,F(xiàn)在,設(shè)計(jì)器中的關(guān)系正確表示了從左至右每個(gè)級別兩兩之間的多對一關(guān)系,如圖 4 中所示。 圖 4 屬性關(guān)系 接下來,向自上而下包含 Category、Subcategory 和 Product 的名為 Categories 的 Product 維度添加層次結(jié)構(gòu)。創(chuàng)建層次結(jié)構(gòu)之后,您會(huì)發(fā)現(xiàn)無需修復(fù)各級別之間的屬性關(guān)系,這是因?yàn)?DSV 中已經(jīng)定義了表與表之間的外鍵關(guān)系。不過,您可以根據(jù)需要將 AttributeHierarchyVisible 屬性值設(shè)置為 False。 現(xiàn)在,您的項(xiàng)目便包含了兩個(gè)已正確定義層次結(jié)構(gòu)和屬性關(guān)系的維度。隨著您更多地了解維度設(shè)計(jì),您將會(huì)發(fā)現(xiàn),可通過多個(gè)屬性來優(yōu)化性能和控制用戶界面中的特定行為。 另外,在更為復(fù)雜的 BI 解決方案中可能會(huì)存在更多維度。不過,此時(shí)您已掌握了維度的基本知識(shí),并且具備了繼續(xù)通過創(chuàng)建多維數(shù)據(jù)集來構(gòu)建可用解決方案所需的內(nèi)容。 創(chuàng)建多維數(shù)據(jù)集與使用“維度向?qū)?rdquo;開始定義維度的過程相同,您可以使用“多維數(shù)據(jù)集向?qū)?rdquo;開始創(chuàng)建多維數(shù)據(jù)集。在解決方案資源管理器中,右鍵單擊“多維數(shù)據(jù)集”文件夾,單擊“新建多維數(shù)據(jù)集”,然后在“歡迎使用”頁上單擊“下一步”(如果適用)。在“選擇創(chuàng)建方法”頁上,保留默認(rèn)選項(xiàng)。(如果您有一個(gè)設(shè)計(jì)需要手動(dòng)創(chuàng)建或使用模板創(chuàng)建,則可以使用另外兩個(gè)選項(xiàng),然后讓 SSAS 基于該設(shè)計(jì)在數(shù)據(jù)源中生成表。這需要您使用 Integration Services 填充數(shù)據(jù),然后才可以瀏覽您的多維數(shù)據(jù)集。)單擊“下一步”。 在“選擇度量值組表”頁上,選擇“Internet Sales”和“Reseller Sales”,并單擊“下一步”。(度量值組表與事實(shí)數(shù)據(jù)表同步。)然后,該向?qū)@示在所選度量值組表中找到的所有數(shù)字列。按照您到目前為止一直采用的簡單方法,通過清除頁面頂部的“度量值”復(fù)選框來清除所有度量值,然后從每個(gè)組(Internet Sales 和 Reseller Sales)中選擇以下度量值:Order Quantity、Total Product Cost 和 Sales Amount。 您還可重命名此頁上的度量值。只需右鍵單擊度量值名稱并鍵入新的名稱,但要確保每個(gè)度量值名稱唯一。度量值名稱應(yīng)當(dāng)簡短,但不能太短而讓人難懂。重命名 Internet Sales 組中的度量值,如下所示:Internet Order Quantity、Internet Cost 和 Internet Sales。同樣,將 Reseller Sales 度量值重命名為 Reseller Order Quantity、Reseller Cost 和 Reseller Sales。單擊“下一步”。 在“選擇現(xiàn)有維度”頁上,向?qū)@示您已創(chuàng)建的維度。單擊“下一步”。如果 DSV 中有任何表尚未作為度量值組表引用或被現(xiàn)有維度引用,則將顯示“選擇新維度”頁,以允許您快速添加您可能需要的任何其他維度。在這種情況下,清除 Internet Sales 和 Reseller Sales,因?yàn)槟鸁o需隨維度一起創(chuàng)建這些表。(盡管從技術(shù)上說這些是度量值組表,但如果表中存在銷售訂單數(shù),則可以創(chuàng)建維度以支持按照銷售訂單數(shù)來報(bào)告或分析銷售額。) 單擊“下一步”,將多維數(shù)據(jù)集重命名為 Sales,然后單擊“完成”?上部少R! 您已成功構(gòu)建了一個(gè)簡單的多維數(shù)據(jù)集!多維數(shù)據(jù)集設(shè)計(jì)器將在左側(cè)窗格中顯示已添加到多維數(shù)據(jù)集的度量值組和維度,并在右側(cè)窗格中顯示源 DSV,如圖 5 中所示。 圖 5 顯示度量值組和維度的多維數(shù)據(jù)集設(shè)計(jì)器 構(gòu)建多維數(shù)據(jù)集之后要執(zhí)行的第一步就是設(shè)置每個(gè)度量值的 FormatString 屬性,以便更容易地在多維數(shù)據(jù)集瀏覽器中查看值。執(zhí)行此操作最快捷的方法就是在網(wǎng)絡(luò)中查看度量值。在多維數(shù)據(jù)集設(shè)計(jì)器的工具欄中,單擊從左數(shù)的第五個(gè)按鈕以從“樹視圖”切換到“網(wǎng)格視圖”。在“網(wǎng)格視圖”中,您可使用 Ctrl 鍵來一次選擇多個(gè)度量值。首先,選擇“Internet Order Quantity”和“Reseller Order Quantity”。在“屬性”窗口的“FormatString”下拉列表中,選擇“標(biāo)準(zhǔn)”。然后,選擇所有其余度量值以將 FormatString 屬性設(shè)置為 Currency。 添加計(jì)算SSAS 的一項(xiàng)強(qiáng)大功能就是可以使用多維表達(dá)式語言 (MDX) 添加計(jì)算。如果您能在 Excel 中編寫公式,則可以使用簡單 MDX 表達(dá)式在多維數(shù)據(jù)集中創(chuàng)建計(jì)算。有關(guān)更多復(fù)雜的表達(dá)式,您需要花費(fèi)一些時(shí)間通過學(xué)習(xí)和大量實(shí)踐來了解 MDX。 請記住,此解決方案的設(shè)計(jì)目標(biāo)之一就是通過銷售渠道來度量收益。多維數(shù)據(jù)集此時(shí)包含您計(jì)算收益所需的度量值:Internet Cost、Internet Sales、Reseller Cost 和 Reseller Sales。銷售與成本之間的差異就是毛利,但這種計(jì)算提供的是絕對美元數(shù),對渠道之間的對比毫無用處。除了毛利,您還需要通過用銷售額除以毛利來計(jì)算毛利潤率。 在多維數(shù)據(jù)集設(shè)計(jì)器中,單擊“計(jì)算”選項(xiàng)卡,即從左起的第三個(gè)選項(xiàng)卡。然后單擊工具欄上的“新建計(jì)算成員”按鈕,即從左起的第五個(gè)按鈕。在“名稱”文本框中,鍵入“[Internet Gross Margin]”。 當(dāng)名稱包含空格時(shí),需使用括號(hào)。在“表達(dá)式”文本框中,鍵入“[Internet Sales] - [Internet Cost]”,然后在“格式字符串”下拉列表中選擇“Currency”,F(xiàn)在重復(fù)上述步驟以添加圖 6 中顯示的計(jì)算。
圖 6 向多維數(shù)據(jù)集添加計(jì)算 從 BIDS 部署 Analysis Services 數(shù)據(jù)庫到目前為止,雖然您已構(gòu)建了在服務(wù)器上創(chuàng)建 SSAS 數(shù)據(jù)庫所需的對象,但該數(shù)據(jù)庫本身還不存在。您在 BIDS 中執(zhí)行的設(shè)計(jì)任務(wù)將產(chǎn)生必須部署到服務(wù)器的 XML 文件。 部署這些文件后,您即可處理數(shù)據(jù)庫,包括執(zhí)行構(gòu)建 XML 文件所定義的存儲(chǔ)結(jié)構(gòu)所需的命令,以及通過執(zhí)行對指定數(shù)據(jù)源的查詢填充這些結(jié)構(gòu)。 在 BIDS 內(nèi),通過右鍵單擊解決方案資源管理器中的項(xiàng)目然后單擊“部署”,可啟動(dòng)所有這些活動(dòng)。“部署進(jìn)度”窗口將打開,以向您顯示其執(zhí)行的每個(gè)步驟以及對應(yīng)步驟成功與否。 部署完項(xiàng)目后,您仍可在設(shè)計(jì)器中進(jìn)行更改。只需按照上述操作再次部署項(xiàng)目,即可將您的更改移動(dòng)到服務(wù)器并啟動(dòng)處理過程。當(dāng)系統(tǒng)提示將覆蓋您的數(shù)據(jù)庫時(shí),如果您確定自己是唯一一個(gè)對數(shù)據(jù)庫進(jìn)行更改的用戶,則單擊“是”。 有時(shí)您在部署后進(jìn)行的更改將不會(huì)觸發(fā)處理數(shù)據(jù)庫的命令。在這種情況下,只需右鍵單擊您所更改的維度或多維數(shù)據(jù)集,然后單擊“處理”和“運(yùn)行”。如果您使用“處理全部”選項(xiàng)(對維度做出重大結(jié)構(gòu)更改時(shí),此選項(xiàng)是必需的)來處理維度,則您還可能需要處理多維數(shù)據(jù)集。 在 BIDS 中瀏覽多維數(shù)據(jù)集在部署的每個(gè)階段,只要成功部署并處理了解決方案,您就可從用戶的角度查看進(jìn)度。在多維數(shù)據(jù)集設(shè)計(jì)器中,單擊“瀏覽器”選項(xiàng)卡。左側(cè)窗格以元數(shù)據(jù)樹結(jié)構(gòu)顯示 SSAS 數(shù)據(jù)庫中的對象(如圖 7 中所示)。樹頂部的節(jié)點(diǎn)表示多維數(shù)據(jù)集。展開 Measures 節(jié)點(diǎn)及其包含的文件夾以查看所有可用的度量值,然后展開 Order Date 和 Product 節(jié)點(diǎn)以查看這些維度中的屬性。 圖 7 Sales 多維數(shù)據(jù)集元數(shù)據(jù)樹 當(dāng)您只創(chuàng)建一個(gè) Date 維度時(shí),您可能想知道為什么多維數(shù)據(jù)集會(huì)包含 Due Date、Order Date 和 Ship Date。這些多維數(shù)據(jù)集維度稱為“角色扮演維度”,因?yàn)樗鼈儽硎就痪S度的不同邏輯形式。 當(dāng)您包含 Date 維度時(shí),它們會(huì)自動(dòng)顯示在多維數(shù)據(jù)集中,這是因?yàn)槭聦?shí)表包含三個(gè)不同的外鍵列,而這三個(gè)外鍵列反過來全部與 Date 維度基于的單個(gè)表相關(guān),以便單獨(dú)跟蹤訂單、發(fā)貨和到期事件。(如果這些角色扮演日期對分析沒有任何幫助,則您可刪除設(shè)計(jì)器的“多維數(shù)據(jù)集結(jié)構(gòu)”頁上不需要的任何日期。) 若要查看多維數(shù)據(jù)集數(shù)據(jù),請將對象從元數(shù)據(jù)樹中拖動(dòng)到設(shè)計(jì)器的中心窗格。首先,將 Internet Sales 拖動(dòng)到標(biāo)記為 Drop Totals 或 Detail Fields Here 的區(qū)域。 然后,重復(fù)此過程以將 Internet Gross Margin Pct、Reseller Sales 和 Reseller Gross Margin Pct 添加到網(wǎng)格中,F(xiàn)在此簡單查詢的結(jié)果顯示在多維數(shù)據(jù)集瀏覽器中(如圖 8 中所示),您可以看到 Internet Sales 的收益要比 Reseller Sales 大很多。 圖 8 多維數(shù)據(jù)集瀏覽器中的查詢結(jié)果 您可通過將屬性拖動(dòng)到行、列或篩選器(統(tǒng)稱為“軸”)的網(wǎng)格部分,或?qū)傩院投攘恐低铣鼍W(wǎng)格,從而繼續(xù)研究這些結(jié)果。將對象添加到軸以優(yōu)化查詢的過程稱為“BI 用戶分割與切片”,這也是在無需編寫任何代碼的情況下查詢數(shù)據(jù)非?焖俚姆椒。例如,若要按年分隔,則將 Order Date.Year 拖到標(biāo)記為 Drop Row Fields Here 的部分。 因?yàn)?Order Date.Year 是由一個(gè)金字塔形圖標(biāo)指示的層次結(jié)構(gòu),所以您可以通過展開一個(gè)或多個(gè)年份,向下鉆取以按季度進(jìn)行分割。同樣,您也可以通過將 Categories 拖到度量值上面的列軸來按類別進(jìn)行切片。 將對象置于行或列上之后,您可通過單擊標(biāo)題中的箭頭,對項(xiàng)目列表進(jìn)行篩選。若要?jiǎng)h除網(wǎng)格中的“組件”,請單擊 Category 標(biāo)題中的箭頭,清除“組件”復(fù)選框并單擊“確定”。接下來,若要簡化視圖,請將 Internet Sales 和 Reseller Sales 拖出網(wǎng)格。現(xiàn)在,您可輕松將 Internet 渠道和 Reseller 渠道的收益按年份、季度和產(chǎn)品類別進(jìn)行比較,如圖 9 中所示。 圖 9 按年份、季度和類別顯示的銷售渠道收益 與用戶共享多維數(shù)據(jù)集默認(rèn)情況下,只有服務(wù)器管理員才可訪問多維數(shù)據(jù)集。但是,將您的多維數(shù)據(jù)集部署到 Analysis Server 之后,您即可設(shè)置權(quán)限,以授予用戶訪問多維數(shù)據(jù)集的權(quán)限,并允許用戶使用自己喜歡的工具瀏覽多維數(shù)據(jù)集。Microsoft Excel 2007 是進(jìn)行交互性瀏覽的常見選擇,但您也可以使用 Reporting Services 來基于多維數(shù)據(jù)集數(shù)據(jù)分發(fā)報(bào)表,對此我會(huì)在以后的文章中作出解釋。 應(yīng)用您的新技能現(xiàn)在,您已使用示例 AdventureWorks 數(shù)據(jù)構(gòu)建了一個(gè)小型數(shù)據(jù)庫,您應(yīng)該通過構(gòu)建一個(gè)簡單的多維數(shù)據(jù)集,將所學(xué)的技能應(yīng)用到您自己的數(shù)據(jù)中。如果您具有一個(gè)簡單的設(shè)計(jì)和相對較小的數(shù)據(jù)集(例如,不到幾百萬行),則您無需構(gòu)建和維護(hù)數(shù)據(jù)市場,即可構(gòu)建一個(gè)數(shù)據(jù)庫。只需設(shè)置一個(gè)數(shù)據(jù)源視圖,便可使用將數(shù)據(jù)盡可能構(gòu)造為星型架構(gòu)的命名查詢來查詢源。當(dāng)您的數(shù)據(jù)源具有新數(shù)據(jù)時(shí),您只需對 SSAS 數(shù)據(jù)庫執(zhí)行完全處理,即可使其與數(shù)據(jù)源保持同步。 如果您有更多數(shù)據(jù)要放入多維數(shù)據(jù)集中,則應(yīng)在聯(lián)機(jī)叢書中閱讀有關(guān) SSAS 的更多內(nèi)容以及其他資源,因?yàn)楸疚慕忉尩闹皇悄鷺?gòu)建簡單多維數(shù)據(jù)集需要知道的最基本的知識(shí)點(diǎn)。例如,在本文開頭,我提到了 SSAS 的一大好處是聚合管理,而要更多解釋這個(gè)主題則超出了本文的范圍。 通過閱讀最近由我的一位好友 Scott Cameron(多年前就與我一起開始了其商業(yè)智能生涯)出版的“Microsoft SQL Server 2008 Analysis Services Step by Step”(《Microsoft SQL Server 2008 Analysis Services 循序漸進(jìn)》,Microsoft Press,2009),您可了解到有關(guān)聚合及其他高級主題的更多信息,F(xiàn)在,您既已構(gòu)建了首個(gè)多維數(shù)據(jù)集,請繼續(xù)增強(qiáng)您的技能,以便可以開發(fā)更高級的多維數(shù)據(jù)集并充分利用 Microsoft BI 平臺(tái)。 本文出自:億恩科技【www.riomediacenter.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |