數據倉庫原理<1>:數據庫與數據倉庫


updated 2015.8.27


updated 2015.8.26


updated 2015.8.23


0. 說明

《數據倉庫原理》系列博文,是筆者在學習數據倉庫與商業智能時的讀書筆記,現重新梳理思路,分享在這里,希望讀者批評指正。
本系列主要包括以下幾部分內容:
[1].數據庫與數據倉庫
為什么有了數據庫還需要數據倉庫?什么又是數據倉庫?
[2].數據倉庫系統的體系結構
數據倉庫系統的體系結構包括哪些組成要素?各自的作用又是什么?
[3].數據倉庫與ODS
什么是ODS?為什么需要ODS?DB~ODS~DW三層體系結構又是什么?
[4].聯機分析處理(OLAP)
OLAP是什么?OLAP與OLTP有什么區別?多維數模型有哪幾種?多維分析操作又有哪些?
每部分分別作為一篇博文進行總結。

1. 引言

本篇主要講述什么是數據倉庫?數據倉庫產生的背景和原因,數據倉庫的定義、特征、功能。
人類對數據的管理經歷人工管理、文件系統管理、數據庫系統管理三個階段,數據庫管理實現了對數據的永久存儲、有序組織和共享。在數據庫系統管理階段的早期,人們對數據的使用主要集中在查、刪、增、改等操作,當數據積累到一定程度時,人們希望對數據進行統計、多維分析、甚至挖掘來產生更多的價值,這時候,傳統的操作型數據庫就無法滿足這一需求,因此便產生了數據倉庫。
傳統的數據庫與數據倉庫在存放的數據特征、性能要求、應用范圍、面向人員等方面均有所差別。

2. 兩種數據處理模式:操作型數據處理和分析型數據處理

計算機系統中存在着兩種不同的數據處理模型:操作型數據處理分析型數據處理,又分別稱為聯機事務處理(Online Transaction Process,OLTP)和聯機分析處理(Online Analysis Process,OLAP)。
操作型數據處理,是指對數據庫聯機的日常操作,主要完成數據的收集、整理、存儲以及增刪查改等操作,主要由一般工作人員和基層管理人員完成。
分析型數據處理,是指對數據的再加工,通常是對海量的歷史數據查詢和分析,從中獲取信息,主要由分析人員和中高級管理人員完成。

3. 兩類數據:操作型數據與分析型數據

兩種數據處理模式對應着兩類數據:操作型數據和分析型數據。
兩類數據的比較
操作型數據處理主要應用於企業的日常事務處理工作,數據庫中存放的是細節的數據,也是當前的數據,反映的是最近一次修改后的結果。對數據的操作主要是數據的增刪查改。數據庫中的數據是可以修改的。數據的組織以方便事務處理、提高事務處理性能為目標。
分析型數據處理主要應用於企業的管理工作,數據庫中主要存放的是歷史數據和綜合數據。對數據的操作主要集中在查詢和統計分析,需要涉及大量數據,數據的組織方式以方面查詢分析為主要目標,為了提高查詢效率允許存在某種程度上的數據冗余。

4. 數據庫的局限性

傳統的數據庫在操作型數據處理上取得了巨大的成功,但是在分析型數據處理上卻遇到了瓶頸。主要有以下幾個原因:
(1) 數據的分散。操作型數據處理往往只需要涉及一個部門業務或者一個系統的數據,因此現在企業的數據是分散在各個操作型數據庫,而分析型操作往往面向整個企業、跨部門進行。
(2) 數據不一致的問題。從各個操作型數據庫中抽取數據會存在數據不一致的問題,比如同名異義、異名同義、單位不統一、字長不一致等,因此在分析操作前必須首先對這些數據進行預處理。
(3) 歷史數據問題。分析型數據操作往往需要大量的歷史數據,但是操作型數據庫一般存放的是短期數據。
(4) 數據粒度問題。分析型數據操作往往關注的是綜合性數據,但是操作型數據庫中存放的是細節數據,如果在分析前對細節數據進行綜合,會嚴重影響分析的效率。
因此,為了克服以上問題,使兩種數據操作都能夠有效的進行,就產生了數據倉庫。

總結:數據庫和數據倉庫分工不同,數據庫存放操作型數據,用於操作型數據處理,關注的事務處理的效率;數據倉庫存放分析型數據,用於分析型數據處理,關注的是分析和查詢的效率;兩者功能不同、用途不同,因此結構也會不同。


## 5. 數據倉庫的定義 > “數據倉庫之父” William H.Inmon在其`《Building the Data Warehouse》`中這樣定義數據倉庫:“數據倉庫是一個面向主題的、集成的、不可更新的、隨時間不斷變化的用來更好地支持企業或組織決策分析的數據集合。”

這一定義指出了數據倉庫中的數據應該具備以下4個特征:

  • 面向主題的;
  • 集成的;
  • 不可更新的;
  • 隨時間不斷變化的。

也指出了數據倉庫的用途:面向企業決策分析。
簡單地說,數據倉庫就是一種面向決策主題的,從多個數據源集成數據的,擁有當前數據、細節級和綜合級的歷史數據的,以查詢和分析為主的數據庫系統,目的是支持企業決策。

6. 數據倉庫數據的特征

(1)面向主題的
面向主題的數據組織方式是相對面向應用的數據組織方式而言的。

什么是面向主題的數據組織方式?
面向主題的數據組織方式就是在較高層次上對分析對象的數據的一個完整的、一致的描述,能完整、統一地刻畫各個分析對象所涉及企業的各項數據,以及數據之間的聯系。

企業在信息化建設時通常會按照業務類別來建立子系統,比如采購、銷售、庫存、人事、財務,子系統背后就是各種操作型數據庫。基於這樣的數據環境,如果需要對“顧客”這一對象進行相關的分析處理,就需要從各個操作型數據庫中提取數據,即使能夠取出來也會面臨各種問題,比如數據不一致。這就是面向應用的數據組織方式,顯然不能滿足分析需要。
面向主題就是根據分析需要,將分析對象所涉及的數據以及數據之間的聯系從企業各個方面進收集、匯聚,形成一個完整的、一致的、統一的數據集合。這里的主題就是分析對象,比如:“顧客”、“商品”、“供應商”。
面向主題的數據組織方式強調的就是要形成關於主題的一致的信息集合。
(2)集成的
由於數據倉庫中的數據是按照主題組織的,因此所涉及的數據來源於各個操作型數據庫、數據文件或者網絡。由於數據來源不同,就可能存在不一致的情況,比如同名異義、異名同義、單位不同、字長不同,因此在進入數據倉庫前就需要對數據進行清洗、轉換等操作。又因為之前的數據是面向應用的,因此需要將數據從面向應用到面向主題進行轉變。而數據倉庫中不僅有細節數據,還需要大量的綜合性數據,所以就需要對數據進行綜合、計算。完成這幾步后,數據才能被加載到數據倉庫中。
(3)不可更新的
不可更新是指數據一旦進入到數據倉庫中,就不允許修改,並且會被長期保留。
數據倉庫中的數據反映的是一段相當長時間內的歷史數據,一般會按照一定的周期(月、日)進行加載和刷新。
(4)隨時間不斷變化的
數據倉庫會隨着時間的變化不斷增加新的數據。因為數據倉庫中的數據是來源於操作型數據庫等數據源的歷史數據和綜合性數據,所以就需要定期的去捕捉這些數據源中的新數據,將其加載到數據倉庫中。
數據倉庫中的數據會有一定的存儲期限,當超過這個期限后,數據就會被刪除掉。
數據倉庫中有大量的綜合數據,而很多數據是按照時間進行組織的,比如月記錄、日記錄,所以就需要按照這一時間周期定期的加載新數據。

7. 數據倉庫的功能

數據倉庫是一種數據存儲,將不同來源的異構數據進行清洗、轉換、加工,集成並存儲起來,支持分析查詢需求,從而為企業決策提供支持。

8. 參考文獻

[1] 數據倉庫(原書第4版),William H.Inmon著,王志海等譯,機械工業出版社,2006.8
[2] 數據倉庫與數據分析教程,王珊等編著,高等教育出版社,2012.8




免責聲明!

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



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