數據倉庫原理<2>:數據倉庫系統的體系結構



## 1. 引言 `本篇主要講述數據倉庫系統的體系結構與組成要素、數據集市與數據倉庫之間的關系、元數據的定義與作用。` 在[上一篇](http://www.cnblogs.com/hbsygfz/p/4752418.html),筆者介紹了數據倉庫的定義: > “數據倉庫是一個面向主題的、集成的、不可更新的、隨時間不斷變化的用來更好地支持企業或組織決策分析的數據集合。”

數據倉庫是區別於傳統操作型數據庫的數據集合,主要應用於分析型數據操作,支持企業全局的決策分析。但是要實現這一應用目的,單一的數據倉庫是無法完成的,需要建立一個數據倉庫系統。
基於數據倉庫系統,完成數據從操作型數據庫等數據源到數據倉庫或者數據集市的流動、傳輸,以支持前台的決策分析處理工作。

2. 數據倉庫系統的體系結構

一個典型的數據倉庫系統的體系結構圖,如下所示。
數據倉庫系統的體系結構圖
簡單地說,數據從操作型數據庫、文件、網絡等數據源,通過ETL集成工具進行數據抽取、清洗、轉換、加載等工作,進入到數據倉庫和數據集市中,進而通過OLAP服務器支持前台的多維分析、查詢報表、數據挖掘等操作。


## 3. 組成要素 數據倉庫系統是由數據源、集成工具、數據倉庫與數據倉庫服務器、OLAP服務器、元數據與元數據管理工具、數據集市和前台分析工具等組成。 **(1)數據源:** 數據源就是提供初始數據的地方,是數據倉庫系統的基礎。通常包括企業內部數據和外部數據。內部數據包括各種操作型數據庫中的數據以及文檔數據,外部數據包括各類法律法規、市場信息、競爭對手信息以及各種統計數據和文檔。 **(2)集成工具:** 即ETL工具。ETL是`Extract-Transform-Load`的縮寫,包括數據抽取(`Extracting`)、數據清洗(`Cleaning`)、數據轉換(`Transforming`)、數據加載(`Loading`)等工作。具體地說: - 數據抽取,就是從不同數據源中選擇數據倉庫所需要的數據。這些數據可能具有的特點是:來自不同平台、不同結構、不同類型等。 - 數據清洗,由於數據來自於不同的數據源,因此數據質量難以保證,比如存在數據不一致性、量綱不同、值缺失等情況,就需要對抽取到的數據進行清洗。 - 數據轉換,就是將面向應用的數據轉換成面向主題的數據。 > 什么是面向主題的數據?[在上一篇博文第6節已經介紹到](http://www.cnblogs.com/hbsygfz/p/4752418.html)
  • 數據加載,就是將數據裝入到數據倉庫中。

補充:ETL工作是BI/DW項目的核心靈魂,它按照統一的規則集成並提高數據的價值,是負責完成數據從數據源向目標數據倉庫轉化的過程,是實施數據倉庫的重要步驟。如果說數據倉庫的模型設計是一座大廈的設計藍圖,數據是磚瓦的話,那么ETL就是建設大廈的過程。在整個項目中最難部分是用戶需求分析和模型設計,而ETL規則設計和實施則是工作量最大的,約占整個項目的60%~80%,這是國內外從眾多實踐中得到的普遍共識。

(3)數據倉庫服務器:
數據倉庫服務器負責管理數據倉庫中的數據,為整個企業的數據分析提供一個完整的、統一的視圖。
(4)OLAP服務器:
使用OLAP服務器對分析需要的數據按照多維數據模型進行再次重組,以支持用戶多角度、多層級的數據分析。
(5)數據集市:
數據集市是一個小型的數據倉庫,通常具有較少的主題域,是部門級的數據倉庫,面向部門級的應用。
(6)前台分析工具:
包括各種數據分析工具,如報表工具、OLAP分析工具、數據挖掘工具。各種分析工具既可以從數據倉庫中獲取數據,還可以從數據集市中獲取數據。
(7)元數據:
元數據就是整個數據倉庫的所有描述性信息,即關於數據的數據。ETL負責建立元數據。

總結:數據從數據源到將最終的分析結果呈現給用戶,需要經歷以下幾個過程:
① 從各種數據源中抽取合適的、需要的數據;
② 對數據進行清洗、加工、轉換、重構等預處理工作;
③ 建立高效、海量的企業數據倉庫(Enterprise Data Warehouse,EDW);
④ 針對特定的分析主題,建立專門的數據集市(Data Mart,DM);
⑤ 針對特定的業務需要,創建前端數據展現應用,或者開展專題分析項目。


## 4. 數據集市 **(1)數據集市的定義:** 數據集市就是面向部門或者應用的小型數據倉庫,相比企業級數據倉庫,具有較少的主題域。 **(2)數據集市的分類:** 按照數據的獲取方式,將數據集市分為從屬型數據集市和獨立型數據集市。 從屬型數據集市就是從中央數據倉庫中獲取數據,這類數據集市之間是互連的。 獨立型數據集市就是直接從操作型數據庫等數據源中獲取數據,這類數據集市之間沒有聯系,是相互獨立的。 **(3)兩種建立數據集市的思想:** 兩種數據集市對應着兩種建立數據集市的思想,即“自頂向下”和“自底向上”的思想。 “自頂向下”就是先創建一個中央數據倉庫,然后按照各個特定部門的特定需求建立多個從屬型的數據集市。 “自底向上”就是先以最少的投資,根據部門的實際需要,創建多個獨立的數據集市,然后不斷擴充、不斷完善,最終形成一個中央數據倉庫。 **(4)數據集市的作用:** 數據集市一般包含着某一特定業務內容的數據,因此可以按照業務的分類來組織,當然也可以按照數據倉庫的主題、地理位置、企業部門來組織。這樣,數據集市就可以滿足企業、部門、個人不同層次、不同范圍的人員對數據的需求。 數據集市可以分布在不同的物理平台上,也可以邏輯分布在同一物理平台上。 **(5)數據集市與數據倉庫的區別:** 數據集市是按照部門或者業務分類進行組織的小型數據倉庫,而數據倉庫則是面向整個企業的。二者的不同,一是主題域的不同,二是數據規模的不同,三是訪問效率的不同。

5. 元數據

(1)元數據的定義:
元數據就是關於數據的數據。關系型數據庫中的“數據字典”就是元數據的一種。
(2)元數據的作用:
元數據描述數據的結構、來源、抽取和轉換規則、存儲,描述操縱數據的進程和應用程序的結構、功能等。其主要目的就是提供數據資源的全面指南,使數據倉庫管理員和開發人員能夠清楚的了解到數據存放在哪里、有什么數據、來源於哪里、如何使用和管理這些數據。
(3)元數據的分類:
按照使用元數據的用戶分類,可以分為技術元數據和業務元數據。技術元數據描述數據的技術細節,主要提供給開發人員和管理人員;業務元數據主要是讓業務人員能夠明白數據倉庫中的數據。
按照來源的正式程度分類,分為正式元數據和非正式元數據,前者是經過討論並由決策者確定的元數據,后者是一些規范、制度、常識組成,沒有標准的形式。
按照功能分類,分為數據源元數據、ETL元數據、ODS元數據、DW元數據、報表元數據、接口數據文件格式元數據、商業元數據。

6. 參考文獻

[1] 數據倉庫(原書第4版),William H.Inmon著,王志海等譯,機械工業出版社,2006.8
[2] 數據倉庫與數據分析教程,王珊等編著,高等教育出版社,2012.8
[3] 博文:系統設計與架構筆記:ETL工具開發和設計的建議




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM