099-BigData-27數(shù)據(jù)倉(cāng)庫(kù)

上一篇:098-BigData-26Hive企業(yè)級(jí)調(diào)優(yōu)

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

10.1 什么是數(shù)據(jù)倉(cāng)庫(kù)
數(shù)據(jù)倉(cāng)庫(kù),英文名稱為Data Warehouse,可簡(jiǎn)寫(xiě)為DW或DWH。數(shù)據(jù)倉(cāng)庫(kù),是為企業(yè)所有級(jí)別的決策制定過(guò)程,提供所有類(lèi)型數(shù)據(jù)支持的戰(zhàn)略集合。它出于分析性報(bào)告和決策支持目的而創(chuàng)建。為需要業(yè)務(wù)智能的企業(yè),提供指導(dǎo)業(yè)務(wù)流程改進(jìn)、監(jiān)視時(shí)間、成本、質(zhì)量以及控制。

10.2 數(shù)據(jù)倉(cāng)庫(kù)能干什么?
1)年度銷(xiāo)售目標(biāo)的指定,需要根據(jù)以往的歷史報(bào)表進(jìn)行決策,不能拍腦袋。
2)如何優(yōu)化業(yè)務(wù)流程
例如:一個(gè)電商網(wǎng)站訂單的完成包括:瀏覽、下單、支付、物流,其中物流環(huán)節(jié)可能和中通、申通、韻達(dá)等快遞公司合作。快遞公司每派送一個(gè)訂單,都會(huì)有訂單派送的確認(rèn)時(shí)間,可以根據(jù)訂單派送時(shí)間來(lái)分析哪個(gè)快遞公司比較快捷高效,從而選擇與哪些快遞公司合作,剔除哪些快遞公司,增加用戶友好型。

10.3 數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)
1)數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)是面向主題的
與傳統(tǒng)數(shù)據(jù)庫(kù)面向應(yīng)用進(jìn)行數(shù)據(jù)組織的特點(diǎn)相對(duì)應(yīng),數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是面向主題進(jìn)行組織的。什么是主題呢?首先,主題是一個(gè)抽象的概念,是較高層次上企業(yè)信息系統(tǒng)中的數(shù)據(jù)綜合、歸類(lèi)并進(jìn)行分析利用的抽象。在邏輯意義上,它是對(duì)應(yīng)企業(yè)中某一宏觀分析領(lǐng)域所涉及的分析對(duì)象。面向主題的數(shù)據(jù)組織方式,就是在較高層次上對(duì)分析對(duì)象的數(shù)據(jù)的一個(gè)完整、一致的描述,能完整、統(tǒng)一地刻劃各個(gè)分析對(duì)象所涉及的企業(yè)的各項(xiàng)數(shù)據(jù),以及數(shù)據(jù)之間的聯(lián)系。所謂較高層次是相對(duì)面向應(yīng)用的數(shù)據(jù)組織方式而言的,是指按照主題進(jìn)行數(shù)據(jù)組織的方式具有更高的數(shù)據(jù)抽象級(jí)別。
2)數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)是集成的
數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)是從原有的分散的數(shù)據(jù)庫(kù)數(shù)據(jù)抽取來(lái)的。操作型數(shù)據(jù)與DSS分析型數(shù)據(jù)之間差別甚大。第一,數(shù)據(jù)倉(cāng)庫(kù)的每一個(gè)主題所對(duì)應(yīng)的源數(shù)據(jù)在原有的各分散數(shù)據(jù)庫(kù)中有許多重復(fù)和不一致的地方,且來(lái)源于不同的聯(lián)機(jī)系統(tǒng)的數(shù)據(jù)都和不同的應(yīng)用邏輯捆綁在一起;第二,數(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ù)雜的一步,所要完成的工作有:
(1)要統(tǒng)一源數(shù)據(jù)中所有矛盾之處,如字段的同名異義、異名同義、單位不統(tǒng)一、字長(zhǎng)不一致等。
(2)進(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)行綜合生成的。
3)數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)是不可更新的
數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)主要供企業(yè)決策分析之用,所涉及的數(shù)據(jù)操作主要是數(shù)據(jù)查詢,一般情況下并不進(jìn)行修改操作。數(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ù),而不是聯(lián)機(jī)處理的數(shù)據(jù)。數(shù)據(jù)庫(kù)中進(jìn)行聯(lián)機(jī)處理的數(shù)據(jù)經(jīng)過(guò)集成輸入到數(shù)據(jù)倉(cāng)庫(kù)中,一旦數(shù)據(jù)倉(cāng)庫(kù)存放的數(shù)據(jù)已經(jīng)超過(guò)數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)存儲(chǔ)期限,這些數(shù)據(jù)將從當(dāng)前的數(shù)據(jù)倉(cāng)庫(kù)中刪去。因?yàn)閿?shù)據(jù)倉(cāng)庫(kù)只進(jìn)行數(shù)據(jù)查詢操作,所以數(shù)據(jù)倉(cāng)庫(kù)管理系統(tǒng)相比數(shù)據(jù)庫(kù)管理系統(tǒng)而言要簡(jiǎn)單得多。數(shù)據(jù)庫(kù)管理系統(tǒng)中許多技術(shù)難點(diǎn),如完整性保護(hù)、并發(fā)控制等等,在數(shù)據(jù)倉(cāng)庫(kù)的管理中幾乎可以省去。但是由于數(shù)據(jù)倉(cāng)庫(kù)的查詢數(shù)據(jù)量往往很大,所以就對(duì)數(shù)據(jù)查詢提出了更高的要求,它要求采用各種復(fù)雜的索引技術(shù);同時(shí)由于數(shù)據(jù)倉(cāng)庫(kù)面向的是商業(yè)企業(yè)的高層管理者,他們會(huì)對(duì)數(shù)據(jù)查詢的界面友好性和數(shù)據(jù)表示提出更高的要求。
4)數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)是隨時(shí)間不斷變化的
數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)不可更新是針對(duì)應(yīng)用來(lái)說(shuō)的,也就是說(shuō),數(shù)據(jù)倉(cāng)庫(kù)的用戶進(jìn)行分析處理時(shí)是不進(jìn)行數(shù)據(jù)更新操作的。但并不是說(shuō),在從數(shù)據(jù)集成輸入數(shù)據(jù)倉(cāng)庫(kù)開(kāi)始到最終被刪除的整個(gè)數(shù)據(jù)生存周期中,所有的數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)都是永遠(yuǎn)不變的。
數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)是隨時(shí)間的變化而不斷變化的,這是數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)的第四個(gè)特征。這一特征表現(xiàn)在以下3方面:
(1)數(shù)據(jù)倉(cāng)庫(kù)隨時(shí)間變化不斷增加新的數(shù)據(jù)內(nèi)容。數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)必須不斷捕捉OLTP數(shù)據(jù)庫(kù)中變化的數(shù)據(jù),追加到數(shù)據(jù)倉(cāng)庫(kù)中去,也就是要不斷地生成OLTP數(shù)據(jù)庫(kù)的快照,經(jīng)統(tǒng)一集成后增加到數(shù)據(jù)倉(cāng)庫(kù)中去;但對(duì)于確實(shí)不再變化的數(shù)據(jù)庫(kù)快照,如果捕捉到新的變化數(shù)據(jù),則只生成一個(gè)新的數(shù)據(jù)庫(kù)快照增加進(jìn)去,而不會(huì)對(duì)原有的數(shù)據(jù)庫(kù)快照進(jìn)行修改。
(2)數(shù)據(jù)倉(cāng)庫(kù)隨時(shí)間變化不斷刪去舊的數(shù)據(jù)內(nèi)容。數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)也有存儲(chǔ)期限,一旦超過(guò)了這一期限,過(guò)期數(shù)據(jù)就要被刪除。只是數(shù)據(jù)倉(cāng)庫(kù)內(nèi)的數(shù)據(jù)時(shí)限要遠(yuǎn)遠(yuǎn)長(zhǎng)于操作型環(huán)境中的數(shù)據(jù)時(shí)限。在操作型環(huán)境中一般只保存有6090天的數(shù)據(jù),而在數(shù)據(jù)倉(cāng)庫(kù)中則需要保存較長(zhǎng)時(shí)限的數(shù)據(jù)(如510年),以適應(yīng)DSS進(jìn)行趨勢(shì)分析的要求。
(3)數(shù)據(jù)倉(cāng)庫(kù)中包含有大量的綜合數(shù)據(jù),這些綜合數(shù)據(jù)中很多跟時(shí)間有關(guān),如數(shù)據(jù)經(jīng)常按照時(shí)間段進(jìn)行綜合,或隔一定的時(shí)間片進(jìn)行抽樣等等。這些數(shù)據(jù)要隨著時(shí)間的變化不斷地進(jìn)行重新綜合。因此,數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)特征都包含時(shí)間項(xiàng),以標(biāo)明數(shù)據(jù)的歷史時(shí)期。

10.4 數(shù)據(jù)倉(cāng)庫(kù)發(fā)展歷程
數(shù)據(jù)倉(cāng)庫(kù)的發(fā)展大致經(jīng)歷了這樣的三個(gè)過(guò)程:
1)簡(jiǎn)單報(bào)表階段:這個(gè)階段,系統(tǒng)的主要目標(biāo)是解決一些日常的工作中業(yè)務(wù)人員需要的報(bào)表,以及生成一些簡(jiǎn)單的能夠幫助領(lǐng)導(dǎo)進(jìn)行決策所需要的匯總數(shù)據(jù)。這個(gè)階段的大部分表現(xiàn)形式為數(shù)據(jù)庫(kù)和前端報(bào)表工具。
2)數(shù)據(jù)集市階段:這個(gè)階段,主要是根據(jù)某個(gè)業(yè)務(wù)部門(mén)的需要,進(jìn)行一定的數(shù)據(jù)的采集,整理,按照業(yè)務(wù)人員的需要,進(jìn)行多維報(bào)表的展現(xiàn),能夠提供對(duì)特定業(yè)務(wù)指導(dǎo)的數(shù)據(jù),并且能夠提供特定的領(lǐng)導(dǎo)決策數(shù)據(jù)。
3)數(shù)據(jù)倉(cāng)庫(kù)階段:這個(gè)階段,主要是按照一定的數(shù)據(jù)模型,對(duì)整個(gè)企業(yè)的數(shù)據(jù)進(jìn)行采集,整理,并且能夠按照各個(gè)業(yè)務(wù)部門(mén)的需要,提供跨部門(mén)的,完全一致的業(yè)務(wù)報(bào)表數(shù)據(jù),能夠通過(guò)數(shù)據(jù)倉(cāng)庫(kù)生成對(duì)對(duì)業(yè)務(wù)具有指導(dǎo)性的數(shù)據(jù),同時(shí),為領(lǐng)導(dǎo)決策提供全面的數(shù)據(jù)支持。
通過(guò)數(shù)據(jù)倉(cāng)庫(kù)建設(shè)的發(fā)展階段,我們能夠看出,數(shù)據(jù)倉(cāng)庫(kù)的建設(shè)和數(shù)據(jù)集市的建設(shè)的重要區(qū)別就在于數(shù)據(jù)模型的支持。因此,數(shù)據(jù)模型的建設(shè),對(duì)于我們數(shù)據(jù)倉(cāng)庫(kù)的建設(shè),有著決定性的意義。

10.5 數(shù)據(jù)庫(kù)與數(shù)據(jù)倉(cāng)庫(kù)的區(qū)別
了解數(shù)據(jù)庫(kù)與數(shù)據(jù)倉(cāng)庫(kù)的區(qū)別之前,首先掌握三個(gè)概念。數(shù)據(jù)庫(kù)軟件、數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)。
數(shù)據(jù)庫(kù)軟件:是一種軟件,可以看得見(jiàn),可以操作。用來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)邏輯功能。屬于物理層。
數(shù)據(jù)庫(kù):是一種邏輯概念,用來(lái)存放數(shù)據(jù)的倉(cāng)庫(kù)。通過(guò)數(shù)據(jù)庫(kù)軟件來(lái)實(shí)現(xiàn)。數(shù)據(jù)庫(kù)由很多表組成,表是二維的,一張表里可以有很多字段。字段一字排開(kāi),對(duì)應(yīng)的數(shù)據(jù)就一行一行寫(xiě)入表中。數(shù)據(jù)庫(kù)的表,在于能夠用二維表現(xiàn)多維關(guān)系。目前市面上流行的數(shù)據(jù)庫(kù)都是二維數(shù)據(jù)庫(kù)。如:Oracle、DB2、MySQL、Sybase、MS SQL Server等。
數(shù)據(jù)倉(cāng)庫(kù):是數(shù)據(jù)庫(kù)概念的升級(jí)。從邏輯上理解,數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)沒(méi)有區(qū)別,都是通過(guò)數(shù)據(jù)庫(kù)軟件實(shí)現(xiàn)的存放數(shù)據(jù)的地方,只不過(guò)從數(shù)據(jù)量來(lái)說(shuō),數(shù)據(jù)倉(cāng)庫(kù)要比數(shù)據(jù)庫(kù)更龐大得多。數(shù)據(jù)倉(cāng)庫(kù)主要用于數(shù)據(jù)挖掘和數(shù)據(jù)分析,輔助領(lǐng)導(dǎo)做決策。
在IT的架構(gòu)體系中,數(shù)據(jù)庫(kù)是必須存在的。必須要有地方存放數(shù)據(jù)。比如現(xiàn)在的網(wǎng)購(gòu),淘寶,京東等等。物品的存貨數(shù)量,貨品的價(jià)格,用戶的賬戶余額之類(lèi)的。這些數(shù)據(jù)都是存放在后臺(tái)數(shù)據(jù)庫(kù)中。或者最簡(jiǎn)單理解,我們現(xiàn)在微博,QQ等賬戶的用戶名和密碼。在后臺(tái)數(shù)據(jù)庫(kù)必然有一張user表,字段起碼有兩個(gè),即用戶名和密碼,然后我們的數(shù)據(jù)就一行一行的存在表上面。當(dāng)我們登錄的時(shí)候,我們填寫(xiě)了用戶名和密碼,這些數(shù)據(jù)就會(huì)被傳回到后臺(tái)去,去跟表上面的數(shù)據(jù)匹配,匹配成功了,你就能登錄了。匹配不成功就會(huì)報(bào)錯(cuò)說(shuō)密碼錯(cuò)誤或者沒(méi)有此用戶名等。這個(gè)就是數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)在生產(chǎn)環(huán)境就是用來(lái)干活的。凡是跟業(yè)務(wù)應(yīng)用掛鉤的,我們都使用數(shù)據(jù)庫(kù)。
數(shù)據(jù)倉(cāng)庫(kù)則是BI下的其中一種技術(shù)。由于數(shù)據(jù)庫(kù)是跟業(yè)務(wù)應(yīng)用掛鉤的,所以一個(gè)數(shù)據(jù)庫(kù)不可能裝下一家公司的所有數(shù)據(jù)。數(shù)據(jù)庫(kù)的表設(shè)計(jì)往往是針對(duì)某一個(gè)應(yīng)用進(jìn)行設(shè)計(jì)的。比如剛才那個(gè)登錄的功能,這張user表上就只有這兩個(gè)字段,沒(méi)有別的字段了。但是這張表符合應(yīng)用,沒(méi)有問(wèn)題。但是這張表不符合分析。比如我想知道在哪個(gè)時(shí)間段,用戶登錄的量最多?哪個(gè)用戶一年購(gòu)物最多?諸如此類(lèi)的指標(biāo)。那就要重新設(shè)計(jì)數(shù)據(jù)庫(kù)的表結(jié)構(gòu)了。對(duì)于數(shù)據(jù)分析和數(shù)據(jù)挖掘,我們引入數(shù)據(jù)倉(cāng)庫(kù)概念。數(shù)據(jù)倉(cāng)庫(kù)的表結(jié)構(gòu)是依照分析需求,分析維度,分析指標(biāo)進(jìn)行設(shè)計(jì)的。
數(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ù)管理的主要手段,主要用于操作型處理。
分析型處理,叫聯(lián)機(jī)分析處理OLAP(On-Line Analytical Processing)一般針對(duì)某些主題的歷史數(shù)據(jù)進(jìn)行分析,支持管理決策。

表 操作型處理與分析型處理的比較:

image.png

10.6 數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)分層
10.6.1 數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)
數(shù)據(jù)倉(cāng)庫(kù)標(biāo)準(zhǔn)上可以分為四層:ODS(臨時(shí)存儲(chǔ)層)、PDW(數(shù)據(jù)倉(cāng)庫(kù)層)、DM(數(shù)據(jù)集市層)、APP(應(yīng)用層)。

image.png

1)ODS層:
為臨時(shí)存儲(chǔ)層,是接口數(shù)據(jù)的臨時(shí)存儲(chǔ)區(qū)域,為后一步的數(shù)據(jù)處理做準(zhǔn)備。一般來(lái)說(shuō)ODS層的數(shù)據(jù)和源系統(tǒng)的數(shù)據(jù)是同構(gòu)的,主要目的是簡(jiǎn)化后續(xù)數(shù)據(jù)加工處理的工作。從數(shù)據(jù)粒度上來(lái)說(shuō)ODS層的數(shù)據(jù)粒度是最細(xì)的。ODS層的表通常包括兩類(lèi),一個(gè)用于存儲(chǔ)當(dāng)前需要加載的數(shù)據(jù),一個(gè)用于存儲(chǔ)處理完后的歷史數(shù)據(jù)。歷史數(shù)據(jù)一般保存3-6個(gè)月后需要清除,以節(jié)省空間。但不同的項(xiàng)目要區(qū)別對(duì)待,如果源系統(tǒng)的數(shù)據(jù)量不大,可以保留更長(zhǎng)的時(shí)間,甚至全量保存;
2)PDW層:
為數(shù)據(jù)倉(cāng)庫(kù)層,PDW層的數(shù)據(jù)應(yīng)該是一致的、準(zhǔn)確的、干凈的數(shù)據(jù),即對(duì)源系統(tǒng)數(shù)據(jù)進(jìn)行了清洗(去除了雜質(zhì))后的數(shù)據(jù)。這一層的數(shù)據(jù)一般是遵循數(shù)據(jù)庫(kù)第三范式的,其數(shù)據(jù)粒度通常和ODS的粒度相同。在PDW層會(huì)保存BI系統(tǒng)中所有的歷史數(shù)據(jù),例如保存10年的數(shù)據(jù)。
3)DM層:
為數(shù)據(jù)集市層,這層數(shù)據(jù)是面向主題來(lái)組織數(shù)據(jù)的,通常是星形或雪花結(jié)構(gòu)的數(shù)據(jù)。從數(shù)據(jù)粒度來(lái)說(shuō),這層的數(shù)據(jù)是輕度匯總級(jí)的數(shù)據(jù),已經(jīng)不存在明細(xì)數(shù)據(jù)了。從數(shù)據(jù)的時(shí)間跨度來(lái)說(shuō),通常是PDW層的一部分,主要的目的是為了滿足用戶分析的需求,而從分析的角度來(lái)說(shuō),用戶通常只需要分析近幾年(如近三年的數(shù)據(jù))的即可。從數(shù)據(jù)的廣度來(lái)說(shuō),仍然覆蓋了所有業(yè)務(wù)數(shù)據(jù)。
4)APP層:
為應(yīng)用層,這層數(shù)據(jù)是完全為了滿足具體的分析需求而構(gòu)建的數(shù)據(jù),也是星形或雪花結(jié)構(gòu)的數(shù)據(jù)。從數(shù)據(jù)粒度來(lái)說(shuō)是高度匯總的數(shù)據(jù)。從數(shù)據(jù)的廣度來(lái)說(shuō),則并不一定會(huì)覆蓋所有業(yè)務(wù)數(shù)據(jù),而是DM層數(shù)據(jù)的一個(gè)真子集,從某種意義上來(lái)說(shuō)是DM層數(shù)據(jù)的一個(gè)重復(fù)。從極端情況來(lái)說(shuō),可以為每一張報(bào)表在APP層構(gòu)建一個(gè)模型來(lái)支持,達(dá)到以空間換時(shí)間的目的數(shù)據(jù)倉(cāng)庫(kù)的標(biāo)準(zhǔn)分層只是一個(gè)建議性質(zhì)的標(biāo)準(zhǔn),實(shí)際實(shí)施時(shí)需要根據(jù)實(shí)際情況確定數(shù)據(jù)倉(cāng)庫(kù)的分層,不同類(lèi)型的數(shù)據(jù)也可能采取不同的分層方法。

10.6.2 為什么要對(duì)數(shù)據(jù)倉(cāng)庫(kù)分層?
1)用空間換時(shí)間,通過(guò)大量的預(yù)處理來(lái)提升應(yīng)用系統(tǒng)的用戶體驗(yàn)(效率),因此數(shù)據(jù)倉(cāng)庫(kù)會(huì)存在大量冗余的數(shù)據(jù)。
2)如果不分層的話,如果源業(yè)務(wù)系統(tǒng)的業(yè)務(wù)規(guī)則發(fā)生變化將會(huì)影響整個(gè)數(shù)據(jù)清洗過(guò)程,工作量巨大。
3)通過(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è)步驟即可。

10.7 元數(shù)據(jù)介紹
當(dāng)需要了解某地企業(yè)及其提供的服務(wù)時(shí),電話黃頁(yè)的重要性就體現(xiàn)出來(lái)了。元數(shù)據(jù)(Metadata)類(lèi)似于這樣的電話黃頁(yè)。
1)元數(shù)據(jù)的定義
數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)是關(guān)于數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)的數(shù)據(jù)。它的作用類(lèi)似于數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)字典,保存了邏輯數(shù)據(jù)結(jié)構(gòu)、文件、地址和索引等信息。廣義上講,在數(shù)據(jù)倉(cāng)庫(kù)中,元數(shù)據(jù)描述了數(shù)據(jù)倉(cāng)庫(kù)內(nèi)數(shù)據(jù)的結(jié)構(gòu)和建立方法的數(shù)據(jù)。
元數(shù)據(jù)是數(shù)據(jù)倉(cāng)庫(kù)管理系統(tǒng)的重要組成部分,元數(shù)據(jù)管理器是企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)中的關(guān)鍵組件,貫穿數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建的整個(gè)過(guò)程,直接影響著數(shù)據(jù)倉(cāng)庫(kù)的構(gòu)建、使用和維護(hù)。
(1)構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的主要步驟之一是ETL。這時(shí)元數(shù)據(jù)將發(fā)揮重要的作用,它定義了源數(shù)據(jù)系統(tǒng)到數(shù)據(jù)倉(cāng)庫(kù)的映射、數(shù)據(jù)轉(zhuǎn)換的規(guī)則、數(shù)據(jù)倉(cāng)庫(kù)的邏輯結(jié)構(gòu)、數(shù)據(jù)更新的規(guī)則、數(shù)據(jù)導(dǎo)入歷史記錄以及裝載周期等相關(guān)內(nèi)容。數(shù)據(jù)抽取和轉(zhuǎn)換的專家以及數(shù)據(jù)倉(cāng)庫(kù)管理員正是通過(guò)元數(shù)據(jù)高效地構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)。
(2)用戶在使用數(shù)據(jù)倉(cāng)庫(kù)時(shí),通過(guò)元數(shù)據(jù)訪問(wèn)數(shù)據(jù),明確數(shù)據(jù)項(xiàng)的含義以及定制報(bào)表。
(3)數(shù)據(jù)倉(cāng)庫(kù)的規(guī)模及其復(fù)雜性離不開(kāi)正確的元數(shù)據(jù)管理,包括增加或移除外部數(shù)據(jù)源,改變數(shù)據(jù)清洗方法,控制出錯(cuò)的查詢以及安排備份等。
元數(shù)據(jù)可分為技術(shù)元數(shù)據(jù)和業(yè)務(wù)元數(shù)據(jù)。技術(shù)元數(shù)據(jù)為開(kāi)發(fā)和管理數(shù)據(jù)倉(cāng)庫(kù)的IT人員使用,它描述了與數(shù)據(jù)倉(cāng)庫(kù)開(kāi)發(fā)、管理和維護(hù)相關(guān)的數(shù)據(jù),包括數(shù)據(jù)源信息、數(shù)據(jù)轉(zhuǎn)換描述、數(shù)據(jù)倉(cāng)庫(kù)模型、數(shù)據(jù)清洗與更新規(guī)則、數(shù)據(jù)映射和訪問(wèn)權(quán)限等。而業(yè)務(wù)元數(shù)據(jù)為管理層和業(yè)務(wù)分析人員服務(wù),從業(yè)務(wù)角度描述數(shù)據(jù),包括商務(wù)術(shù)語(yǔ)、數(shù)據(jù)倉(cāng)庫(kù)中有什么數(shù)據(jù)、數(shù)據(jù)的位置和數(shù)據(jù)的可用性等,幫助業(yè)務(wù)人員更好地理解數(shù)據(jù)倉(cāng)庫(kù)中哪些數(shù)據(jù)是可用的以及如何使用。
由上可見(jiàn),元數(shù)據(jù)不僅定義了數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)的模式、來(lái)源、抽取和轉(zhuǎn)換規(guī)則等,而且是整個(gè)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)運(yùn)行的基礎(chǔ),元數(shù)據(jù)把數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中各個(gè)松散的組件聯(lián)系起來(lái),組成了一個(gè)有機(jī)的整體,如圖所示

image.png

2)元數(shù)據(jù)的存儲(chǔ)方式
元數(shù)據(jù)有兩種常見(jiàn)存儲(chǔ)方式:一種是以數(shù)據(jù)集為基礎(chǔ),每一個(gè)數(shù)據(jù)集有對(duì)應(yīng)的元數(shù)據(jù)文件,每一個(gè)元數(shù)據(jù)文件包含對(duì)應(yīng)數(shù)據(jù)集的元數(shù)據(jù)內(nèi)容;另一種存儲(chǔ)方式是以數(shù)據(jù)庫(kù)為基礎(chǔ),即元數(shù)據(jù)庫(kù)。其中元數(shù)據(jù)文件由若干項(xiàng)組成,每一項(xiàng)表示元數(shù)據(jù)的一個(gè)要素,每條記錄為數(shù)據(jù)集的元數(shù)據(jù)內(nèi)容。上述存儲(chǔ)方式各有優(yōu)缺點(diǎn),第一種存儲(chǔ)方式的優(yōu)點(diǎn)是調(diào)用數(shù)據(jù)時(shí)相應(yīng)的元數(shù)據(jù)也作為一個(gè)獨(dú)立的文件被傳輸,相對(duì)數(shù)據(jù)庫(kù)有較強(qiáng)的獨(dú)立性,在對(duì)元數(shù)據(jù)進(jìn)行檢索時(shí)可以利用數(shù)據(jù)庫(kù)的功能實(shí)現(xiàn),也可以把元數(shù)據(jù)文件調(diào)到其他數(shù)據(jù)庫(kù)系統(tǒng)中操作;不足是如果每一數(shù)據(jù)集都對(duì)應(yīng)一個(gè)元數(shù)據(jù)文檔,在規(guī)模巨大的數(shù)據(jù)庫(kù)中則會(huì)有大量的元數(shù)據(jù)文件,管理不方便。第二種存儲(chǔ)方式下,元數(shù)據(jù)庫(kù)中只有一個(gè)元數(shù)據(jù)文件,管理比較方便,添加或刪除數(shù)據(jù)集,只要在該文件中添加或刪除相應(yīng)的記錄項(xiàng)即可。在獲取某數(shù)據(jù)集的元數(shù)據(jù)時(shí),因?yàn)閷?shí)際得到的只是關(guān)系表格數(shù)據(jù)的一條記錄,所以要求用戶系統(tǒng)可以接受這種特定形式的數(shù)據(jù)。因此推薦使用元數(shù)據(jù)庫(kù)的方式。
元數(shù)據(jù)庫(kù)用于存儲(chǔ)元數(shù)據(jù),因此元數(shù)據(jù)庫(kù)最好選用主流的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。元數(shù)據(jù)庫(kù)還包含用于操作和查詢?cè)獢?shù)據(jù)的機(jī)制。建立元數(shù)據(jù)庫(kù)的主要好處是提供統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)和業(yè)務(wù)規(guī)則,易于把企業(yè)內(nèi)部的多個(gè)數(shù)據(jù)集市有機(jī)地集成起來(lái)。目前,一些企業(yè)傾向建立多個(gè)數(shù)據(jù)集市,而不是一個(gè)集中的數(shù)據(jù)倉(cāng)庫(kù),這時(shí)可以考慮在建立數(shù)據(jù)倉(cāng)庫(kù)(或數(shù)據(jù)集市)之前,先建立一個(gè)用于描述數(shù)據(jù)、服務(wù)應(yīng)用集成的元數(shù)據(jù)庫(kù),做好數(shù)據(jù)倉(cāng)庫(kù)實(shí)施的初期支持工作,對(duì)后續(xù)開(kāi)發(fā)和維護(hù)有很大的幫助。元數(shù)據(jù)庫(kù)保證了數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)的一致性和準(zhǔn)確性,為企業(yè)進(jìn)行數(shù)據(jù)質(zhì)量管理提供基礎(chǔ)。
3)元數(shù)據(jù)的作用
在數(shù)據(jù)倉(cāng)庫(kù)中,元數(shù)據(jù)的主要作用如下。
(1)描述哪些數(shù)據(jù)在數(shù)據(jù)倉(cāng)庫(kù)中,幫助決策分析者對(duì)數(shù)據(jù)倉(cāng)庫(kù)的內(nèi)容定位。
(2)定義數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)的方式,作為數(shù)據(jù)匯總、映射和清洗的指南。
(3)記錄業(yè)務(wù)事件發(fā)生而隨之進(jìn)行的數(shù)據(jù)抽取工作時(shí)間安排。
(4)記錄并檢測(cè)系統(tǒng)數(shù)據(jù)一致性的要求和執(zhí)行情況。
(5)評(píng)估數(shù)據(jù)質(zhì)量。

10.8 星型模型和雪花模型
在多維分析的商業(yè)智能解決方案中,根據(jù)事實(shí)表和維度表的關(guān)系,又可將常見(jiàn)的模型分為星型模型和雪花型模型。在設(shè)計(jì)邏輯型數(shù)據(jù)的模型的時(shí)候,就應(yīng)考慮數(shù)據(jù)是按照星型模型還是雪花型模型進(jìn)行組織。

10.8.1 星型模型
當(dāng)所有維表都直接連接到“ 事實(shí)表”上時(shí),整個(gè)圖解就像星星一樣,故將該模型稱為星型模型。
星型架構(gòu)是一種非正規(guī)化的結(jié)構(gòu),多維數(shù)據(jù)集的每一個(gè)維度都直接與事實(shí)表相連接,不存在漸變維度,所以數(shù)據(jù)有一定的冗余,如在地域維度表中,存在國(guó)家A 省B的城市C以及國(guó)家A省B的城市D兩條記錄,那么國(guó)家A和省B的信息分別存儲(chǔ)了兩次,即存在冗余。

10.8.2 雪花模型
當(dāng)有一個(gè)或多個(gè)維表沒(méi)有直接連接到事實(shí)表上,而是通過(guò)其他維表連接到事實(shí)表上時(shí),其圖解就像多個(gè)雪花連接在一起,故稱雪花模型。雪花模型是對(duì)星型模型的擴(kuò)展。它對(duì)星型模型的維表進(jìn)一步層次化,原有的各維表可能被擴(kuò)展為小的事實(shí)表,形成一些局部的" 層次" 區(qū)域,這些被分解的表都連接到主維度表而不是事實(shí)表。如圖所示,將地域維表又分解為國(guó)家,省份,城市等維表。它的優(yōu)點(diǎn)是:通過(guò)最大限度地減少數(shù)據(jù)存儲(chǔ)量以及聯(lián)合較小的維表來(lái)改善查詢性能。雪花型結(jié)構(gòu)去除了數(shù)據(jù)冗余。
星型模型因?yàn)閿?shù)據(jù)的冗余所以很多統(tǒng)計(jì)查詢不需要做外部的連接,因此一般情況下效率比雪花型模型要高。星型結(jié)構(gòu)不用考慮很多正規(guī)化的因素,設(shè)計(jì)與實(shí)現(xiàn)都比較簡(jiǎn)單。雪花型模型由于去除了冗余,有些統(tǒng)計(jì)就需要通過(guò)表的聯(lián)接才能產(chǎn)生,所以效率不一定有星型模型高。正規(guī)化也是一種比較復(fù)雜的過(guò)程,相應(yīng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)的 ETL、以及后期的維護(hù)都要復(fù)雜一些。因此在冗余可以接受的前提下,實(shí)際運(yùn)用中星型模型使用更多,也更有效率。

10.8.3 星型模型和雪花模型對(duì)比
星形模型和雪花模型是數(shù)據(jù)倉(cāng)庫(kù)中常用到的兩種方式,而它們之間的對(duì)比要從四個(gè)角度來(lái)進(jìn)行討論。
  1)數(shù)據(jù)優(yōu)化
雪花模型使用的是規(guī)范化數(shù)據(jù),也就是說(shuō)數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部是組織好的,以便消除冗余,因此它能夠有效地減少數(shù)據(jù)量。通過(guò)引用完整性,其業(yè)務(wù)層級(jí)和維度都將存儲(chǔ)在數(shù)據(jù)模型之中。

雪花模型:

image.png

相比較而言,星形模型使用的是反規(guī)范化數(shù)據(jù)。在星形模型中,維度直接指的是事實(shí)表,業(yè)務(wù)層級(jí)不會(huì)通過(guò)維度之間的參照完整性來(lái)部署。

星形模型:

image.png

2)業(yè)務(wù)模型
主鍵是一個(gè)單獨(dú)的唯一鍵(數(shù)據(jù)屬性),為特殊數(shù)據(jù)所選擇。在上面的例子中,Advertiser_ID就將是一個(gè)主鍵。外鍵(參考屬性)僅僅是一個(gè)表中的字段,用來(lái)匹配其他維度表中的主鍵。在我們所引用的例子中,Advertiser_ID將是Account_dimension的一個(gè)外鍵。
在雪花模型中,數(shù)據(jù)模型的業(yè)務(wù)層級(jí)是由一個(gè)不同維度表主鍵-外鍵的關(guān)系來(lái)代表的。而在星形模型中,所有必要的維度表在事實(shí)表中都只擁有外鍵。
  3)性能
第三個(gè)區(qū)別在于性能的不同。雪花模型在維度表、事實(shí)表之間的連接很多,因此性能方面會(huì)比較低。舉個(gè)例子,如果你想要知道Advertiser 的詳細(xì)信息,雪花模型就會(huì)請(qǐng)求許多信息,比如Advertiser Name、ID以及那些廣告主和客戶表的地址需要連接起來(lái),然后再與事實(shí)表連接。
而星形模型的連接就少的多,在這個(gè)模型中,如果你需要上述信息,你只要將Advertiser的維度表和事實(shí)表連接即可。
  4)ETL
雪花模型加載數(shù)據(jù)集市,因此ETL操作在設(shè)計(jì)上更加復(fù)雜,而且由于附屬模型的限制,不能并行化。
星形模型加載維度表,不需要再維度之間添加附屬模型,因此ETL就相對(duì)簡(jiǎn)單,而且可以實(shí)現(xiàn)高度的并行化。
  總結(jié)
雪花模型使得維度分析更加容易,比如“針對(duì)特定的廣告主,有哪些客戶或者公司是在線的?”星形模型用來(lái)做指標(biāo)分析更適合,比如“給定的一個(gè)客戶他們的收入是多少?”

下一篇:100-BigData-28Sqoop

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,748評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,165評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 175,595評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,633評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,435評(píng)論 6 405
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 54,943評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,035評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,175評(píng)論 0 287
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,713評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,599評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,788評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,303評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,034評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,412評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,664評(píng)論 1 280
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,408評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,747評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容