訂閱
糾錯
加入自媒體

詳解數(shù)據(jù)倉庫建設(shè)體系

2021-03-18 09:51
園陌
關(guān)注

數(shù)據(jù)倉庫的基本概念

數(shù)據(jù)倉庫概念:

英文名稱為Data Warehouse,可簡寫為DW或DWH。數(shù)據(jù)倉庫的目的是構(gòu)建面向分析的集成化數(shù)據(jù)環(huán)境,為企業(yè)提供決策支持(Decision Support)。它出于分析性報告和決策支持目的而創(chuàng)建。

數(shù)據(jù)倉庫本身并不“生產(chǎn)”任何數(shù)據(jù),同時自身也不需要“消費”任何的數(shù)據(jù),數(shù)據(jù)來源于外部,并且開放給外部應(yīng)用,這也是為什么叫“倉庫”,而不叫“工廠”的原因。

基本特征:

數(shù)據(jù)倉庫是面向主題的、集成的、非易失的和時變的數(shù)據(jù)集合,用以支持管理決策。

面向主題:

傳統(tǒng)數(shù)據(jù)庫中,最大的特點是面向應(yīng)用進(jìn)行數(shù)據(jù)的組織,各個業(yè)務(wù)系統(tǒng)可能是相互分離的。而數(shù)據(jù)倉庫則是面向主題的。主題是一個抽象的概念,是較高層次上企業(yè)信息系統(tǒng)中的數(shù)據(jù)綜合、歸類并進(jìn)行分析利用的抽象。在邏輯意義上,它是對應(yīng)企業(yè)中某一宏觀分析領(lǐng)域所涉及的分析對象。

集成性:

通過對分散、獨立、異構(gòu)的數(shù)據(jù)庫數(shù)據(jù)進(jìn)行抽取、清理、轉(zhuǎn)換和匯總便得到了數(shù)據(jù)倉庫的數(shù)據(jù),這樣保證了數(shù)據(jù)倉庫內(nèi)的數(shù)據(jù)關(guān)于整個企業(yè)的一致性。

數(shù)據(jù)倉庫中的綜合數(shù)據(jù)不能從原有的數(shù)據(jù)庫系統(tǒng)直接得到。因此在數(shù)據(jù)進(jìn)入數(shù)據(jù)倉庫之前,必然要經(jīng)過統(tǒng)一與綜合,這一步是數(shù)據(jù)倉庫建設(shè)中最關(guān)鍵、最復(fù)雜的一步,所要完成的工作有:

要統(tǒng)一源數(shù)據(jù)中所有矛盾之處,如字段的同名異義、異名同義、單位不統(tǒng)一、字長不一致,等等。進(jìn)行數(shù)據(jù)綜合和計算。數(shù)據(jù)倉庫中的數(shù)據(jù)綜合工作可以在從原有數(shù)據(jù)庫抽取數(shù)據(jù)時生成,但許多是在數(shù)據(jù)倉庫內(nèi)部生成的,即進(jìn)入數(shù)據(jù)倉庫以后進(jìn)行綜合生成的。

下圖說明一個保險公司綜合數(shù)據(jù)的簡單處理過程,其中數(shù)據(jù)倉庫中與“保險” 主題有關(guān)的數(shù)據(jù)來自于多個不同的操作型系統(tǒng)。這些系統(tǒng)內(nèi)部數(shù)據(jù)的命名可能不同,數(shù)據(jù)格式也可能不同。把不同來源的數(shù)據(jù)存儲到數(shù)據(jù)倉庫之前,需要去除這些不一致。

數(shù)倉主題非易失性(不可更新性)

數(shù)據(jù)倉庫的數(shù)據(jù)反映的是一段相當(dāng)長的時間內(nèi)歷史數(shù)據(jù)的內(nèi)容,是不同時點的數(shù)據(jù)庫快照的集合,以及基于這些快照進(jìn)行統(tǒng)計、綜合和重組的導(dǎo)出數(shù)據(jù)。

數(shù)據(jù)非易失性主要是針對應(yīng)用而言。數(shù)據(jù)倉庫的用戶對數(shù)據(jù)的操作大多是數(shù)據(jù)查詢或比較復(fù)雜的挖掘,一旦數(shù)據(jù)進(jìn)入數(shù)據(jù)倉庫以后,一般情況下被較長時間保留。數(shù)據(jù)倉庫中一般有大量的查詢操作,但修改和刪除操作很少。因此,數(shù)據(jù)經(jīng)加工和集成進(jìn)入數(shù)據(jù)倉庫后是極少更新的,通常只需要定期的加載和更新。

時變性

數(shù)據(jù)倉庫包含各種粒度的歷史數(shù)據(jù)。數(shù)據(jù)倉庫中的數(shù)據(jù)可能與某個特定日期、星期、月份、季度或者年份有關(guān)。數(shù)據(jù)倉庫的目的是通過分析企業(yè)過去一段時間業(yè)務(wù)的經(jīng)營狀況,挖掘其中隱藏的模式。雖然數(shù)據(jù)倉庫的用戶不能修改數(shù)據(jù),但并不是說數(shù)據(jù)倉庫的數(shù)據(jù)是永遠(yuǎn)不變的。分析的結(jié)果只能反映過去的情況,當(dāng)業(yè)務(wù)變化后,挖掘出的模式會失去時效性。因此數(shù)據(jù)倉庫的數(shù)據(jù)需要更新,以適應(yīng)決策的需要。從這個角度講,數(shù)據(jù)倉庫建設(shè)是一個項目,更是一個過程。數(shù)據(jù)倉庫的數(shù)據(jù)隨時間的變化表現(xiàn)在以下幾個方面:

(1) 數(shù)據(jù)倉庫的數(shù)據(jù)時限一般要遠(yuǎn)遠(yuǎn)長于操作型數(shù)據(jù)的數(shù)據(jù)時限。

(2) 操作型系統(tǒng)存儲的是當(dāng)前數(shù)據(jù),而數(shù)據(jù)倉庫中的數(shù)據(jù)是歷史數(shù)據(jù)。

(3) 數(shù)據(jù)倉庫中的數(shù)據(jù)是按照時間順序追加的,它們都帶有時間屬性。

1. 數(shù)據(jù)倉庫與數(shù)據(jù)庫的區(qū)別

數(shù)據(jù)庫與數(shù)據(jù)倉庫的區(qū)別實際講的是 OLTP 與 OLAP 的區(qū)別。

操作型處理,叫聯(lián)機(jī)事務(wù)處理 OLTP(On-Line Transaction Processing,),也可以稱面向交易的處理系統(tǒng),它是針對具體業(yè)務(wù)在數(shù)據(jù)庫聯(lián)機(jī)的日常操作,通常對少數(shù)記錄進(jìn)行查詢、修改。用戶較為關(guān)心操作的響應(yīng)時間、數(shù)據(jù)的安全性、完整性和并發(fā)支持的用戶數(shù)等問題。傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)作為數(shù)據(jù)管理的主要手段,主要用于操作型處理,像Mysql,Oracle等關(guān)系型數(shù)據(jù)庫一般屬于OLTP。

分析型處理,叫聯(lián)機(jī)分析處理 OLAP(On-Line Analytical Processing)一般針對某些主題的歷史數(shù)據(jù)進(jìn)行分析,支持管理決策。

首先要明白,數(shù)據(jù)倉庫的出現(xiàn),并不是要取代數(shù)據(jù)庫。數(shù)據(jù)庫是面向事務(wù)的設(shè)計,數(shù)據(jù)倉庫是面向主題設(shè)計的。數(shù)據(jù)庫一般存儲業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)倉庫存儲的一般是歷史數(shù)據(jù)。

數(shù)據(jù)庫設(shè)計是盡量避免冗余,一般針對某一業(yè)務(wù)應(yīng)用進(jìn)行設(shè)計,比如一張簡單的User表,記錄用戶名、密碼等簡單數(shù)據(jù)即可,符合業(yè)務(wù)應(yīng)用,但是不符合分析。數(shù)據(jù)倉庫在設(shè)計是有意引入冗余,依照分析需求,分析維度、分析指標(biāo)進(jìn)行設(shè)計。

數(shù)據(jù)庫是為捕獲數(shù)據(jù)而設(shè)計,數(shù)據(jù)倉庫是為分析數(shù)據(jù)而設(shè)計。

以銀行業(yè)務(wù)為例。數(shù)據(jù)庫是事務(wù)系統(tǒng)的數(shù)據(jù)平臺,客戶在銀行做的每筆交易都會寫入數(shù)據(jù)庫,被記錄下來,這里,可以簡單地理解為用數(shù)據(jù)庫記賬。數(shù)據(jù)倉庫是分析系統(tǒng)的數(shù)據(jù)平臺,它從事務(wù)系統(tǒng)獲取數(shù)據(jù),并做匯總、加工,為決策者提供決策的依據(jù)。比如,某銀行某分行一個月發(fā)生多少交易,該分行當(dāng)前存款余額是多少。如果存款又多,消費交易又多,那么該地區(qū)就有必要設(shè)立ATM了。

顯然,銀行的交易量是巨大的,通常以百萬甚至千萬次來計算。事務(wù)系統(tǒng)是實時的,這就要求時效性,客戶存一筆錢需要幾十秒是無法忍受的,這就要求數(shù)據(jù)庫只能存儲很短一段時間的數(shù)據(jù)。而分析系統(tǒng)是事后的,它要提供關(guān)注時間段內(nèi)所有的有效數(shù)據(jù)。這些數(shù)據(jù)是海量的,匯總計算起來也要慢一些,但是,只要能夠提供有效的分析數(shù)據(jù)就達(dá)到目的了。

數(shù)據(jù)倉庫,是在數(shù)據(jù)庫已經(jīng)大量存在的情況下,為了進(jìn)一步挖掘數(shù)據(jù)資源、為了決策需要而產(chǎn)生的,它決不是所謂的“大型數(shù)據(jù)庫”。

2.  數(shù)據(jù)倉庫分層架構(gòu)

按照數(shù)據(jù)流入流出的過程,數(shù)據(jù)倉庫架構(gòu)可分為:源數(shù)據(jù)、數(shù)據(jù)倉庫、數(shù)據(jù)應(yīng)用

數(shù)據(jù)倉庫

數(shù)據(jù)倉庫的數(shù)據(jù)來源于不同的源數(shù)據(jù),并提供多樣的數(shù)據(jù)應(yīng)用,數(shù)據(jù)自下而上流入數(shù)據(jù)倉庫后向上層開放應(yīng)用,而數(shù)據(jù)倉庫只是中間集成化數(shù)據(jù)管理的一個平臺。

源數(shù)據(jù):此層數(shù)據(jù)無任何更改,直接沿用外圍系統(tǒng)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù),不對外開放;為臨時存儲層,是接口數(shù)據(jù)的臨時存儲區(qū)域,為后一步的數(shù)據(jù)處理做準(zhǔn)備。

數(shù)據(jù)倉庫:也稱為細(xì)節(jié)層,DW層的數(shù)據(jù)應(yīng)該是一致的、準(zhǔn)確的、干凈的數(shù)據(jù),即對源系統(tǒng)數(shù)據(jù)進(jìn)行了清洗(去除了雜質(zhì))后的數(shù)據(jù)。

數(shù)據(jù)應(yīng)用:前端應(yīng)用直接讀取的數(shù)據(jù)源;根據(jù)報表、專題分析需求而計算生成的數(shù)據(jù)。

數(shù)據(jù)倉庫從各數(shù)據(jù)源獲取數(shù)據(jù)及在數(shù)據(jù)倉庫內(nèi)的數(shù)據(jù)轉(zhuǎn)換和流動都可以認(rèn)為是ETL(抽取Extra, 轉(zhuǎn)化Transfer, 裝載Load)的過程,ETL是數(shù)據(jù)倉庫的流水線,也可以認(rèn)為是數(shù)據(jù)倉庫的血液,它維系著數(shù)據(jù)倉庫中數(shù)據(jù)的新陳代謝,而數(shù)據(jù)倉庫日常的管理和維護(hù)工作的大部分精力就是保持ETL的正常和穩(wěn)定。

那么為什么要數(shù)據(jù)倉庫進(jìn)行分層呢?

用空間換時間,通過大量的預(yù)處理來提升應(yīng)用系統(tǒng)的用戶體驗(效率),因此數(shù)據(jù)倉庫會存在大量冗余的數(shù)據(jù);不分層的話,如果源業(yè)務(wù)系統(tǒng)的業(yè)務(wù)規(guī)則發(fā)生變化將會影響整個數(shù)據(jù)清洗過程,工作量巨大。

通過數(shù)據(jù)分層管理可以簡化數(shù)據(jù)清洗的過程,因為把原來一步的工作分到了多個步驟去完成,相當(dāng)于把一個復(fù)雜的工作拆成了多個簡單的工作,把一個大的黑盒變成了一個白盒,每一層的處理邏輯都相對簡單和容易理解,這樣我們比較容易保證每一個步驟的正確性,當(dāng)數(shù)據(jù)發(fā)生錯誤的時候,往往我們只需要局部調(diào)整某個步驟即可。

1  2  3  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標(biāo)題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號