數(shù)倉(cāng)(四)數(shù)據(jù)倉(cāng)庫(kù)分層
上一節(jié)我們了解了數(shù)倉(cāng)中常見的兩大建模體系:關(guān)系建模和維度建模,并論述了維度建模的4個(gè)步驟。
數(shù)倉(cāng)(二)關(guān)系建模和維度建模
數(shù)倉(cāng)(三)簡(jiǎn)析阿里、美團(tuán)、網(wǎng)易、恒豐銀行、馬蜂窩5家數(shù)倉(cāng)分層架構(gòu)
其實(shí)數(shù)倉(cāng)建模中還有些其他建模體系:
像DataVault、Anchor模型,這兩個(gè)模型感興趣的可以自己查些資料。
這一篇我們來(lái)學(xué)習(xí)一下數(shù)倉(cāng)中非常重要的內(nèi)容:數(shù)倉(cāng)的分層架構(gòu)體系。
一、數(shù)據(jù)集市(Data Mart)
數(shù)據(jù)集市也叫數(shù)據(jù)市場(chǎng)。為某個(gè)特殊的專業(yè)人員團(tuán)體服務(wù)的數(shù)據(jù)源中收集數(shù)據(jù)的倉(cāng)庫(kù)。從范圍上來(lái)說(shuō),數(shù)倉(cāng)是從企業(yè)范圍的,而數(shù)據(jù)集市是部門范圍的。

數(shù)據(jù)倉(cāng)庫(kù)
是企業(yè)級(jí)的,能為整個(gè)企業(yè)各個(gè)部門的運(yùn)行提供決策支持手段;
數(shù)據(jù)集市
則是一種微型的數(shù)據(jù)倉(cāng)庫(kù),它通常有更少的數(shù)據(jù),更少的主題區(qū)域,以及更少的歷史數(shù)據(jù),因此是部門級(jí)的。
一般只能為某個(gè)局部范圍內(nèi)的管理人員服務(wù),因此也稱之為部門級(jí)數(shù)據(jù)倉(cāng)庫(kù)。
二、數(shù)倉(cāng)分層思想
通過(guò)分層管理來(lái)實(shí)現(xiàn)分步完成工作,
用空間換時(shí)間,通過(guò)數(shù)據(jù)預(yù)處理提高效率,提升應(yīng)用系統(tǒng)的用戶體驗(yàn)(效率),簡(jiǎn)化數(shù)據(jù)清洗的過(guò)程,使每一層處理邏輯變得更簡(jiǎn)單。
每一層的處理邏輯都相對(duì)簡(jiǎn)單和容易理解,這樣我們比較容易保證每一個(gè)步驟的正確性; 當(dāng)數(shù)據(jù)發(fā)生錯(cuò)誤的時(shí)候,往往我們只需要局部調(diào)整某個(gè)步驟即可。
數(shù)據(jù)結(jié)構(gòu)化更清晰
數(shù)據(jù)血緣追蹤
增強(qiáng)數(shù)據(jù)復(fù)用能力
簡(jiǎn)化復(fù)雜的問(wèn)題
減少業(yè)務(wù)的影響
統(tǒng)一數(shù)據(jù)口徑
分層就能解決業(yè)務(wù)上所有的數(shù)據(jù)問(wèn)題?
數(shù)倉(cāng)分層盡管給數(shù)倉(cāng)帶來(lái)了很多好處,但它不是銀彈,不能解決所有的數(shù)據(jù)問(wèn)題;
并且沒有絕對(duì)標(biāo)準(zhǔn)的數(shù)倉(cāng)。不同的公司針對(duì)不同的業(yè)務(wù)搭建數(shù)倉(cāng)的設(shè)計(jì)模型和分層一般也不一樣。
數(shù)倉(cāng)分層要結(jié)合當(dāng)下企業(yè)的的技術(shù)以及當(dāng)前的業(yè)務(wù)的數(shù)據(jù)量,業(yè)務(wù)的復(fù)雜度等通盤考量。
數(shù)倉(cāng)的搭建設(shè)計(jì)是由關(guān)系型在線交易系統(tǒng)到面向主題的數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng),從范式建模到維度建模的必經(jīng)之路。
三、數(shù)倉(cāng)中常見的層級(jí)
數(shù)倉(cāng)中常見的層級(jí)如下:

又叫“貼源層”,這層保持?jǐn)?shù)據(jù)原貌不做任何修改,保留歷史數(shù)據(jù),儲(chǔ)存起到備份數(shù)據(jù)的作用。 數(shù)據(jù)一般采用lzo、Snappy、parquet等壓縮格式,減少磁盤存儲(chǔ)空間(例如:原始數(shù)據(jù) 10G,根據(jù)算法可以壓縮到 1G 左 右)。 創(chuàng)建分區(qū)表,防止后續(xù)的全表掃描,減少集群資源訪問(wèn)數(shù)倉(cāng)的壓力,一般按天存儲(chǔ)在數(shù)倉(cāng)中。
DWD層是維度建模層 關(guān)于維度建模請(qǐng)查閱數(shù)倉(cāng)(三)建模和維度建模,這層維度建模主要做的4個(gè)步驟:

ODS到DWD層,需要對(duì)數(shù)據(jù)進(jìn)行清洗做ETL操作(ETL是英文Extract-Transform-Load的縮寫)。
ETL(Extract-Transform-Load)
將數(shù)據(jù)從來(lái)源端經(jīng)過(guò)抽取(extract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過(guò)程。是將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)經(jīng)過(guò)抽取、清洗轉(zhuǎn)換之后加載到數(shù)據(jù)倉(cāng)庫(kù)的過(guò)程。
目的是將企業(yè)中的分散、凌亂、標(biāo)準(zhǔn)不統(tǒng)一的數(shù)據(jù)整合到一起,為企業(yè)的決策提供分析依據(jù)。
主要的數(shù)據(jù)處理是:去空值、去極值(比方取款300億)、去業(yè)務(wù)極值、部分?jǐn)?shù)據(jù)脫敏、維度退化等即對(duì)業(yè)務(wù)數(shù)據(jù)傳過(guò)來(lái)的表進(jìn)行維度退化和降維(如:商品一級(jí)二級(jí)、省市縣、年月日等)。
使輕度匯總層,從ODS層中對(duì)用戶的行為做一個(gè)初步的匯總,抽象出來(lái)一些通用的維度:時(shí)間、ip、id,并根據(jù)這些維度做一些統(tǒng)計(jì)值。
這里做輕度的匯總會(huì)讓以后的計(jì)算更加的高效,如:統(tǒng)計(jì)各個(gè)主題對(duì)象計(jì)算7天、30天、90天的行為, 應(yīng)對(duì)特殊需求(例如,購(gòu)買行為,統(tǒng)計(jì)商品復(fù)購(gòu)率)會(huì)快很多不必走ODS層反復(fù)拿數(shù)據(jù)做加工。
這層以分析的主題對(duì)象作為建模驅(qū)動(dòng),基于上層的應(yīng)用和產(chǎn)品的指標(biāo)需求,構(gòu)建公共粒度的匯總指標(biāo)事實(shí)表,以寬表化手段物理化模型。構(gòu)建命名規(guī)范、口徑一致的統(tǒng)計(jì)指標(biāo),為上層提供公共指標(biāo),建立匯總寬表、明細(xì)事實(shí)表。
服務(wù)于 DWT 層的主題寬表,以及一些業(yè)務(wù)明細(xì)數(shù)據(jù)。
高基數(shù)維度數(shù)據(jù) 一般是用戶資料表、商品資料表等類似的資料表。數(shù)據(jù)量可能是千萬(wàn)級(jí)或者上億級(jí)別。 低基數(shù)維度數(shù)據(jù) 一般是配置表,比如枚舉值對(duì)應(yīng)的中文含義,比如國(guó)家、城市、縣市、街道等維表。數(shù)據(jù)量可能是個(gè)位數(shù)或者幾千幾萬(wàn)。
這一層是提供為數(shù)據(jù)產(chǎn)品使用的結(jié)果數(shù)據(jù)。 在這里,主要是提供給數(shù)據(jù)產(chǎn)品和數(shù)據(jù)分析使用的數(shù)據(jù),一般會(huì)存放在 ES、MySQL等系統(tǒng)中供線上系統(tǒng)使用,也可能會(huì)存在 Hive 或者 Druid 、kill中供數(shù)據(jù)分析和數(shù)據(jù)挖掘使用。如我們經(jīng)常說(shuō)的報(bào)表數(shù)據(jù),或者說(shuō)那種大寬表,一般就放在這里。
4、DM(Data Mart)
數(shù)據(jù)倉(cāng)庫(kù)第4版 數(shù)據(jù)倉(cāng)庫(kù)工具 DAMA數(shù)據(jù)管理知識(shí)體系指南 華為數(shù)據(jù)之道
>>>>
Q&A
Q:數(shù)倉(cāng)分幾層適合?有沒有統(tǒng)一的標(biāo)準(zhǔn)
