當前位置:編程學習大全網 - 編程語言 - 如何將數據倉庫與系統體系結構合成壹體

如何將數據倉庫與系統體系結構合成壹體

如果您對數據倉庫比較陌生,您可能會問:“它能夠幹什麽?什麽時候使用數據倉庫比較合適?怎樣才能將數據倉庫與系統體系結構合為壹體?”本文將簡要介紹使用 Microsoft 數據倉庫架構的數據倉庫。 數據倉庫在軟件行業相對短暫的歷史中,數據庫已經成為收集和分布信息的系統的基礎。這些數據庫深層隱藏的是統計學或測量方法,戰略家們可以對其進行研究,以提高系統的整體效率。數據采集是這類信息的重要部分,目的在於根據數據庫內容進行正確決策。直到最近,這種努力還需要昂貴而笨重的數據采集軟件包,或能夠將信息請求精確翻譯成可使用的、更有效的查詢的數據庫專家。除特大型的機構以外,對其他所有人來說,這兩種方案的成本都極為昂貴。 就數據采集的目的而言,能夠有效用於產品分類、庫存控制和訂單條目系統的普通關系數據庫可能並不是最佳的設計。跨表和跨數據庫(有時甚至是跨服務器)匯總輸出可能會非常復雜,而這種復雜是可以避免的。需要進行數據采集時,創建壹個可供數據分析查詢用的信息中心儲備庫將更有意義。這就是數據倉庫的含義。來自系統不同部分的信息被集成到數據倉庫中,以便於訪問。 作為數據倉庫模型的立方體用立方體作為數據倉庫儲備庫的名稱雖然不完美,但比較令人滿意。如何區分數據倉庫立方體和幾何立方體呢?這兩種立方體之間存在幾個重要的不同之處。數據倉庫立方體由任意數量的維度定義(並不限於三維,有時數據倉庫立方體可能少於三維)。描述數據倉庫立方體的維度與描述幾何立方體的長、寬和高壹樣。如果需要,可以將維度組合成任意數量的級別。 兩維間的關系可以用網格定型。維度類似於網格坐標軸上的標記。單元格才是內容。內容對應於立方體每個維度的交叉結果。單元格中的數據是壹個計量單位。計量單位是判斷立方體的全部依據。如果立方體是關於售出項目的數目,則計量單位就是已出售項目數量的計數。要重復網格示例,計量單位便是您在網格單元格中找到的數目。 圖1:上圖顯示的是兩維立方體的組織結構。在該示例中,“產品”和“地區”是維度;“椰菜”、“肥皂”、“俄勒岡”、“華盛頓”、“西雅圖”和“斯波坎”是各個維度的級別。包含不同圖表的單元格就是內容。內容單元格中的單個數據就是計量值。在該示例中,立方體中***使用了三種計量單位。 維度和級別對於為雜貨店設計的數據倉庫立方體,其維度可能包括產品、優惠、時間(營業天數)和地區等內容。可能還包括雇員維度和客戶維度(某些雜貨店可能有會員帳戶)。 級別用於將維度按需要組織為更小的單位。根據級別在立方體中的配置,它們還可能包含其他級別。例如,假設有壹個區域維。也許這個雜貨店在三個州營業,並且使用州界作為分界線。假設區域維包含三個級別:加利福尼亞、俄勒岡和華盛頓。如果該店在華盛頓州還包括其他子區域(例如西雅圖、奧林匹亞、亞基馬和斯波坎),即使加利福尼亞和俄勒岡區域沒有這樣的情況,這些級別仍可以作為子級別添加到華盛頓區域。級別只是組織維度內容的壹種便利方法。 內容和計量單位內容是由各個維度組合而成的。定位內容類似於使用坐標系。就象數學立方體中的原點可以表示為 (x=0,y=0,z=0),內容將由特定的維度組合(例如 (PRoduct=broccoli, Region=Seattle, Time=Wednesday))表示,生成壹個有關星期三在西雅圖銷售椰菜的內容。根據立方體的使用方法,內容可能顯示壹個類似於“售出 580 單位物品”或“銷售額為 $860.00”的計量單位。計量單位的含義取決於立方體的定義方式。在本例中,可能有多種椰菜或在西雅圖地區有多個商店。該值將表示定義組的匯總。立方體內的計量單位可能是數字。對於壹個雜貨店,計量單位可能會是產品價格、凈銷售額、銷售數量、商品成本等。 匯總計數和總計的數學運算是數據倉庫之所以有用的重要原因之壹,屬於匯總功能。維度組織完畢並已對立方體進行處理後,將開始計算匯總。通常,在立方體初始填充後或對立方體的內容進行更改後,將立刻進行匯總。 使用數據倉庫進行決策假設壹個雜貨店的情形。假定某種促銷已經進行了好幾天,店主需要決定是否要再次進行促銷。店主可能會產生如下疑問:“促銷期間賣出的產品比促銷前賣出的產品多嗎?” 在使用普通結構的事務數據庫中,雜貨店庫存系統可以記錄價格、產品、銷售和促銷等情況。庫存系統在插入和更新記錄方面進行了優化,並且在簡單的程式化選擇(如檢索項目成本)方面可能也進行了優化。這種情況是不太可能的:系統的組織方式使得所生成的報告可以按天或按產品詳細描述某種銷售的有效性。事實上,為事務有效性而設計的系統和為查詢有效性而設計的系統間總是存在矛盾。這種情況下,就應該使用數據倉庫。數據倉庫是壹個獨立的存儲庫,它使用已進行優化的結構中現有資源的相關數據。 在此例中,使用數據倉庫將很容易回答店主的問題。通過使用產品、促銷和時間立方體維度,計量項目銷售量的內容記錄總和便可以生成所需的結果。 與此技術相比,其他系統中的信息甚至可能不在同壹數據庫中。庫存數據源可能和客戶數據源或雇員數據源不壹樣。即使該系統位於同壹數據庫中,建立壹個查詢系統(該系統以壹種可以生成正確答案的方式合並和匯總結果)也是非常繁瑣的。事實上,合並數據源和匯總結果正是數據倉庫軟件最擅長的。 FoodMart 示例立方體包含在 Microsoft SQL Server Analysis Services 軟件,即 Microsoft 的數據倉庫軟件中。對於了解使用數據倉庫時可以使用什麽樣的信息,這是壹個非常好的資源。FoodMart 示例使用雜貨店作為模型。 查看立方體片段和編程接口雖然將數據倉庫構建成多維可能是簡單的設計選擇,並且對於處理器來說,執行跨越多個維度生成結果的查詢也不是特別的復雜,但是多維輸出的結構顯示起來卻非常困難。圖表、圖形和表格通常都是使用兩維顯示的。雖然有壹些好的三維圖表工具,但圖表會變得難以看懂。查看多維輸出的常用技術是壹次查看立方體的壹個兩維輸出“片段”。這也是 Microsoft SQL Server Analysis Tool 顯示輸出的方式。 使用DSO幸運的是,輸出並不局限於兩維。Microsoft SQL Server Analysis Services 為多維數據倉庫輸出提供了編程接口:DSO,決策支持對象 (Decision Support Object)。DSO 能夠用於編程訪問多個維度。 使用MDXMDX(多維擴展)是為查詢多維對象和數據而設計的語法。對這樣的系統來說,使用 MDX 要比使用 SQL(為完全不同的對象集而設計)更有效也更有意義。MDX 查詢的語法與 SQL 查詢的語法類似。請註意觀察下面的 MDX 查詢,它將選用前面示例中的銷售數字(星期三在西雅圖銷售的椰菜): SELECT [Measures].[Sales] ON COLUMNS [Time].[Wednesday] ON ROWS FROM MySalesCube WHERE [Region].[Washington].[Seattle] AND [Product].[Vegetable].[Broccholi]本查詢的輸出為壹個標記有“銷售額”的列,標記有“星期三”的行和交叉處包含銷售數字“$860.00”的網格單元格。 SQL Server Analysis Server Manager 包含壹個接收 MDX 查詢的接口。此外,MDX 查詢也可以被集成到使用 DSO 的程序中。 Microsoft 數據倉庫架構Microsoft 數據倉庫架構是壹個易於集成到當前系統的開放式體系結構。Microsoft SQL Server DTS 工具用於導入、導出以及修復或轉換數據(如果需要)。該架構包含壹個用於自定義數據倉庫實現的、以對象為中心的編程接口。還有壹個用戶接口,即 Microsoft SQL Server Analysis Services Manager,可用於配置數據倉庫並填寫或更新立方體中的內容。它可用於安排任務、監視性能以及對數據倉庫執行查詢。 數據倉庫的其他應用對於決策支持,數據倉庫是壹個了不起的工具,但該軟件還具有其他實際用途。 數據歸檔便是其中壹種用法。某些系統的存儲能力可能有限。因此需要經常從這些系統中刪除舊數據,以便容納新數據。如果需要歸檔信息以便保存長期的歷史報表,請考慮將部分舊數據存入數據倉庫。 數據倉庫將報告數據從運行系統中隔離出來。通過將查詢工作移動到更有效率的系統,這種隔離能夠提高運行系統的性能。可以提高安全性。敏感信息將保存在不會暴露給查詢的運行數據庫中。由數據倉庫提供的提取級別簡化了對決策支持應用程序生成的統計表的訪問。 實現數據倉庫易犯的錯誤數據倉庫可能在幾個方面使商業進程明顯復雜化。 它們倚賴於其他系統。如果數據倉庫所倚賴的數據源有所更改(例如,該數據源不再可用或已被新系統代替),那麽也需要對向數據倉庫傳送數據的進程進行修改。設計壹個向數據倉庫傳送數據的進程是創建數據倉庫過程中最費時間的任務。 有用數據的可用性非常關鍵。有時數據源內容對於決策支持沒有什麽用處。如果數據源是臨時性的,或者帶有未定義結構,或者內容變化得太快,這些都將降低數據倉庫所需的穩定性。創建數據倉庫並不能解決有用數據收集過程中的問題。 總結Microsoft 數據倉庫架構提供了構造、填充、查看和訪問數據倉庫的工具。數據倉庫軟件的基本單位是立方體,它是來自現有數據源的集成信息儲備庫。

  • 上一篇:我想從事有關遊戲方面的工作,我現在不會遊戲編程,有經驗的給指點下吧網遊還是什麽都行。
  • 下一篇:大數據有哪些重要的作用?
  • copyright 2024編程學習大全網