您好,登錄后才能下訂單哦!
這篇文章主要介紹Hive中數(shù)據(jù)倉庫層級(jí)如何劃分,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
1.數(shù)據(jù)倉庫的四個(gè)操作
ETL(extractiontransformation loading)負(fù)責(zé)將分散的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)抽取到臨時(shí)中間層后進(jìn)行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉庫或數(shù)據(jù)集市中。ETL 是實(shí)施數(shù)據(jù)倉庫的核心和靈魂,ETL規(guī)則的設(shè)計(jì)和實(shí)施約占整個(gè)數(shù)據(jù)倉庫搭建工作量的 60%~80%.
(1)數(shù)據(jù)抽取(extraction)包括初始化數(shù)據(jù)裝載和數(shù)據(jù)刷新:初始化數(shù)據(jù)裝載主要關(guān)注的是如何建立維表、事實(shí)表,并把相應(yīng)的數(shù)據(jù)放到這些數(shù)據(jù)表中;而數(shù)據(jù)刷新關(guān)注的是當(dāng)源數(shù)據(jù)發(fā)生變化時(shí)如何對(duì)數(shù)據(jù)倉庫中的相應(yīng)數(shù)據(jù)進(jìn)行追加和更新等維護(hù)(比如可以創(chuàng)建定時(shí)任務(wù),或者觸發(fā)器的形式進(jìn)行數(shù)據(jù)的定時(shí)刷新)。
(2)數(shù)據(jù)清洗主要是針對(duì)源數(shù)據(jù)庫中出現(xiàn)的二義性、重復(fù)、不完整、違反業(yè)務(wù)或邏輯規(guī)則等問題的數(shù)據(jù)進(jìn)行統(tǒng)一的處理。即清洗掉不符合業(yè)務(wù)或者沒用的的數(shù)據(jù)。比如通過編寫hive或者M(jìn)R清洗字段中長度不符合要求的數(shù)據(jù)。
(3)數(shù)據(jù)轉(zhuǎn)換(transformation)主要是為了將數(shù)據(jù)清洗后的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)倉庫所需要的數(shù)據(jù):來源于不同源系統(tǒng)的同一數(shù)據(jù)字段的數(shù)據(jù)字典或者數(shù)據(jù)格式可能不一樣(比如A表中叫id,B表中叫ids),在數(shù)據(jù)倉庫中需要給它們提供統(tǒng)一的數(shù)據(jù)字典和格式,對(duì)數(shù)據(jù)內(nèi)容進(jìn)行歸一化;另一方面,數(shù)據(jù)倉庫所需要的某些字段的內(nèi)容可能是源系統(tǒng)所不具備的,而是需要根據(jù)源系統(tǒng)中多個(gè)字段的內(nèi)容共同確定。
(4)數(shù)據(jù)加載(loading)是將最后上面處理完的數(shù)據(jù)導(dǎo)入到對(duì)應(yīng)的存儲(chǔ)空間里(mysql等)以方便給數(shù)據(jù)集市提供,進(jìn)而可視化。一般大公司為了數(shù)據(jù)
安全和操作方便,都是自己封裝的數(shù)據(jù)平臺(tái)和任務(wù)調(diào)度平臺(tái),底層封裝了大數(shù)據(jù)集群比如hadoop集群,spark集群,sqoop,hive,zookeepr,hbase等只提供web界面,并且對(duì)于不同員工加以不同權(quán)限,然后對(duì)集群進(jìn)行不同的操作和調(diào)用。以數(shù)據(jù)倉庫為例,將數(shù)據(jù)倉庫分為邏輯上的幾個(gè)層次。這樣對(duì)于不同層次的數(shù)據(jù)操作,創(chuàng)建不同層次的任務(wù),可以放到不同層次的任務(wù)流中進(jìn)行執(zhí)行(大公司一個(gè)集群通常每天的定時(shí)任務(wù)有幾千個(gè)等待執(zhí)行,甚至上萬個(gè),所以劃分不同層次的任務(wù)流,不同層次的任務(wù)放到對(duì)應(yīng)的任務(wù)流中進(jìn)行執(zhí)行,會(huì)更加方便管理和維護(hù))。
2.數(shù)據(jù)倉庫的四個(gè)邏輯架構(gòu)層次
數(shù)據(jù)倉庫標(biāo)準(zhǔn)上可以分為四層。但是注意這種劃分和命名不是唯一的,一般數(shù)倉都是四層,但是不同公司可能叫法不同。比如這里的臨時(shí)層叫復(fù)制層SSA,京東則叫BDM。同樣阿里巴巴卻是五層數(shù)倉結(jié)構(gòu),更加詳細(xì),但是核心的理念都是從四層數(shù)據(jù)模型而來。
(1)復(fù)制層(SSA,system-of-records-staging-area)
SSA 直接復(fù)制源系統(tǒng)(比如從mysql中讀取所有數(shù)據(jù)導(dǎo)入到hive中的同結(jié)構(gòu)表中,不做處理)的數(shù)據(jù),盡量保持業(yè)務(wù)數(shù)據(jù)的原貌;與源系統(tǒng)數(shù)據(jù)唯一不同的是,SSA 中的數(shù)據(jù)在源系統(tǒng)數(shù)據(jù)的基礎(chǔ)上加入了時(shí)間戳的信息,形成了多個(gè)版本的歷史數(shù)據(jù)信息。
(2)原子層(SOR,system-of-record)
SOR 是基于模型開發(fā)的一套符合 3NF 范式規(guī)則的表結(jié)構(gòu),它存儲(chǔ)了數(shù)據(jù)倉庫內(nèi)最細(xì)層次的數(shù)據(jù),并按照不同的主題域?qū)?shù)據(jù)分類存儲(chǔ);比如高校數(shù)據(jù)統(tǒng)計(jì)服務(wù)平臺(tái)根據(jù)目前部分需求將全校數(shù)據(jù)在 SOR 層中按人事、學(xué)生、教學(xué)、科研四大主題存儲(chǔ);SOR 是整個(gè)數(shù)據(jù)倉庫的核心和基礎(chǔ),在設(shè)計(jì)過程中應(yīng)具有足夠的靈活性,以能應(yīng)對(duì)添加更多的數(shù)據(jù)源、支持更多的分析需求,同時(shí)能夠支持進(jìn)一步的升級(jí)和更新.
(3)匯總層(SMA,summary-area)
SMA 是 SOR和DM(集市層) 的中間過渡,由于 SOR 是高度規(guī)范化數(shù)據(jù),此要完成一個(gè)查詢需要大量的關(guān)聯(lián)工作,同時(shí)DM 中的數(shù)據(jù)粒度往往要比 SOR 高很多,對(duì)要生DM 中的匯總數(shù)據(jù)需要進(jìn)行大量的匯總工作,此,SMA 根據(jù)需求把 SOR 數(shù)據(jù)進(jìn)行適度的反范(例如,設(shè)計(jì)寬表結(jié)構(gòu)將人員信息、干部信息等多表的數(shù)據(jù)合并起來)和匯總(例如,一些常用的頭匯總、機(jī)構(gòu)匯總等);從而提高數(shù)據(jù)倉庫查詢性能。
(4)集市層/展現(xiàn)層(DM, data mart)
DM 保存的數(shù)據(jù)供用戶直接訪問的:可以將 DM 理解成最終用戶接最終想要看的數(shù)據(jù);DM 主要是各類粒度的事數(shù)據(jù),通過提供不同粒度的數(shù)據(jù),適應(yīng)不同的數(shù)訪問需求;高校數(shù)據(jù)統(tǒng)計(jì)服務(wù)平臺(tái) DM 中的數(shù)據(jù)。
以上是“Hive中數(shù)據(jù)倉庫層級(jí)如何劃分”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。