訂閱
糾錯(cuò)
加入自媒體

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

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

數(shù)據(jù)倉(cāng)庫(kù)的基本概念

數(shù)據(jù)倉(cāng)庫(kù)概念:

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

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

基本特征:

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

面向主題:

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

集成性:

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

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

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

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

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

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

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

時(shí)變性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

數(shù)據(jù)倉(cāng)庫(kù)

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

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

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

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

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

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

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

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

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

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

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

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