本文分享主題為數(shù)倉OneData體系建設(shè)的方法論。主要內(nèi)容包括:
01、
背景
首先來看數(shù)倉的方法論體系。
1. 數(shù)據(jù)倉庫
① 數(shù)據(jù)倉庫是什么
先通過一個生活場景中的案例來理解、認(rèn)識數(shù)倉。
例如一家企業(yè)是做食品加工進(jìn)出口業(yè)務(wù)的,需要采購大米、小麥等食品加工必需的原材料,采購時則需要通過運輸至貨品集中處進(jìn)行卸貨,并按一定類別分類儲存,再通過處理將原材料加工成面粉、米粉等半成品,最終在通過一道加工程序?qū)氤善诽幚砑庸槌善愤M(jìn)行銷售。在數(shù)倉、數(shù)據(jù)中臺、湖倉一體的應(yīng)用場景下,對外展現(xiàn)數(shù)據(jù)或提供數(shù)據(jù)服務(wù)時也需要將企業(yè)內(nèi)外部把非結(jié)構(gòu)化或半結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行匯總到一個地方,無論是叫ODS(結(jié)構(gòu)化數(shù)據(jù))或暫存區(qū),接下來會在數(shù)倉基礎(chǔ)數(shù)據(jù)區(qū)把數(shù)據(jù)根據(jù)不同的主題域(如客戶、產(chǎn)品、交易等)進(jìn)行分類成明細(xì)數(shù)據(jù),然后在匯總區(qū)依據(jù)共性維度把一些公共指標(biāo)進(jìn)行加工匯總或關(guān)聯(lián)聚合以保證數(shù)據(jù)指標(biāo)的一致性,并減少冗余重復(fù)工作量,最后按業(yè)務(wù)的應(yīng)用主題(如客戶分析、產(chǎn)品分析、風(fēng)險分析等)進(jìn)行深度加工匯總,最終對外提供服務(wù)(如固定報表、多維分析、對外的dataAPI、算法能力等)。其實數(shù)倉架構(gòu)與生活場景的案例差不多,主要是對數(shù)據(jù)做相應(yīng)的分層,每一層都有不同的作用。
② 數(shù)據(jù)倉庫方法論
數(shù)據(jù)倉庫從方法論角度看,在這個領(lǐng)域中主要分為兩種流派,分別由Bill Inmon及Ralph Kimball所倡導(dǎo)。
Ralph Kimball 基于整個原始數(shù)據(jù)源之上,通過ODS集成結(jié)構(gòu)化的數(shù)據(jù),再建設(shè)數(shù)據(jù)集市,數(shù)據(jù)集市做相應(yīng)的數(shù)據(jù)展現(xiàn)或數(shù)據(jù)分析應(yīng)用。優(yōu)勢在于根據(jù)分析應(yīng)用目的去建設(shè)主題分析的速度較快,前期建設(shè)成本、門檻低;不足在于經(jīng)過長期累積,因各數(shù)據(jù)集市業(yè)務(wù)數(shù)據(jù)指標(biāo)重復(fù)建設(shè)、口徑不一致而導(dǎo)致數(shù)據(jù)質(zhì)量的下降,同時治理成本也比較高;
Bill Inmon 站在整個企業(yè)架構(gòu)之上,匯總企業(yè)內(nèi)外部的全部數(shù)據(jù),根據(jù)業(yè)務(wù)屬性和業(yè)務(wù)要求建設(shè)統(tǒng)一的數(shù)倉模型,在模型內(nèi)數(shù)據(jù)覆蓋比較廣且數(shù)據(jù)存在相互關(guān)聯(lián)、數(shù)據(jù)標(biāo)準(zhǔn)是一致的,通過對數(shù)據(jù)的標(biāo)準(zhǔn)化處理再把數(shù)據(jù)分發(fā)至數(shù)據(jù)集市做相應(yīng)的應(yīng)用。不足之處在于:首先,前期對建模人員的要求較高、需要站在整個企業(yè)架構(gòu)之上了解企業(yè)全部業(yè)務(wù);其次,因為覆蓋范圍比較廣,建設(shè)成本高和周期較長;2003年Bill Inmon提出CIF架構(gòu),融合了兩派方法論,目前大部分企業(yè)主要使用的也是CIF體系架構(gòu)。
2. 數(shù)據(jù)模型
數(shù)據(jù)模型在數(shù)據(jù)倉庫中起到非常重要的作用,我們把數(shù)倉比作一輛汽車,數(shù)據(jù)模型就擔(dān)當(dāng)了這輛汽車中的發(fā)動機(jī)角色。一個數(shù)據(jù)模型的穩(wěn)定性、可擴(kuò)展性、數(shù)據(jù)模型易用性等,是衡量數(shù)據(jù)建模水平的關(guān)鍵標(biāo)準(zhǔn)。

① OneData體系
OneData體系最初由阿里巴巴提出,最終的實現(xiàn)目標(biāo)是數(shù)據(jù)的全局完整、含義一致、避免重復(fù)建設(shè)、對外提供統(tǒng)一的數(shù)據(jù)服務(wù),目的是挖掘數(shù)據(jù)的價值、讓數(shù)據(jù)驅(qū)動業(yè)務(wù)創(chuàng)新。歸結(jié)起來,整個OneData的理念與Bill Inmon的理念、企業(yè)架構(gòu)的思想是一致的。OneData的建設(shè)是要在底層由業(yè)務(wù)架構(gòu)出發(fā)來推導(dǎo)、設(shè)計數(shù)據(jù)模型,從數(shù)據(jù)研發(fā)到數(shù)據(jù)服務(wù),做到數(shù)據(jù)可管理、可追溯、可規(guī)避重復(fù)建設(shè)。OneData中有三個重要的特征:
OneID:致力于實現(xiàn)數(shù)據(jù)的標(biāo)準(zhǔn)與統(tǒng)一
OneModel:致力于實現(xiàn)實體的統(tǒng)一,讓數(shù)據(jù)融通而非孤島存在,為精準(zhǔn)的用戶畫像提供基礎(chǔ);
OneService:致力于實現(xiàn)數(shù)據(jù)服務(wù)的統(tǒng)一,讓數(shù)據(jù)復(fù)用而非復(fù)制。

3. 企業(yè)架構(gòu)數(shù)據(jù)倉庫的關(guān)系
前面OneData體系中我們提到它是由整個企業(yè)架構(gòu)來推導(dǎo)數(shù)據(jù)模型,那企業(yè)架構(gòu)和數(shù)倉之間到底是什么關(guān)系呢?
企業(yè)架構(gòu)稍微有點晦澀難懂,我們打個比方:一個企業(yè)的戰(zhàn)略可以看作為一個城市的頂層規(guī)劃或者定位;下一級則是城市的規(guī)劃,城市規(guī)劃就可以類比為企業(yè)架構(gòu),包含業(yè)務(wù)、應(yīng)用、數(shù)據(jù)、技術(shù)四大架構(gòu)。與數(shù)據(jù)相關(guān)的主要就是從業(yè)務(wù)流程推導(dǎo)業(yè)務(wù)對象或業(yè)務(wù)屬性,梳理出數(shù)據(jù)模型中的數(shù)據(jù)實體。
在整個企業(yè)數(shù)據(jù)架構(gòu)規(guī)劃中,不可忽略的一塊就是數(shù)倉的規(guī)劃,數(shù)倉中有數(shù)據(jù)模型,數(shù)據(jù)模型在整個企業(yè)數(shù)據(jù)架構(gòu)中會落地在數(shù)據(jù)倉庫中,也是數(shù)倉的參考模型。

02、數(shù)據(jù)建模流程工藝
1. OneData數(shù)據(jù)模型設(shè)計思路
建模的依據(jù):整個建模流程中首先是建模的設(shè)計依據(jù)。上面我們講建模依據(jù)來源于企業(yè)架構(gòu)、業(yè)務(wù)架構(gòu),還有行業(yè)最佳實踐、企業(yè)的應(yīng)用需求;
模型層次劃分:有了建模設(shè)計依據(jù)之后,接下來就是模型層次的劃分,每一層用什么樣的設(shè)計模式。比如最頂層應(yīng)用層通常使用星型模型或雪花模型;匯總層一般使用星型模型;到基礎(chǔ)層一般需要遵循數(shù)據(jù)三范式,提升數(shù)據(jù)穩(wěn)定性和可用性。
模型設(shè)計思路:接下來就是整個模型的設(shè)計思路,設(shè)計理念(如統(tǒng)一共享、標(biāo)準(zhǔn)化等)、設(shè)計原則(可回溯、穩(wěn)定性等)、設(shè)計策略、設(shè)計步驟等等。通過這樣的路徑產(chǎn)出的數(shù)據(jù)模型的復(fù)用性、穩(wěn)定性等都會有比較高的提升。

2. 數(shù)據(jù)倉庫數(shù)據(jù)模型設(shè)計流程
數(shù)據(jù)倉庫數(shù)據(jù)模型的設(shè)計包括如下步驟:
需求分析:包括業(yè)務(wù)需求和數(shù)據(jù)需求
數(shù)據(jù)源的分析:會產(chǎn)生相應(yīng)的分析報告
現(xiàn)有模型滿足度及差異分析:每個行業(yè)每個領(lǐng)域中的企業(yè)可能會有自己的數(shù)據(jù)模型產(chǎn)品或行業(yè)解決方案,有沉淀的內(nèi)容,我們的數(shù)據(jù)模型產(chǎn)品在需求及數(shù)據(jù)源側(cè)(也就是前面第一、二步的需求分析和數(shù)據(jù)源分析)做相應(yīng)的比對和差異分析;
概念模型設(shè)計、邏輯模型設(shè)計、邏輯模型物理化:必不可少的過程;
模型實施、模型驗證及調(diào)優(yōu)

03、最佳實踐
接下來舉三個例子與大家做交流分享。
1. 百度展示廣告EDW建設(shè)
① 項目背景
2015年,百度高速發(fā)展,每個產(chǎn)品線、事業(yè)部都建了自己的數(shù)據(jù)集市,也發(fā)揮了很大的價值。但發(fā)展后期發(fā)現(xiàn)存在很多問題,煙囪式建設(shè)導(dǎo)致業(yè)務(wù)數(shù)據(jù)不全,雖然也能通過數(shù)據(jù)共享拿到數(shù)據(jù),但各業(yè)務(wù)建設(shè)時有些共性指標(biāo)定義不一致、標(biāo)準(zhǔn)不一致。所以啟動了一個數(shù)據(jù)治理項目,但本質(zhì)上沒有解決這個問題。最后啟動了EDW建設(shè)的項目,希望把企業(yè)級所有數(shù)據(jù)匯總起來加工并對外提供數(shù)據(jù)應(yīng)用或數(shù)據(jù)服務(wù)。
② 建設(shè)過程
在建設(shè)數(shù)據(jù)倉庫的過程中,根據(jù)企業(yè)架構(gòu)方法論,從頂層業(yè)務(wù)架構(gòu)開始梳理,然后是應(yīng)用架構(gòu)。
在梳理業(yè)務(wù)架構(gòu)時,我們參考了行業(yè)領(lǐng)先實踐,把業(yè)務(wù)能力、業(yè)務(wù)流程、業(yè)務(wù)活動全部梳理出來后,把每個活動中涉及的業(yè)務(wù)信息(在華為叫業(yè)務(wù)對象)也梳理出來。梳理完之后通過業(yè)務(wù)對象的細(xì)化和展開規(guī)范化形成了數(shù)據(jù)的實體,最后把它進(jìn)一步細(xì)化形成邏輯實體,針對數(shù)據(jù)存儲組件形成物理表,最終形成數(shù)倉的數(shù)據(jù)模型。

業(yè)務(wù)信息(業(yè)務(wù)對象)的梳理是非常關(guān)鍵的動作,在這里我們可以參考行業(yè)領(lǐng)先的實踐,在這個項目中主要對標(biāo)了IAB的信息模型,提煉了關(guān)鍵的業(yè)務(wù)對象。
廣告業(yè)務(wù)中有很多參與方,包括需求方(DSP)、供應(yīng)方(媒體等APP對應(yīng)的SSP),需求方和供應(yīng)方之間進(jìn)行交易則需要經(jīng)過ADX(廣告交易服務(wù)),針對用戶推送個性化的廣告則需要DMP(數(shù)據(jù)管理服務(wù)),還有風(fēng)險管理(如反作弊)以及財務(wù)管理等,進(jìn)而細(xì)分梳理出關(guān)鍵的業(yè)務(wù)對象。

梳理出關(guān)鍵的業(yè)務(wù)對象后,對其進(jìn)行了相應(yīng)的沉淀,并最終得到了關(guān)鍵的數(shù)據(jù)實體。這些關(guān)鍵的數(shù)據(jù)實體將近有八九十個,最后對其進(jìn)行相應(yīng)的邏輯劃分、聚合,最終形成了10大主題域。這10大主題域構(gòu)成了EDW數(shù)倉的基礎(chǔ)層,由此之上再進(jìn)行公共維度的加工形成匯總層,另外針對用戶或業(yè)務(wù)部門的分析需求形成了數(shù)據(jù)集市應(yīng)用。

2. 華為數(shù)據(jù)底座
數(shù)據(jù)底座最開始是華為提出的,因為華為認(rèn)為無論是數(shù)倉建設(shè)還是大數(shù)據(jù)平臺,都是數(shù)據(jù)管道。最關(guān)鍵的是數(shù)據(jù)管道里面流淌的數(shù)據(jù)或數(shù)據(jù)內(nèi)容。
在華為做數(shù)據(jù)底座時做的比較好的地方就是數(shù)據(jù)入湖,建立了六大數(shù)據(jù)標(biāo)準(zhǔn)。所有能夠獲取到的數(shù)據(jù)都往數(shù)據(jù)湖匯聚,包括物理入湖和虛擬入湖(在數(shù)據(jù)量比較少的情況下或者對原系統(tǒng)影響不大的情況下采用了數(shù)據(jù)虛擬入湖,其實數(shù)據(jù)最終進(jìn)入了數(shù)據(jù)中臺中);
在數(shù)據(jù)入湖治理方面的六大數(shù)據(jù)標(biāo)準(zhǔn):
明確數(shù)據(jù)Owner:來自于哪個業(yè)務(wù)、哪個流程,需要由明確的業(yè)務(wù)組織認(rèn)責(zé)。
發(fā)布數(shù)據(jù)標(biāo)準(zhǔn)
定義數(shù)據(jù)密級
明確數(shù)據(jù)源:數(shù)據(jù)需要有可信的數(shù)據(jù)源(源系統(tǒng)),盡量不要拿二手?jǐn)?shù)據(jù),有失真的風(fēng)險;
數(shù)據(jù)質(zhì)量評估:在數(shù)據(jù)湖中不會對數(shù)據(jù)做清洗、轉(zhuǎn)換,保證入湖數(shù)據(jù)質(zhì)量的達(dá)標(biāo)、可靠;
元數(shù)據(jù)注冊:所有數(shù)據(jù)入湖之前都需要采集元數(shù)據(jù),編制數(shù)據(jù)目錄,這樣保證入湖的所有數(shù)據(jù)都是查找、可追溯、可管理的,也就是數(shù)據(jù)可用、可控,否則就是garbage in, garbage out, 數(shù)據(jù)湖變成數(shù)據(jù)沼澤。

3. 銀行數(shù)據(jù)倉庫模型設(shè)計
金融行業(yè)的傳統(tǒng)數(shù)據(jù)模型設(shè)計和數(shù)據(jù)倉庫模型設(shè)計是存在差異的。
我們在做傳統(tǒng)數(shù)據(jù)模型設(shè)計時,主要有以下幾點問題:
自底向上:我們是根據(jù)業(yè)務(wù)部門的需求進(jìn)行設(shè)計;
局部覆蓋:由于是需求驅(qū)動,只能覆蓋特定需求;
基于現(xiàn)狀:基于當(dāng)前的業(yè)務(wù)流程、功能現(xiàn)狀去構(gòu)建設(shè)計數(shù)據(jù)模型。
但是做數(shù)倉的時候,主要是以下幾點:
自頂向下:從頂層規(guī)劃開始,基于業(yè)務(wù)流程、業(yè)務(wù)對象、抽象實體、實體細(xì)化去設(shè)計模型的;
全局覆蓋:全面覆蓋業(yè)務(wù)場景,不局限于特定場景或需求;
考慮未來:從架構(gòu)層面梳理,考慮行業(yè)通用性。

優(yōu)秀案例(Teradata數(shù)據(jù)倉庫模型)
在銀行業(yè),Teradata FS-LDM的10大主題域分別是當(dāng)事人、產(chǎn)品、協(xié)議、事件、區(qū)域、渠道、行銷活動、資產(chǎn)、財務(wù)、內(nèi)部機(jī)構(gòu)。

04心得總結(jié)
頂層設(shè)計:OneData體系建設(shè),需要頂層設(shè)計,從業(yè)務(wù)架構(gòu)推導(dǎo)出數(shù)據(jù)模型。
數(shù)據(jù)分層:數(shù)據(jù)倉庫中,需要不同的分層,來保證數(shù)據(jù)模型穩(wěn)定性,可擴(kuò)展性和可用性,以便數(shù)據(jù)模型適應(yīng)業(yè)務(wù)場景的變化。
規(guī)范性:數(shù)據(jù)模型的設(shè)計規(guī)范性、數(shù)據(jù)標(biāo)準(zhǔn)化(命名、值域等)、服務(wù)接口。
(部分內(nèi)容來源網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系刪除)