摘要:利用數據倉庫技術可以對分布在企業各部門之間的業務數據進行采集、加工、整合,根據不同的業務主題建立不同的數據倉庫,為企業管理及決策提供分析信息和決策依據。本文介紹了數據倉庫及相關技術、企業數據倉庫的設計與實現。
關鍵詞:數據倉庫;OLAP;DTS
中國分類號:G64文獻標識碼:B
文章編號:1672-5913 (2007) 23-0062-04
1引言
1.1國內外數據倉庫的發展狀況
隨著企業信息系統的日趨完善和數據交換及處理中心的建立,如何滿足企業日益增長的各種查詢、統計、報表以及分析的需求,如何有效利用這些數據來實現經營目標,預測企業的發展趨勢,如何利用這些數據來設計企業的發展宏圖,在激烈的競爭中贏得先機是企業決策支持系統需要解決的問題,也是目前企業在信息技術應用上的難題。
隨著數據倉庫技術的發展和應用,國內外越來越多的企業都采用了數據倉庫解決方案充當企業決策機構的智囊和參謀。諸如:美國沃爾瑪連鎖店(世界最大的零售公司)、哈里斯公司(半導體公司的集成電路產品公司)發達國家的大型商業銀行、國內的電信、銀行、保險、零售、航空、鐵路運輸、郵政等傳統數據密集型行業的全球性大企業都己采用數據倉庫作為決策支持。據調查,財富500強企業中已有 85%的企業建成或正在建立數據倉庫。
1.2企業建立數據倉庫的必要性:
(1) 從總體上管理客戶與企業之間的關系
(2) 讓客戶獲得更多的益處
(3) 建立企業內部的合作關系
(4) 實現宏觀數據及微觀數據的管理
(5) 對轉瞬即逝的機會及時作出反應
(6) 改善管理能力
2數據倉庫的體系結構
“數據倉庫是面向主題的、集成的、隨時間變化的、非易失的數據集合,用于支持管理層的決策過程”。在本定義中,Inmon明確給出了數據倉庫的四個重要特點,即“面向主題”、“集成”、“隨時間變化”和“非易失”。
從數據倉庫體系各部件的功能來分析,數據倉庫在邏輯上可分為以下三個層次(數據倉庫體系結構如圖2-1所示):
●數據獲取/管理層
●數據存儲層
●數據分析/應用層

圖2.1 數據倉庫體系結構圖
2.1外部數據源
構建一個數據倉庫,必然要有充足的數據源,從外部為數據倉庫系統提供進行分析的“原材料”-數據,這些數據來源稱為數據倉庫的外部數據源(Data Resource),外部數據源并不局限于傳統數據庫,可以是非結構化的信息,如文本文件、網絡資源,等。
2.2數據獲取/管理層
數據倉庫中保存的業務數據來自于多個數據源,這些數據源提供的數據并非都是理想狀態的,存在各種缺陷,必須經過適當的處理才能導入數據倉庫中存儲的內容也必須進行維護,以確保系統的正常運行。數據獲取/管理層主要負責數據倉庫的定義與修改、數據的獲取、數據倉庫的管理等工作,保證數據倉庫的安全性、穩定性和有效性,主要面向數據倉庫的設計者和維護者。
2.3數據存儲層
數據存儲層是數據倉庫的主體,所存儲的數據包括三部分,其一是從外部數據源抽取,經清洗、轉換處理,并按照組織存放的業務數據,其二是數據倉庫的原數據,其三是針對不同的數據挖掘和分析主題而生成的數據集市。
數據的存儲與管理是整個數據倉庫系統的核心。在現有各業務系統的基礎上,對數據進行抽取、清理,并有效集成,按照主題進行重新組織,最終確定數據倉庫的物理存儲結構,同時組織存儲數據倉庫元數據(具體包括數據倉庫的數據字典、記錄系統定義、數據轉換規則、數據加載頻率以及業務規則等信息)。按照數據的覆蓋范圍,數據倉庫存儲可以分為企業級數據倉庫和部門級數據倉庫(通常稱為“數據集市”,Data Mart)。數據倉庫的管理包括數據的安全、歸檔、備份、維護、恢復等工作。這些功能與目前的DBMS基本一致。
2.4數據分析/應用層
數據倉庫系統的數據分析/應用層,面向系統的一般用戶,滿足用戶查詢需要,并以適當的方式向用戶展示查詢、分析的結果。數據分析/應用層主要包括以下功能。
(1) 查詢/統計服務。為用戶提供常規的查詢檢索、簡單統計和報表等服務,這是數據倉庫最基本的功能。
(2) OLAP服務。對于以多維數據倉庫方式進行數據組織的數據倉庫,OLAP是一種極為有效的分析方法,它通過上卷、下鉆、切片、切塊和旋轉等操作,對多維數據倉庫進行深入的分析。
(3) 數據挖掘服務。數據挖掘服務是數據倉庫系統的一種深層次應用,它是從大量的、不完全的、有噪聲的、模糊的、隨機的數據中,提取出隱含在其中、不為人們所知的、但又是十分有用的信息和知識的過程,即從大量數據中“挖掘”出知識的過程。
3 企業數據倉庫的設計
3.1需求分析
需求分析是數據倉庫設計的重要環節。如何解決企業各部門之間的多數據源、數據不一致、歷史數據無法充分利用及分析的效率等問題?如何滿足企業日益增長的各種查詢、統計、報表以及分析的需求?如何有效利用現有數據實現經營目標,預測企業的發展趨勢,為企業的決策提供支持,使企業在激烈的競爭中贏得先機等都是目前企業急待解決的問題,這些問題正是目前企業在信息技術應用上的首要難題。
3.2分析主題的確定
主題是一個在較高層次上將數據歸類的標準,每一個主題基本對應一個宏觀的分析領域。與傳統數據庫面向應用進行數據組織的特點相對應,數據倉庫中的數據是面向主題進行組織的。企業活動中有“產品”、“客戶關系”、“財務”等相關主題。
3.3數據源的確定
數據源是企業多年來積累的事務數據,數據大多基于關系數據庫。由于多年的數據積累,數據源中存在有臟數據,比如多數據源、數據不完整(有些感興趣的屬性缺少屬性值,或僅包含聚集數據),含噪聲的(包含錯誤或存在偏離期望的孤立點值),不一致的(例如,同一字段的表達方式不同)等。這些數據同數據倉庫有著不同的數據質量要求,不能夠達到數據倉庫的數據質量標準。另外,這些數據源是異構的,即使是正確的數據,也可能存在著不一致性,甚至存在著沖突。因此需要對數據進行凈化后再為數據倉庫所用。
3.4數據倉庫層的設計及OLAP服務器層的設計
使用SQL Server 2000作為數據倉庫服務器,在SQL Server 2000的“企業管理器”中新建一個關系數據庫,在該數據庫中建立表和關系圖,表的建立依據物理模型設計,關系圖的建立依據邏輯模型設計。此關系數據庫中的數據是使用SQL語句和DTS工具對源數據進行合并、清理、轉換和加載后得到的,新建的關系數據庫就是數據倉庫,即數據存儲中心,它將是OLAP服務器的數據來源。
使用SQL Server 2000的Analysis Services作為OLAP服務器,在Analysis Manager中建立分析數據庫,在分析數據庫下設定數據源,并按照星型模型建立多維數據集,為下一步進行多維分析奠定基礎。中小企業數據倉庫中的多維數據可以用ROLAP關系型結構進行表示和存儲的。
3.5數據分析/應用層的選擇
在數據透視表服務組件的支持下,應用Excel前端工具對數據倉庫進行多維分析和查詢。這種操作不需要學習其他語言來編寫客戶端應用程序,使用所附帶的連接數據庫的功能操作即可。而且,它可以連接到分析服務器,將服務器端的多維數據集放到客戶端成為一個本地文件,以后在無網絡連接的情況下可以用來分析。使用Microsoft Visual Basic 開發客戶端人機交互界面,其中用ADO MD和DSO對象實現對多維數據集的訪問,從而實現多維數據集瀏覽工具的開發。
3.6OLAP系統數據立方體及系統維的設計
數據倉庫中維的概念類似于關系表的屬性。數據立方體是指由兩個或更多個屬性即兩個或多個維來描述或分類的數據。在三維的情況下以圖形來表示,該類數據具有立方體結構,一般稱為數據立方體。雖然通常從幾何意義的角度將立方體理解為三維的,但在數據倉庫中數據立方體是一個n維的概念。在確定分析主題的基礎上設計OLAP數據立方體。
維是決策分析者分析數據的角度,也是數據立方中重要的組件。維是有組織的“類別”層次結構,此類別成員結構就是“層次”,主要用來說明“事實數據表”中的數據(也就是“度量值”)。有關維的層次信息需要存放在元數據中,系統在進行各種綜合查詢時,通過元數據的信息區分不同的維層次,從而正確地完成相應的分析功能。在設計中,要正確確定維的層次級別。例如在時間維上,從上到下有年、季、月、日四個層次,其級別關系是年包括季、季包括月、月包括日。在數據綜合過程中,要在同一維層次上進行求和操作。如果系統不能區分維層次而跨越不同的維層次求和,就會產生錯誤的結果,出現重復計算或缺項計算。維包括共享維和私有維,共享維是指在同一個分析數據庫中可以共享的維度,也就是說,該維度可以同時用在同一分析數據庫中的不同數據立方上。私有維是指隸屬于某一特定的數據立方。
根據設計好的主題,了解企業需要從哪些角度對主題進行分析,從而確定相關的維,以及適當的層次和粒度。
3.7數據倉庫數據模型設計
由于數據倉庫的主要操作對象是多維數據,因此,在數據倉庫設計中,應采用多維數據建模技術,以使用戶更好地理解企業的數據信息。多維數據建模符合人們的思維方式,易于用戶的理解和使用,能支持用戶從多個角度對數據進行分析。現在大部分企業使用的是關系數據庫,在建設企業的數據倉庫時,一般采用基于關系數據庫的建模方法。在基于關系數據庫的多維數據建模中最常見的是星形模型。
數據倉庫是數據庫技術一種新的應用。至今,數據倉庫一般仍是應用數據庫管理系統來管理其中的數據。數據倉庫的邏輯數據模型最終將轉為數據庫的物理模型。
建立數據倉庫物理模型所依據的邏輯模型是多維數據模型,而不是實體-關系模型,并且要盡可能地與多維數據模型保持一致。由于實際應用環境的限制,數據倉庫的物理模型同邏輯模型存在差異是不可避免的。
根據以上設計的星形模型圖,將星型圖中的各個邏輯實體分別轉換為相應的表。
4企業數據倉庫的實現
4.1技術環境和實現工具的選擇
目前,Oracle、SQL Server、Informix、Sybase等主要的RDBMS產品,均可以為用戶提供數據倉庫項目的開發工具;Delphi等通用的應用程序開發平臺,也能對數據倉庫項目的開發提供有效的支持。
SQL Server 2000能提供超大型系統所需的數據庫服務,尤其是微軟在SQL Server中推出了DTS(Data Transformation Service,數據轉換服務),結合SQL Server 2000提供的Analysis Services和數據倉庫技術為企業建立數據倉庫系統提供了一個完備的解決方案。
基于上述原因,本文使用Microsoft SQL Server2000作為數據倉庫服務器開發平臺,使用Analysis Services作為OLAP服務器開發平臺,使用DTS作為數據轉換工具。
4.2數據倉庫的建立
將數據源中數據按設計模型進行抽取、轉換、加載等操作,最終將數據存儲在數據庫中以備OLAP分析使用。
(1) 建立數據庫
打開Microsoft SQL Server的企業管理器, 在“數據庫”快捷菜單中選擇【新建數據庫】,出現“數據庫屬性”對話框,在“名稱”文本框中輸入數據庫名即可建立數據庫。
(2) 創建事實表與維表
在已建立的數據庫中創建事實表與維表,并建立數據庫關系圖。這樣便按照設定的邏輯模型和物理模型建立起一個新的數據倉庫-企業決策(這只是一個空的數據倉庫結構,還需繼續加載數據)。
4.3DTS任務包的設置
通常,數據倉庫具有多個數據源,為了有效地從各數據源獲取所需數據,并將其導入數據倉庫。DTS技術可以將取自完全不同源的數據進行抽取、轉換、合并至單個或多個目的數據庫。
由于來自企業內部的源數據中有數據的重復、丟失、改變等臟數據。可以先使用SQL語句將多個表的數據組合在一起,并進行字段的刪除、屬性修改等操作,最后通過DTS傳輸至企業數據庫相應的表中。數據導入時應先導入維表,再導入事實表;數據刪除先刪除事實表,再刪除維表。
完成數據庫的DTS包設置后,通過執行包將源數據庫中的數據加入到數據倉庫中,并將數據倉庫作為分析服務器的數據源,在分析服務器下建立多維數據集,并保存DTS包。
4.4企業數據倉庫中數據分析的實現
●分析數據庫的建立
在SQL SERVER 2000的Analysis Manager中新建一個OLAP分析數據庫
●數據源的設置
將新建立的SQL數據庫文件設定為數據源
●多維數據集的建立
●多維數據集的處理
使用存儲設計向導處理多維數據集,在存儲設計向導中選擇ROLAP關系數據存儲類型(三種存儲模式可供選擇:MOLAP、ROLAP及HOLAP)。
●多維數據集的分析
使用Analysis Manager對“企業決策”數據倉庫中多維數據集進行分析;通過選擇不同維實現切片、切塊等操作;通過拖動鼠標到不同的位置實現旋轉操作;通過雙擊屬性前 “+”或“-”來完成下鉆或上卷的操作。
5結束語
本文在研究數據倉庫技術的理論基礎上,提出了基于企業數據倉庫的設計與實現架構。在整個研究過程中,本人通過與企業有關領導及管理人員多次溝通,進行需求分析,根據企業的需求狀況,設計并實現了某企業的數據倉庫系統。
近年來,隨著因特網和電子商務的發展,各大數據倉庫產品供應商紛紛把注意力投向電子商務領域,并且通過數據倉庫技術來構造商業智能(BI)平臺。
實踐證明:數據倉庫的建立,可以使企業更好地了解自己的運營狀況,更全面、深入地分析業務數據,從而為業務的發展提供良好的決策基礎。使用數據倉庫系統會給我們的企業、生產部門、銷售等領域提供再造信息、再造知識、再造利潤的機遇。
參考文獻
[1] 曲江.數據倉庫:支持企業管理決策的核心[J].信息與電腦,2006,(9):31.
[2] 蘇新寧,楊建林,江念南,栗湘.數據倉庫和數據挖掘[M].清華大學出版社,2006,56~63.
[3] 曹曉靜.決策支持系統的發展及其關鍵技術分析[J].計算機技術與發展,2006,(11):94.
收稿日期:2007-09-24
作者簡介
柴巧葉(1964-),女,山西萬榮縣人,工學碩士,副教授,網絡應用工程師,研究方向:數據庫技術