聊聊數(shù)據(jù)倉(cāng)庫(kù)建設(shè)
數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題的、集成的、隨時(shí)間變化的、但信息本身相對(duì)穩(wěn)定的數(shù)據(jù)集合,用于對(duì)管理決策過程的支持。
數(shù)倉(cāng)建設(shè)思路
數(shù)倉(cāng)主要是圍繞著數(shù)據(jù)使用方與數(shù)據(jù)開發(fā)方訴求進(jìn)行建設(shè);因此在開始規(guī)劃數(shù)倉(cāng)建設(shè)時(shí),需要先剖析各方需求、痛點(diǎn)與癢點(diǎn),然后再在這些訴求設(shè)計(jì)解決方案與確定建設(shè)內(nèi)容。數(shù)據(jù)使用方主要訴求是能不能快速找到、找到怎么用、有哪些數(shù)據(jù),在使用數(shù)據(jù)時(shí),主要存在三大類問題:
找不到,不知道數(shù)據(jù)有沒有、在哪里。
看不懂,有很多業(yè)務(wù)方不是技術(shù)研發(fā)團(tuán)隊(duì)的,看不懂?dāng)?shù)據(jù)到底什么含義、怎么關(guān)聯(lián)查詢、來(lái)源于哪個(gè)業(yè)務(wù)系統(tǒng)。
不會(huì)用,如何寫 SQL 或者哪些產(chǎn)品里面能查詢到自己想要的數(shù)據(jù)指標(biāo)。
因此針對(duì)數(shù)據(jù)使用方,在數(shù)倉(cāng)建設(shè)過程中需要滿足:找得到、看得懂、用得對(duì)數(shù)據(jù)開發(fā)工程師更多是關(guān)注數(shù)據(jù)開發(fā)便利性、高效性與快速定位問題,因此數(shù)據(jù)開發(fā)方主要是以下幾點(diǎn)訴求:
數(shù)據(jù)復(fù)用:數(shù)據(jù)需求煙囪式開發(fā),導(dǎo)致了大量重復(fù)邏輯代碼的研發(fā),通過數(shù)據(jù)復(fù)用可以縮短數(shù)據(jù)需求交付,提高數(shù)據(jù)開發(fā)效率,滿足業(yè)務(wù)對(duì)數(shù)據(jù)的敏捷研發(fā)要求。
問題追蹤:在數(shù)據(jù)處理過程與數(shù)據(jù)質(zhì)量分析過程可以快速定位問題源頭。
影響分析:可以快速高效對(duì)數(shù)據(jù)規(guī)則修改或數(shù)據(jù)上下架影響進(jìn)行分析。
數(shù)倉(cāng)建設(shè)內(nèi)容
明確數(shù)倉(cāng)建設(shè)目標(biāo)之后,主要是從以下幾個(gè)方面搭建數(shù)倉(cāng)能力:
分層架構(gòu):分層架構(gòu)可以簡(jiǎn)化數(shù)據(jù)清洗的過程、為數(shù)據(jù)與模型可復(fù)用提供基礎(chǔ)。
主數(shù)據(jù)管理:通過主數(shù)據(jù)打通各業(yè)務(wù)鏈條,統(tǒng)一數(shù)據(jù)語(yǔ)言,統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn),實(shí)現(xiàn)數(shù)據(jù)共享。
指標(biāo)體系:指標(biāo)體系就是將各個(gè)指標(biāo)按照特定的框架組織起來(lái),從而統(tǒng)一指標(biāo)名稱及口徑定義,理清指標(biāo)間構(gòu)成關(guān)系,避免重復(fù)建設(shè)
詞根管理:通過詞根可以用來(lái)規(guī)范表名、字段名、主題域名等等。
數(shù)據(jù)血緣:數(shù)據(jù)溯源、數(shù)據(jù)價(jià)值與質(zhì)量評(píng)估。
分層架構(gòu)
通過數(shù)據(jù)分層管理可以更好組織、管理與維護(hù)數(shù)倉(cāng)數(shù)據(jù),簡(jiǎn)化數(shù)據(jù)開發(fā)工作,每一層的處理邏輯相對(duì)簡(jiǎn)單與容易理解,也比較容易保證每一個(gè)步驟的正確性,從而簡(jiǎn)化數(shù)據(jù)清洗的過程。分層是在利用空間換時(shí)間,通過大量的預(yù)處理來(lái)提升應(yīng)用系統(tǒng)的用戶體驗(yàn)(效率),因此數(shù)據(jù)倉(cāng)庫(kù)會(huì)存在大量冗余的數(shù)據(jù);不分層的話,如果源業(yè)務(wù)系統(tǒng)的業(yè)務(wù)規(guī)則發(fā)生變化將會(huì)影響整個(gè)數(shù)據(jù)清洗過程,工作量巨大。通過數(shù)據(jù)分層為數(shù)據(jù)與模型可復(fù)用提供基礎(chǔ),很多數(shù)據(jù)質(zhì)量問題是因?yàn)槲覀償?shù)據(jù)與模型無(wú)法復(fù)用導(dǎo)致業(yè)務(wù)口徑與技術(shù)口徑無(wú)法統(tǒng)一;新的需求,都從原始數(shù)據(jù)重新計(jì)算,從而衍生出很多數(shù)據(jù)質(zhì)量問題。數(shù)倉(cāng)分層一般如下:

ODS 層:加載與處理業(yè)務(wù)系統(tǒng)源數(shù)據(jù)的臨時(shí)區(qū)。ODS 是面向系統(tǒng),貼源遷移。不改變數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)粒度,但需清洗臟數(shù)據(jù)。
DWD:企業(yè)唯一的、集成的、準(zhǔn)確的數(shù)據(jù)版本。數(shù)據(jù)按主題域組織,數(shù)據(jù)結(jié)構(gòu)按實(shí)體和關(guān)系重構(gòu),數(shù)據(jù)粒度保留最細(xì)。使用 E-R 建模。
DWS:面向業(yè)務(wù),維度建模。數(shù)據(jù)按業(yè)務(wù)過程組織,數(shù)據(jù)結(jié)構(gòu)按事實(shí)表和維度表重構(gòu),數(shù)據(jù)粒業(yè)務(wù)度按需匯總。
ADS:面向應(yīng)用場(chǎng)景使用適合的工具提升數(shù)據(jù)存儲(chǔ)與處理的效率,從而提供數(shù)據(jù)服務(wù)。
主數(shù)據(jù)管理
能夠滿足企業(yè)跨部門協(xié)同需要的、反映核心業(yè)務(wù)實(shí)體狀態(tài)屬性的企業(yè)(組織機(jī)構(gòu))基礎(chǔ)信息,屬性相對(duì)穩(wěn)定、準(zhǔn)確度要求更高、唯一識(shí)別的,就是主數(shù)據(jù),稱為 MDM。這是《主數(shù)據(jù)管理實(shí)踐白皮書》給出的定義。
主數(shù)據(jù)是描述核心業(yè)務(wù)的關(guān)鍵事實(shí),例如客戶、產(chǎn)品、員工、地區(qū)等;同時(shí)也包含這些事實(shí)間的數(shù)據(jù)關(guān)系。主數(shù)據(jù)管理主要體現(xiàn)了以下價(jià)值:
消除數(shù)據(jù)冗余:不同系統(tǒng)、不同部門按照自身規(guī)則和需求獲取數(shù)據(jù),容易造成數(shù)據(jù)重復(fù)存儲(chǔ),形成數(shù)據(jù)冗余。主數(shù)據(jù)打通各業(yè)務(wù)鏈條,統(tǒng)一數(shù)據(jù)語(yǔ)言,統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn),實(shí)現(xiàn)數(shù)據(jù)共享,最大化消除了數(shù)據(jù)冗余。
提升數(shù)據(jù)處理效率:各系統(tǒng)、各部門對(duì)于數(shù)據(jù)定義不一樣,不同版本的數(shù)據(jù)不一致,一個(gè)核心主題也有多個(gè)版本的信息,需要大量的人力、時(shí)間成本去整理和統(tǒng)一。通過主數(shù)據(jù)管理可以實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)整理、復(fù)制、分發(fā)和共享。
提高公司戰(zhàn)略協(xié)同力:數(shù)據(jù)作為公司內(nèi)部經(jīng)營(yíng)分析、決策支撐的“通行語(yǔ)言”,實(shí)現(xiàn)多個(gè)部門統(tǒng)一后,有助于打通部門、系統(tǒng)壁壘,實(shí)現(xiàn)信息集成與共享,提高公司整體的戰(zhàn)略協(xié)同力。
下圖是主數(shù)據(jù)資產(chǎn)清單示例,要實(shí)現(xiàn)對(duì)主數(shù)據(jù)管理,主要是從以下幾方面實(shí)現(xiàn):

深入業(yè)務(wù),扎根業(yè)務(wù):每個(gè)業(yè)務(wù)線關(guān)鍵實(shí)體既有差異,也有交叉;主要深入了解業(yè)務(wù),才可以保持主數(shù)據(jù)一致性、準(zhǔn)確性、完整性、可控性。
面向主題域管理:按照業(yè)務(wù)線、主題域和業(yè)務(wù)過程三級(jí)目錄方式管理主數(shù)據(jù)。通過分層歸類管理主數(shù)據(jù)可以提高管理的效率。
指標(biāo)體系
指標(biāo)是一個(gè)可以量化目標(biāo)事物多少的數(shù)值,有時(shí)候也稱為度量,如:DNU、留存率等都是指標(biāo)。指標(biāo)體系就是將各個(gè)指標(biāo)按照特定的框架組織起來(lái),從而統(tǒng)一指標(biāo)名稱及口徑定義,理清指標(biāo)間構(gòu)成關(guān)系,避免重復(fù)建設(shè)。下圖是指標(biāo)體系示例。

業(yè)務(wù)過程:業(yè)務(wù)過程是企業(yè)活動(dòng)中不可拆分的行為事件。
維度/屬性:維度是觀察和分析業(yè)務(wù)過程的角度,屬性是描述維度的信息。
原子指標(biāo):原子指標(biāo)是對(duì)具體業(yè)務(wù)過程的度量或?qū)唧w維度/屬性的計(jì)數(shù),具有明確的業(yè)務(wù)含義且在邏輯層面不可再拆分。
修飾詞:修飾詞是對(duì)原子指標(biāo)進(jìn)行修飾限定的詞匯,對(duì)應(yīng)著明確的業(yè)務(wù)場(chǎng)景和業(yè)務(wù)規(guī)則,用于圈定原子指標(biāo)業(yè)務(wù)統(tǒng)計(jì)的范圍。
派生指標(biāo):派生指標(biāo)是原子指標(biāo)與一個(gè)或多個(gè)修飾詞的組合。
復(fù)合指標(biāo):原子指標(biāo)和派生指標(biāo)經(jīng)過疊加公式所計(jì)算出來(lái)的直接結(jié)果。
詞根管理
詞根是企業(yè)最細(xì)粒度業(yè)務(wù)術(shù)語(yǔ),是維度和指標(biāo)管理的基礎(chǔ),通過詞根可以用來(lái)統(tǒng)一表名、字段名、主題域名;建立和維護(hù)可收斂的詞根庫(kù),業(yè)務(wù)域、主題域我們都可以用詞根的方式枚舉清楚,不斷完善,粒度也是同樣的,主要的是時(shí)間粒度、日、月、年、周等,使用詞根定義好簡(jiǎn)稱,數(shù)倉(cāng)開發(fā)的字段命名也可以使用詞根進(jìn)行組合;劃分為普通詞根與專有詞根
普通詞根:描述事物的最小單元體,如:交易-trade。
專有詞根:具備約定成俗或行業(yè)專屬的描述體,如:美元-USD。
詞根示例如下:

數(shù)據(jù)血緣
數(shù)據(jù)的處理過程中,從數(shù)據(jù)源頭到最終的數(shù)據(jù)生成,每個(gè)環(huán)節(jié)都可能會(huì)導(dǎo)致我們出現(xiàn)數(shù)據(jù)質(zhì)量的問題。比如我們數(shù)據(jù)源本身數(shù)據(jù)質(zhì)量不高,在后續(xù)的處理環(huán)節(jié)中如果沒有進(jìn)行數(shù)據(jù)質(zhì)量的檢測(cè)和處理,那么這個(gè)數(shù)據(jù)信息最終流轉(zhuǎn)到我們的目標(biāo)表,它的數(shù)據(jù)質(zhì)量也是不高的。也有可能在某個(gè)環(huán)節(jié)的數(shù)據(jù)處理中,我們對(duì)數(shù)據(jù)進(jìn)行了一些不恰當(dāng)?shù)奶幚?,?dǎo)致后續(xù)環(huán)節(jié)的數(shù)據(jù)質(zhì)量變得糟糕。因此,對(duì)于數(shù)據(jù)的血緣關(guān)系,我們要確保每個(gè)環(huán)節(jié)都要注意數(shù)據(jù)質(zhì)量的檢測(cè)和處理,那么我們后續(xù)數(shù)據(jù)才會(huì)有優(yōu)良的基因,即有很高的數(shù)據(jù)質(zhì)量。
數(shù)據(jù)血緣關(guān)系的作用
數(shù)據(jù)溯源:數(shù)據(jù)的血緣關(guān)系,體現(xiàn)了數(shù)據(jù)的來(lái)龍去脈,能幫助我們追蹤數(shù)據(jù)的來(lái)源,追蹤數(shù)據(jù)處理過程。 評(píng)估數(shù)據(jù)價(jià)值:數(shù)據(jù)的價(jià)值在數(shù)據(jù)交易領(lǐng)域非常重要,數(shù)據(jù)血緣關(guān)系,可以從數(shù)據(jù)受眾、數(shù)據(jù)更新量級(jí)、數(shù)據(jù)更新頻次幾方面來(lái)給數(shù)據(jù)價(jià)值的評(píng)估提供依據(jù)。 數(shù)據(jù)質(zhì)量評(píng)估:從數(shù)據(jù)質(zhì)量評(píng)估角度來(lái)看,清晰的數(shù)據(jù)源和加工處理方法,可以明確每個(gè)節(jié)點(diǎn)數(shù)據(jù)質(zhì)量的好壞。從數(shù)據(jù)的血緣關(guān)系圖上,可以方便地看到數(shù)據(jù)清洗的標(biāo)準(zhǔn)清單。 數(shù)據(jù)歸檔、銷毀的參考:從數(shù)據(jù)生命周期管理角度來(lái)看,數(shù)據(jù)的血緣關(guān)系有助于我們判斷數(shù)據(jù)的生命周期,是數(shù)據(jù)的歸檔和銷毀操作的參考。
數(shù)據(jù)血緣示例圖如下:

