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

本文簡單介紹了使用Microsoft數據倉庫架構的數據倉庫,討論了數據倉庫能夠實現的功能,使用數據倉庫的恰當時機,以及如何將數據倉庫與系統體系結構合成一體。

簡介

1998 年發布的 7.0 版 Microsoft® SQL Server™ 中已經包含數據倉庫軟件。如果您對數據倉庫比較陌生,您可能會問:“它能夠幹什麽?什麽時候使用數據倉庫比較合適?怎樣才能將數據倉庫與系統體系結構合爲一體?”本文將簡要介紹使用 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 能夠用于編程訪問多個維度。

使用 MDX

MDX(多維擴展)是爲查詢多維對象和數據而設計的語法。對這樣的系統來說,使用 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 數據倉庫架構提供了構造、填充、查看和訪問數據倉庫的工具。數據倉庫軟件的基本單位是立方體,它是來自現有數據源的集成信息儲備庫。

Linux系統下如何使用rsync進行數據同步
首先安裝Rsync,比如在Redhat Fedora Linux上或者RHEL AS3上:rpm -ivh rsync-2.5.7-5.3E.i386.rpm安裝完成。rsync客戶端和服務器端都是同一個執行文件,只不過加的參數不一樣。例如,服務器A是192.168.0.100,服務器...查看完整版>>Linux系統下如何使用rsync進行數據同步
 
帶有ODS的體系結構中數據倉庫的設計方法
在一般的數據倉庫應用系統中,根據系統體系結構的不同,數據倉庫設計的內容和範圍不盡相同,並且設計方法也不盡相同,下面的兩幅圖示分別表示帶有ODS的數據倉庫應用系統體系結構和不帶ODS的數據倉庫應用系統體系結構...查看完整版>>帶有ODS的體系結構中數據倉庫的設計方法
 
SAS數據倉庫的體系結構
  數據倉庫的加載和更新  從數據源抓取數據不僅有質量問題,還存在有計劃地按一定時間節奏從數據源取出和 裝入、更新數據倉庫的問題。因爲SAS系統有主動去取外部數據的能力,所以按時間節奏 從數據源取出數據的操作...查看完整版>>SAS數據倉庫的體系結構
 
惠普甲骨文聯合推完整數據倉庫系統
  隨著公司存儲越來越多的信息和越來越大的目錄,數據倉庫越來越重要。因此,與其簡單地在不同系統的金字塔頂端部署數據倉庫軟件然後再試圖優化這個系統,一些廠商最終還是選擇聯合起來構建一個整體的數據倉庫生態...查看完整版>>惠普甲骨文聯合推完整數據倉庫系統
 
商務智能數據倉庫在ERP系統中的應用
  商務智能系統(Business Intelligence System)是指運用數據倉庫,聯機分析和數據挖掘技術來處理和分析商業數據,針對不同的領域提供不同的應用解決方案,協助用戶解決商務活動中的複雜問題,從而幫助決策者面對商...查看完整版>>商務智能數據倉庫在ERP系統中的應用
 
全面解析數據倉庫系統的建設過程和方法
數據倉庫系統的建設過程和方法不同于建設傳統的操作型處理系統的過程和方法,數據倉庫系統建設有兩個難點:一是如何保證數據質量,使得數據准確可信;二是如何構造應用體系,使之滿足不同角色用戶的分析決策需要。 受...查看完整版>>全面解析數據倉庫系統的建設過程和方法
 
BI有沒有前途 數據倉庫之路如何繼續下去
這篇論壇文章(賽迪網技術社區)根據筆者的個人經曆論述了以下幾個問題: 1.數據倉庫是什麽?2.BI是什麽?3.自己的數據倉庫之路如何繼續下去?4.BI到底有沒有前途? 更多內容請讀者參考下文: 雖然從開始到現在已經過...查看完整版>>BI有沒有前途 數據倉庫之路如何繼續下去
 
如何構建銀行數據倉庫
如何構建銀行數據倉庫 如何構建銀行數據倉庫 如何構建銀行數據倉庫河南省鄧州市新華東路11號市人行 宋玉長...查看完整版>>如何構建銀行數據倉庫
 
如何構建銀行數據倉庫
如何構建銀行數據倉庫河南省鄧州市新華東路11號市人行 宋玉長 數據倉庫技術作爲一項數據管理領域的新技術,其精髓在于針對聯機分析處理(OLAP)提出了一種綜合的解決方案,與以往很多技術不同的是,它主要是一種概念,...查看完整版>>如何構建銀行數據倉庫
 
 
回到王朝網路移動版首頁