上一篇:098-BigData-26Hive企業(yè)級調(diào)優(yōu)
十悍赢、數(shù)據(jù)倉庫
10.1 什么是數(shù)據(jù)倉庫
數(shù)據(jù)倉庫,英文名稱為Data Warehouse台丛,可簡寫為DW或DWH善榛。數(shù)據(jù)倉庫,是為企業(yè)所有級別的決策制定過程苹熏,提供所有類型數(shù)據(jù)支持的戰(zhàn)略集合碟贾。它出于分析性報告和決策支持目的而創(chuàng)建。為需要業(yè)務智能的企業(yè)轨域,提供指導業(yè)務流程改進袱耽、監(jiān)視時間、成本干发、質(zhì)量以及控制朱巨。
10.2 數(shù)據(jù)倉庫能干什么?
1)年度銷售目標的指定枉长,需要根據(jù)以往的歷史報表進行決策冀续,不能拍腦袋琼讽。
2)如何優(yōu)化業(yè)務流程
例如:一個電商網(wǎng)站訂單的完成包括:瀏覽、下單洪唐、支付钻蹬、物流,其中物流環(huán)節(jié)可能和中通凭需、申通问欠、韻達等快遞公司合作×r冢快遞公司每派送一個訂單顺献,都會有訂單派送的確認時間,可以根據(jù)訂單派送時間來分析哪個快遞公司比較快捷高效枯怖,從而選擇與哪些快遞公司合作滚澜,剔除哪些快遞公司,增加用戶友好型嫁怀。
10.3 數(shù)據(jù)倉庫的特點
1)數(shù)據(jù)倉庫的數(shù)據(jù)是面向主題的
與傳統(tǒng)數(shù)據(jù)庫面向應用進行數(shù)據(jù)組織的特點相對應设捐,數(shù)據(jù)倉庫中的數(shù)據(jù)是面向主題進行組織的。什么是主題呢塘淑?首先萝招,主題是一個抽象的概念,是較高層次上企業(yè)信息系統(tǒng)中的數(shù)據(jù)綜合存捺、歸類并進行分析利用的抽象槐沼。在邏輯意義上,它是對應企業(yè)中某一宏觀分析領域所涉及的分析對象捌治。面向主題的數(shù)據(jù)組織方式岗钩,就是在較高層次上對分析對象的數(shù)據(jù)的一個完整、一致的描述肖油,能完整兼吓、統(tǒng)一地刻劃各個分析對象所涉及的企業(yè)的各項數(shù)據(jù),以及數(shù)據(jù)之間的聯(lián)系森枪。所謂較高層次是相對面向應用的數(shù)據(jù)組織方式而言的视搏,是指按照主題進行數(shù)據(jù)組織的方式具有更高的數(shù)據(jù)抽象級別。
2)數(shù)據(jù)倉庫的數(shù)據(jù)是集成的
數(shù)據(jù)倉庫的數(shù)據(jù)是從原有的分散的數(shù)據(jù)庫數(shù)據(jù)抽取來的县袱。操作型數(shù)據(jù)與DSS分析型數(shù)據(jù)之間差別甚大浑娜。第一,數(shù)據(jù)倉庫的每一個主題所對應的源數(shù)據(jù)在原有的各分散數(shù)據(jù)庫中有許多重復和不一致的地方式散,且來源于不同的聯(lián)機系統(tǒng)的數(shù)據(jù)都和不同的應用邏輯捆綁在一起筋遭;第二,數(shù)據(jù)倉庫中的綜合數(shù)據(jù)不能從原有的數(shù)據(jù)庫系統(tǒng)直接得到。因此在數(shù)據(jù)進入數(shù)據(jù)倉庫之前漓滔,必然要經(jīng)過統(tǒng)一與綜合编饺,這一步是數(shù)據(jù)倉庫建設中最關鍵、最復雜的一步次和,所要完成的工作有:
(1)要統(tǒng)一源數(shù)據(jù)中所有矛盾之處反肋,如字段的同名異義那伐、異名同義踏施、單位不統(tǒng)一、字長不一致等罕邀。
(2)進行數(shù)據(jù)綜合和計算畅形。數(shù)據(jù)倉庫中的數(shù)據(jù)綜合工作可以在從原有數(shù)據(jù)庫抽取 數(shù)據(jù)時生成,但許多是在數(shù)據(jù)倉庫內(nèi)部生成的诉探,即進入數(shù)據(jù)倉庫以后進行綜合生成的日熬。
3)數(shù)據(jù)倉庫的數(shù)據(jù)是不可更新的
數(shù)據(jù)倉庫的數(shù)據(jù)主要供企業(yè)決策分析之用,所涉及的數(shù)據(jù)操作主要是數(shù)據(jù)查詢肾胯,一般情況下并不進行修改操作竖席。數(shù)據(jù)倉庫的數(shù)據(jù)反映的是一段相當長的時間內(nèi)歷史數(shù)據(jù)的內(nèi)容,是不同時點的數(shù)據(jù)庫快照的集合敬肚,以及基于這些快照進行統(tǒng)計毕荐、綜合和重組的導出數(shù)據(jù),而不是聯(lián)機處理的數(shù)據(jù)艳馒。數(shù)據(jù)庫中進行聯(lián)機處理的數(shù)據(jù)經(jīng)過集成輸入到數(shù)據(jù)倉庫中憎亚,一旦數(shù)據(jù)倉庫存放的數(shù)據(jù)已經(jīng)超過數(shù)據(jù)倉庫的數(shù)據(jù)存儲期限,這些數(shù)據(jù)將從當前的數(shù)據(jù)倉庫中刪去弄慰。因為數(shù)據(jù)倉庫只進行數(shù)據(jù)查詢操作第美,所以數(shù)據(jù)倉庫管理系統(tǒng)相比數(shù)據(jù)庫管理系統(tǒng)而言要簡單得多。數(shù)據(jù)庫管理系統(tǒng)中許多技術難點陆爽,如完整性保護什往、并發(fā)控制等等,在數(shù)據(jù)倉庫的管理中幾乎可以省去慌闭。但是由于數(shù)據(jù)倉庫的查詢數(shù)據(jù)量往往很大恶守,所以就對數(shù)據(jù)查詢提出了更高的要求,它要求采用各種復雜的索引技術贡必;同時由于數(shù)據(jù)倉庫面向的是商業(yè)企業(yè)的高層管理者兔港,他們會對數(shù)據(jù)查詢的界面友好性和數(shù)據(jù)表示提出更高的要求。
4)數(shù)據(jù)倉庫的數(shù)據(jù)是隨時間不斷變化的
數(shù)據(jù)倉庫中的數(shù)據(jù)不可更新是針對應用來說的仔拟,也就是說衫樊,數(shù)據(jù)倉庫的用戶進行分析處理時是不進行數(shù)據(jù)更新操作的。但并不是說,在從數(shù)據(jù)集成輸入數(shù)據(jù)倉庫開始到最終被刪除的整個數(shù)據(jù)生存周期中科侈,所有的數(shù)據(jù)倉庫數(shù)據(jù)都是永遠不變的载佳。
數(shù)據(jù)倉庫的數(shù)據(jù)是隨時間的變化而不斷變化的,這是數(shù)據(jù)倉庫數(shù)據(jù)的第四個特征臀栈。這一特征表現(xiàn)在以下3方面:
(1)數(shù)據(jù)倉庫隨時間變化不斷增加新的數(shù)據(jù)內(nèi)容蔫慧。數(shù)據(jù)倉庫系統(tǒng)必須不斷捕捉OLTP數(shù)據(jù)庫中變化的數(shù)據(jù),追加到數(shù)據(jù)倉庫中去权薯,也就是要不斷地生成OLTP數(shù)據(jù)庫的快照姑躲,經(jīng)統(tǒng)一集成后增加到數(shù)據(jù)倉庫中去;但對于確實不再變化的數(shù)據(jù)庫快照盟蚣,如果捕捉到新的變化數(shù)據(jù)黍析,則只生成一個新的數(shù)據(jù)庫快照增加進去,而不會對原有的數(shù)據(jù)庫快照進行修改屎开。
(2)數(shù)據(jù)倉庫隨時間變化不斷刪去舊的數(shù)據(jù)內(nèi)容阐枣。數(shù)據(jù)倉庫的數(shù)據(jù)也有存儲期限,一旦超過了這一期限奄抽,過期數(shù)據(jù)就要被刪除蔼两。只是數(shù)據(jù)倉庫內(nèi)的數(shù)據(jù)時限要遠遠長于操作型環(huán)境中的數(shù)據(jù)時限。在操作型環(huán)境中一般只保存有6090天的數(shù)據(jù)逞度,而在數(shù)據(jù)倉庫中則需要保存較長時限的數(shù)據(jù)(如510年)额划,以適應DSS進行趨勢分析的要求。
(3)數(shù)據(jù)倉庫中包含有大量的綜合數(shù)據(jù)第晰,這些綜合數(shù)據(jù)中很多跟時間有關锁孟,如數(shù)據(jù)經(jīng)常按照時間段進行綜合,或隔一定的時間片進行抽樣等等茁瘦。這些數(shù)據(jù)要隨著時間的變化不斷地進行重新綜合品抽。因此,數(shù)據(jù)倉庫的數(shù)據(jù)特征都包含時間項甜熔,以標明數(shù)據(jù)的歷史時期圆恤。
10.4 數(shù)據(jù)倉庫發(fā)展歷程
數(shù)據(jù)倉庫的發(fā)展大致經(jīng)歷了這樣的三個過程:
1)簡單報表階段:這個階段,系統(tǒng)的主要目標是解決一些日常的工作中業(yè)務人員需要的報表腔稀,以及生成一些簡單的能夠幫助領導進行決策所需要的匯總數(shù)據(jù)盆昙。這個階段的大部分表現(xiàn)形式為數(shù)據(jù)庫和前端報表工具。
2)數(shù)據(jù)集市階段:這個階段焊虏,主要是根據(jù)某個業(yè)務部門的需要淡喜,進行一定的數(shù)據(jù)的采集,整理诵闭,按照業(yè)務人員的需要炼团,進行多維報表的展現(xiàn)澎嚣,能夠提供對特定業(yè)務指導的數(shù)據(jù),并且能夠提供特定的領導決策數(shù)據(jù)瘟芝。
3)數(shù)據(jù)倉庫階段:這個階段易桃,主要是按照一定的數(shù)據(jù)模型,對整個企業(yè)的數(shù)據(jù)進行采集锌俱,整理晤郑,并且能夠按照各個業(yè)務部門的需要,提供跨部門的贸宏,完全一致的業(yè)務報表數(shù)據(jù)造寝,能夠通過數(shù)據(jù)倉庫生成對對業(yè)務具有指導性的數(shù)據(jù),同時锚赤,為領導決策提供全面的數(shù)據(jù)支持匹舞。
通過數(shù)據(jù)倉庫建設的發(fā)展階段褐鸥,我們能夠看出线脚,數(shù)據(jù)倉庫的建設和數(shù)據(jù)集市的建設的重要區(qū)別就在于數(shù)據(jù)模型的支持。因此叫榕,數(shù)據(jù)模型的建設浑侥,對于我們數(shù)據(jù)倉庫的建設,有著決定性的意義晰绎。
10.5 數(shù)據(jù)庫與數(shù)據(jù)倉庫的區(qū)別
了解數(shù)據(jù)庫與數(shù)據(jù)倉庫的區(qū)別之前寓落,首先掌握三個概念。數(shù)據(jù)庫軟件荞下、數(shù)據(jù)庫伶选、數(shù)據(jù)倉庫。
數(shù)據(jù)庫軟件:是一種軟件尖昏,可以看得見仰税,可以操作。用來實現(xiàn)數(shù)據(jù)庫邏輯功能抽诉。屬于物理層陨簇。
數(shù)據(jù)庫:是一種邏輯概念,用來存放數(shù)據(jù)的倉庫迹淌。通過數(shù)據(jù)庫軟件來實現(xiàn)河绽。數(shù)據(jù)庫由很多表組成,表是二維的唉窃,一張表里可以有很多字段耙饰。字段一字排開,對應的數(shù)據(jù)就一行一行寫入表中纹份。數(shù)據(jù)庫的表苟跪,在于能夠用二維表現(xiàn)多維關系。目前市面上流行的數(shù)據(jù)庫都是二維數(shù)據(jù)庫。如:Oracle削咆、DB2牍疏、MySQL、Sybase拨齐、MS SQL Server等鳞陨。
數(shù)據(jù)倉庫:是數(shù)據(jù)庫概念的升級。從邏輯上理解瞻惋,數(shù)據(jù)庫和數(shù)據(jù)倉庫沒有區(qū)別厦滤,都是通過數(shù)據(jù)庫軟件實現(xiàn)的存放數(shù)據(jù)的地方,只不過從數(shù)據(jù)量來說歼狼,數(shù)據(jù)倉庫要比數(shù)據(jù)庫更龐大得多掏导。數(shù)據(jù)倉庫主要用于數(shù)據(jù)挖掘和數(shù)據(jù)分析,輔助領導做決策羽峰。
在IT的架構(gòu)體系中趟咆,數(shù)據(jù)庫是必須存在的。必須要有地方存放數(shù)據(jù)梅屉。比如現(xiàn)在的網(wǎng)購值纱,淘寶,京東等等坯汤。物品的存貨數(shù)量虐唠,貨品的價格,用戶的賬戶余額之類的惰聂。這些數(shù)據(jù)都是存放在后臺數(shù)據(jù)庫中疆偿。或者最簡單理解搓幌,我們現(xiàn)在微博杆故,QQ等賬戶的用戶名和密碼。在后臺數(shù)據(jù)庫必然有一張user表鼻种,字段起碼有兩個反番,即用戶名和密碼,然后我們的數(shù)據(jù)就一行一行的存在表上面叉钥。當我們登錄的時候罢缸,我們填寫了用戶名和密碼,這些數(shù)據(jù)就會被傳回到后臺去投队,去跟表上面的數(shù)據(jù)匹配枫疆,匹配成功了,你就能登錄了敷鸦。匹配不成功就會報錯說密碼錯誤或者沒有此用戶名等息楔。這個就是數(shù)據(jù)庫寝贡,數(shù)據(jù)庫在生產(chǎn)環(huán)境就是用來干活的。凡是跟業(yè)務應用掛鉤的值依,我們都使用數(shù)據(jù)庫圃泡。
數(shù)據(jù)倉庫則是BI下的其中一種技術。由于數(shù)據(jù)庫是跟業(yè)務應用掛鉤的愿险,所以一個數(shù)據(jù)庫不可能裝下一家公司的所有數(shù)據(jù)颇蜡。數(shù)據(jù)庫的表設計往往是針對某一個應用進行設計的。比如剛才那個登錄的功能辆亏,這張user表上就只有這兩個字段风秤,沒有別的字段了。但是這張表符合應用扮叨,沒有問題缤弦。但是這張表不符合分析。比如我想知道在哪個時間段彻磁,用戶登錄的量最多碍沐?哪個用戶一年購物最多?諸如此類的指標兵迅。那就要重新設計數(shù)據(jù)庫的表結(jié)構(gòu)了抢韭。對于數(shù)據(jù)分析和數(shù)據(jù)挖掘薪贫,我們引入數(shù)據(jù)倉庫概念恍箭。數(shù)據(jù)倉庫的表結(jié)構(gòu)是依照分析需求,分析維度瞧省,分析指標進行設計的扯夭。
數(shù)據(jù)庫與數(shù)據(jù)倉庫的區(qū)別實際講的是OLTP與OLAP的區(qū)別。
操作型處理鞍匾,叫聯(lián)機事務處理OLTP(On-Line Transaction Processing)交洗,也可以稱面向交易的處理系統(tǒng),它是針對具體業(yè)務在數(shù)據(jù)庫聯(lián)機的日常操作橡淑,通常對少數(shù)記錄進行查詢构拳、修改。用戶較為關心操作的響應時間梁棠、數(shù)據(jù)的安全性置森、完整性和并發(fā)支持的用戶數(shù)等問題。傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)作為數(shù)據(jù)管理的主要手段符糊,主要用于操作型處理凫海。
分析型處理,叫聯(lián)機分析處理OLAP(On-Line Analytical Processing)一般針對某些主題的歷史數(shù)據(jù)進行分析男娄,支持管理決策行贪。
表 操作型處理與分析型處理的比較:
10.6 數(shù)據(jù)倉庫架構(gòu)分層
10.6.1 數(shù)據(jù)倉庫架構(gòu)
數(shù)據(jù)倉庫標準上可以分為四層:ODS(臨時存儲層)漾稀、PDW(數(shù)據(jù)倉庫層)、DM(數(shù)據(jù)集市層)建瘫、APP(應用層)崭捍。
1)ODS層:
為臨時存儲層,是接口數(shù)據(jù)的臨時存儲區(qū)域啰脚,為后一步的數(shù)據(jù)處理做準備缕贡。一般來說ODS層的數(shù)據(jù)和源系統(tǒng)的數(shù)據(jù)是同構(gòu)的,主要目的是簡化后續(xù)數(shù)據(jù)加工處理的工作拣播。從數(shù)據(jù)粒度上來說ODS層的數(shù)據(jù)粒度是最細的晾咪。ODS層的表通常包括兩類,一個用于存儲當前需要加載的數(shù)據(jù)贮配,一個用于存儲處理完后的歷史數(shù)據(jù)谍倦。歷史數(shù)據(jù)一般保存3-6個月后需要清除,以節(jié)省空間泪勒。但不同的項目要區(qū)別對待昼蛀,如果源系統(tǒng)的數(shù)據(jù)量不大,可以保留更長的時間圆存,甚至全量保存叼旋;
2)PDW層:
為數(shù)據(jù)倉庫層,PDW層的數(shù)據(jù)應該是一致的沦辙、準確的夫植、干凈的數(shù)據(jù),即對源系統(tǒng)數(shù)據(jù)進行了清洗(去除了雜質(zhì))后的數(shù)據(jù)油讯。這一層的數(shù)據(jù)一般是遵循數(shù)據(jù)庫第三范式的详民,其數(shù)據(jù)粒度通常和ODS的粒度相同。在PDW層會保存BI系統(tǒng)中所有的歷史數(shù)據(jù)陌兑,例如保存10年的數(shù)據(jù)沈跨。
3)DM層:
為數(shù)據(jù)集市層,這層數(shù)據(jù)是面向主題來組織數(shù)據(jù)的兔综,通常是星形或雪花結(jié)構(gòu)的數(shù)據(jù)饿凛。從數(shù)據(jù)粒度來說,這層的數(shù)據(jù)是輕度匯總級的數(shù)據(jù)软驰,已經(jīng)不存在明細數(shù)據(jù)了涧窒。從數(shù)據(jù)的時間跨度來說,通常是PDW層的一部分碌宴,主要的目的是為了滿足用戶分析的需求杀狡,而從分析的角度來說,用戶通常只需要分析近幾年(如近三年的數(shù)據(jù))的即可贰镣。從數(shù)據(jù)的廣度來說呜象,仍然覆蓋了所有業(yè)務數(shù)據(jù)膳凝。
4)APP層:
為應用層,這層數(shù)據(jù)是完全為了滿足具體的分析需求而構(gòu)建的數(shù)據(jù)恭陡,也是星形或雪花結(jié)構(gòu)的數(shù)據(jù)蹬音。從數(shù)據(jù)粒度來說是高度匯總的數(shù)據(jù)。從數(shù)據(jù)的廣度來說休玩,則并不一定會覆蓋所有業(yè)務數(shù)據(jù)著淆,而是DM層數(shù)據(jù)的一個真子集,從某種意義上來說是DM層數(shù)據(jù)的一個重復拴疤。從極端情況來說永部,可以為每一張報表在APP層構(gòu)建一個模型來支持,達到以空間換時間的目的數(shù)據(jù)倉庫的標準分層只是一個建議性質(zhì)的標準呐矾,實際實施時需要根據(jù)實際情況確定數(shù)據(jù)倉庫的分層苔埋,不同類型的數(shù)據(jù)也可能采取不同的分層方法。
10.6.2 為什么要對數(shù)據(jù)倉庫分層蜒犯?
1)用空間換時間组橄,通過大量的預處理來提升應用系統(tǒng)的用戶體驗(效率),因此數(shù)據(jù)倉庫會存在大量冗余的數(shù)據(jù)罚随。
2)如果不分層的話玉工,如果源業(yè)務系統(tǒng)的業(yè)務規(guī)則發(fā)生變化將會影響整個數(shù)據(jù)清洗過程,工作量巨大淘菩。
3)通過數(shù)據(jù)分層管理可以簡化數(shù)據(jù)清洗的過程遵班,因為把原來一步的工作分到了多個步驟去完成,相當于把一個復雜的工作拆成了多個簡單的工作瞄勾,把一個大的黑盒變成了一個白盒费奸,每一層的處理邏輯都相對簡單和容易理解,這樣我們比較容易保證每一個步驟的正確性进陡,當數(shù)據(jù)發(fā)生錯誤的時候,往往我們只需要局部調(diào)整某個步驟即可微服。
10.7 元數(shù)據(jù)介紹
當需要了解某地企業(yè)及其提供的服務時趾疚,電話黃頁的重要性就體現(xiàn)出來了。元數(shù)據(jù)(Metadata)類似于這樣的電話黃頁以蕴。
1)元數(shù)據(jù)的定義
數(shù)據(jù)倉庫的元數(shù)據(jù)是關于數(shù)據(jù)倉庫中數(shù)據(jù)的數(shù)據(jù)糙麦。它的作用類似于數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)字典,保存了邏輯數(shù)據(jù)結(jié)構(gòu)丛肮、文件赡磅、地址和索引等信息。廣義上講宝与,在數(shù)據(jù)倉庫中焚廊,元數(shù)據(jù)描述了數(shù)據(jù)倉庫內(nèi)數(shù)據(jù)的結(jié)構(gòu)和建立方法的數(shù)據(jù)冶匹。
元數(shù)據(jù)是數(shù)據(jù)倉庫管理系統(tǒng)的重要組成部分,元數(shù)據(jù)管理器是企業(yè)級數(shù)據(jù)倉庫中的關鍵組件咆瘟,貫穿數(shù)據(jù)倉庫構(gòu)建的整個過程嚼隘,直接影響著數(shù)據(jù)倉庫的構(gòu)建、使用和維護袒餐。
(1)構(gòu)建數(shù)據(jù)倉庫的主要步驟之一是ETL飞蛹。這時元數(shù)據(jù)將發(fā)揮重要的作用,它定義了源數(shù)據(jù)系統(tǒng)到數(shù)據(jù)倉庫的映射灸眼、數(shù)據(jù)轉(zhuǎn)換的規(guī)則卧檐、數(shù)據(jù)倉庫的邏輯結(jié)構(gòu)、數(shù)據(jù)更新的規(guī)則焰宣、數(shù)據(jù)導入歷史記錄以及裝載周期等相關內(nèi)容泄隔。數(shù)據(jù)抽取和轉(zhuǎn)換的專家以及數(shù)據(jù)倉庫管理員正是通過元數(shù)據(jù)高效地構(gòu)建數(shù)據(jù)倉庫。
(2)用戶在使用數(shù)據(jù)倉庫時宛徊,通過元數(shù)據(jù)訪問數(shù)據(jù)佛嬉,明確數(shù)據(jù)項的含義以及定制報表。
(3)數(shù)據(jù)倉庫的規(guī)模及其復雜性離不開正確的元數(shù)據(jù)管理闸天,包括增加或移除外部數(shù)據(jù)源暖呕,改變數(shù)據(jù)清洗方法,控制出錯的查詢以及安排備份等苞氮。
元數(shù)據(jù)可分為技術元數(shù)據(jù)和業(yè)務元數(shù)據(jù)湾揽。技術元數(shù)據(jù)為開發(fā)和管理數(shù)據(jù)倉庫的IT人員使用,它描述了與數(shù)據(jù)倉庫開發(fā)笼吟、管理和維護相關的數(shù)據(jù)库物,包括數(shù)據(jù)源信息、數(shù)據(jù)轉(zhuǎn)換描述贷帮、數(shù)據(jù)倉庫模型戚揭、數(shù)據(jù)清洗與更新規(guī)則、數(shù)據(jù)映射和訪問權(quán)限等撵枢。而業(yè)務元數(shù)據(jù)為管理層和業(yè)務分析人員服務民晒,從業(yè)務角度描述數(shù)據(jù),包括商務術語锄禽、數(shù)據(jù)倉庫中有什么數(shù)據(jù)潜必、數(shù)據(jù)的位置和數(shù)據(jù)的可用性等,幫助業(yè)務人員更好地理解數(shù)據(jù)倉庫中哪些數(shù)據(jù)是可用的以及如何使用沃但。
由上可見磁滚,元數(shù)據(jù)不僅定義了數(shù)據(jù)倉庫中數(shù)據(jù)的模式、來源宵晚、抽取和轉(zhuǎn)換規(guī)則等垂攘,而且是整個數(shù)據(jù)倉庫系統(tǒng)運行的基礎维雇,元數(shù)據(jù)把數(shù)據(jù)倉庫系統(tǒng)中各個松散的組件聯(lián)系起來,組成了一個有機的整體搜贤,如圖所示
2)元數(shù)據(jù)的存儲方式
元數(shù)據(jù)有兩種常見存儲方式:一種是以數(shù)據(jù)集為基礎谆沃,每一個數(shù)據(jù)集有對應的元數(shù)據(jù)文件,每一個元數(shù)據(jù)文件包含對應數(shù)據(jù)集的元數(shù)據(jù)內(nèi)容仪芒;另一種存儲方式是以數(shù)據(jù)庫為基礎唁影,即元數(shù)據(jù)庫。其中元數(shù)據(jù)文件由若干項組成掂名,每一項表示元數(shù)據(jù)的一個要素据沈,每條記錄為數(shù)據(jù)集的元數(shù)據(jù)內(nèi)容。上述存儲方式各有優(yōu)缺點饺蔑,第一種存儲方式的優(yōu)點是調(diào)用數(shù)據(jù)時相應的元數(shù)據(jù)也作為一個獨立的文件被傳輸锌介,相對數(shù)據(jù)庫有較強的獨立性,在對元數(shù)據(jù)進行檢索時可以利用數(shù)據(jù)庫的功能實現(xiàn)猾警,也可以把元數(shù)據(jù)文件調(diào)到其他數(shù)據(jù)庫系統(tǒng)中操作孔祸;不足是如果每一數(shù)據(jù)集都對應一個元數(shù)據(jù)文檔,在規(guī)模巨大的數(shù)據(jù)庫中則會有大量的元數(shù)據(jù)文件发皿,管理不方便崔慧。第二種存儲方式下,元數(shù)據(jù)庫中只有一個元數(shù)據(jù)文件穴墅,管理比較方便惶室,添加或刪除數(shù)據(jù)集,只要在該文件中添加或刪除相應的記錄項即可玄货。在獲取某數(shù)據(jù)集的元數(shù)據(jù)時皇钞,因為實際得到的只是關系表格數(shù)據(jù)的一條記錄,所以要求用戶系統(tǒng)可以接受這種特定形式的數(shù)據(jù)松捉。因此推薦使用元數(shù)據(jù)庫的方式夹界。
元數(shù)據(jù)庫用于存儲元數(shù)據(jù),因此元數(shù)據(jù)庫最好選用主流的關系數(shù)據(jù)庫管理系統(tǒng)惩坑。元數(shù)據(jù)庫還包含用于操作和查詢元數(shù)據(jù)的機制掉盅。建立元數(shù)據(jù)庫的主要好處是提供統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)和業(yè)務規(guī)則,易于把企業(yè)內(nèi)部的多個數(shù)據(jù)集市有機地集成起來以舒。目前,一些企業(yè)傾向建立多個數(shù)據(jù)集市慢哈,而不是一個集中的數(shù)據(jù)倉庫蔓钟,這時可以考慮在建立數(shù)據(jù)倉庫(或數(shù)據(jù)集市)之前,先建立一個用于描述數(shù)據(jù)卵贱、服務應用集成的元數(shù)據(jù)庫滥沫,做好數(shù)據(jù)倉庫實施的初期支持工作侣集,對后續(xù)開發(fā)和維護有很大的幫助。元數(shù)據(jù)庫保證了數(shù)據(jù)倉庫數(shù)據(jù)的一致性和準確性兰绣,為企業(yè)進行數(shù)據(jù)質(zhì)量管理提供基礎世分。
3)元數(shù)據(jù)的作用
在數(shù)據(jù)倉庫中,元數(shù)據(jù)的主要作用如下缀辩。
(1)描述哪些數(shù)據(jù)在數(shù)據(jù)倉庫中臭埋,幫助決策分析者對數(shù)據(jù)倉庫的內(nèi)容定位。
(2)定義數(shù)據(jù)進入數(shù)據(jù)倉庫的方式臀玄,作為數(shù)據(jù)匯總瓢阴、映射和清洗的指南。
(3)記錄業(yè)務事件發(fā)生而隨之進行的數(shù)據(jù)抽取工作時間安排健无。
(4)記錄并檢測系統(tǒng)數(shù)據(jù)一致性的要求和執(zhí)行情況荣恐。
(5)評估數(shù)據(jù)質(zhì)量。
10.8 星型模型和雪花模型
在多維分析的商業(yè)智能解決方案中累贤,根據(jù)事實表和維度表的關系叠穆,又可將常見的模型分為星型模型和雪花型模型。在設計邏輯型數(shù)據(jù)的模型的時候臼膏,就應考慮數(shù)據(jù)是按照星型模型還是雪花型模型進行組織硼被。
10.8.1 星型模型
當所有維表都直接連接到“ 事實表”上時,整個圖解就像星星一樣讶请,故將該模型稱為星型模型祷嘶。
星型架構(gòu)是一種非正規(guī)化的結(jié)構(gòu),多維數(shù)據(jù)集的每一個維度都直接與事實表相連接夺溢,不存在漸變維度论巍,所以數(shù)據(jù)有一定的冗余,如在地域維度表中风响,存在國家A 省B的城市C以及國家A省B的城市D兩條記錄嘉汰,那么國家A和省B的信息分別存儲了兩次,即存在冗余状勤。
10.8.2 雪花模型
當有一個或多個維表沒有直接連接到事實表上鞋怀,而是通過其他維表連接到事實表上時,其圖解就像多個雪花連接在一起持搜,故稱雪花模型郊丛。雪花模型是對星型模型的擴展。它對星型模型的維表進一步層次化垛吗,原有的各維表可能被擴展為小的事實表瓦灶,形成一些局部的" 層次" 區(qū)域,這些被分解的表都連接到主維度表而不是事實表。如圖所示抛猫,將地域維表又分解為國家蟆盹,省份,城市等維表闺金。它的優(yōu)點是:通過最大限度地減少數(shù)據(jù)存儲量以及聯(lián)合較小的維表來改善查詢性能逾滥。雪花型結(jié)構(gòu)去除了數(shù)據(jù)冗余。
星型模型因為數(shù)據(jù)的冗余所以很多統(tǒng)計查詢不需要做外部的連接败匹,因此一般情況下效率比雪花型模型要高寨昙。星型結(jié)構(gòu)不用考慮很多正規(guī)化的因素,設計與實現(xiàn)都比較簡單哎壳。雪花型模型由于去除了冗余毅待,有些統(tǒng)計就需要通過表的聯(lián)接才能產(chǎn)生,所以效率不一定有星型模型高归榕。正規(guī)化也是一種比較復雜的過程尸红,相應的數(shù)據(jù)庫結(jié)構(gòu)設計、數(shù)據(jù)的 ETL刹泄、以及后期的維護都要復雜一些外里。因此在冗余可以接受的前提下,實際運用中星型模型使用更多特石,也更有效率盅蝗。
10.8.3 星型模型和雪花模型對比
星形模型和雪花模型是數(shù)據(jù)倉庫中常用到的兩種方式,而它們之間的對比要從四個角度來進行討論姆蘸。
1)數(shù)據(jù)優(yōu)化
雪花模型使用的是規(guī)范化數(shù)據(jù)墩莫,也就是說數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部是組織好的,以便消除冗余逞敷,因此它能夠有效地減少數(shù)據(jù)量狂秦。通過引用完整性,其業(yè)務層級和維度都將存儲在數(shù)據(jù)模型之中推捐。
雪花模型:
相比較而言裂问,星形模型使用的是反規(guī)范化數(shù)據(jù)。在星形模型中牛柒,維度直接指的是事實表堪簿,業(yè)務層級不會通過維度之間的參照完整性來部署。
星形模型:
2)業(yè)務模型
主鍵是一個單獨的唯一鍵(數(shù)據(jù)屬性)皮壁,為特殊數(shù)據(jù)所選擇椭更。在上面的例子中,Advertiser_ID就將是一個主鍵蛾魄。外鍵(參考屬性)僅僅是一個表中的字段甜孤,用來匹配其他維度表中的主鍵协饲。在我們所引用的例子中畏腕,Advertiser_ID將是Account_dimension的一個外鍵缴川。
在雪花模型中,數(shù)據(jù)模型的業(yè)務層級是由一個不同維度表主鍵-外鍵的關系來代表的描馅。而在星形模型中把夸,所有必要的維度表在事實表中都只擁有外鍵。
3)性能
第三個區(qū)別在于性能的不同铭污。雪花模型在維度表恋日、事實表之間的連接很多,因此性能方面會比較低嘹狞。舉個例子岂膳,如果你想要知道Advertiser 的詳細信息,雪花模型就會請求許多信息磅网,比如Advertiser Name谈截、ID以及那些廣告主和客戶表的地址需要連接起來,然后再與事實表連接涧偷。
而星形模型的連接就少的多簸喂,在這個模型中,如果你需要上述信息燎潮,你只要將Advertiser的維度表和事實表連接即可喻鳄。
4)ETL
雪花模型加載數(shù)據(jù)集市,因此ETL操作在設計上更加復雜确封,而且由于附屬模型的限制除呵,不能并行化。
星形模型加載維度表爪喘,不需要再維度之間添加附屬模型颜曾,因此ETL就相對簡單,而且可以實現(xiàn)高度的并行化腥放。
總結(jié)
雪花模型使得維度分析更加容易泛啸,比如“針對特定的廣告主,有哪些客戶或者公司是在線的?”星形模型用來做指標分析更適合秃症,比如“給定的一個客戶他們的收入是多少?”