不會(huì)體系化建模,那數(shù)據(jù)治理不就是瞎搞嗎?
一、前言
本文基于美團(tuán)配送數(shù)據(jù)治理的歷程,重點(diǎn)和大家分享一下配送數(shù)據(jù)“底座”的建設(shè)與實(shí)踐。如何通過體系化建模建立起數(shù)據(jù)定義到數(shù)據(jù)生產(chǎn)的橋梁,達(dá)成數(shù)據(jù)定義、模型設(shè)計(jì)、數(shù)據(jù)生產(chǎn)三個(gè)環(huán)節(jié)的統(tǒng)一,消除因數(shù)據(jù)標(biāo)準(zhǔn)缺失和執(zhí)行不到位引發(fā)的數(shù)據(jù)信任問題,在高質(zhì)量地實(shí)現(xiàn)數(shù)據(jù)到信息的轉(zhuǎn)化的同時(shí),為后續(xù)的數(shù)據(jù)便捷消費(fèi)提供數(shù)據(jù)和元數(shù)據(jù)保障。希望能給從事數(shù)據(jù)治理方向的同學(xué)在實(shí)現(xiàn)數(shù)據(jù)到資產(chǎn)的轉(zhuǎn)化過程提供一些參考和借鑒。
二、什么是體系化建模
體系化建模是以維度建模為理論基礎(chǔ),以事前治理的理念驅(qū)動(dòng),讓元數(shù)據(jù)貫穿其中的建模流程,上承指標(biāo)、維度的定義,下接實(shí)際的數(shù)據(jù)生產(chǎn)。首先,通過高層模型設(shè)計(jì),將業(yè)務(wù)指標(biāo)結(jié)構(gòu)化拆解為原子指標(biāo)/計(jì)算指標(biāo)+限定條件的組合方式,并將其歸屬到特定的業(yè)務(wù)過程和主題下,完成業(yè)務(wù)指標(biāo)的計(jì)劃化定義;其次,基于高層模型設(shè)計(jì)自動(dòng)生產(chǎn)詳細(xì)的物理模型設(shè)計(jì);第三,基于產(chǎn)生的物理模型設(shè)計(jì),半自動(dòng)或自動(dòng)地生成數(shù)據(jù)加工邏輯,以確保最終的業(yè)務(wù)定義和物理實(shí)現(xiàn)的統(tǒng)一。具體如下圖1所示:
圖1 體系化建模概述
從對(duì)體系化建模的定義來看,它強(qiáng)調(diào)了兩個(gè)統(tǒng)一,即數(shù)據(jù)需求與模型設(shè)計(jì)的統(tǒng)一和模型設(shè)計(jì)與物理實(shí)現(xiàn)的統(tǒng)一。
數(shù)據(jù)需求與模型設(shè)計(jì)的統(tǒng)一,模型設(shè)計(jì)是倉庫領(lǐng)域劃分和具體需求相結(jié)合的產(chǎn)物。倉庫領(lǐng)域劃分是對(duì)數(shù)據(jù)進(jìn)行基于業(yè)務(wù)本身但超越和脫離業(yè)務(wù)需求限制的抽象,對(duì)數(shù)據(jù)完成主題、業(yè)務(wù)過程的抽象,作為業(yè)務(wù)指標(biāo)、維度需求歸屬和實(shí)現(xiàn)數(shù)據(jù)建設(shè)高內(nèi)聚、低耦合的重要依據(jù);具體的需求模型設(shè)計(jì),是在倉庫領(lǐng)域劃分基礎(chǔ)上的內(nèi)容填充,將需求以指標(biāo)、維度的形式歸屬到對(duì)應(yīng)的主題與業(yè)務(wù)過程,以此驅(qū)動(dòng)和約束具體詳細(xì)模型設(shè)計(jì),勾勒出寶貴的信息架構(gòu)資產(chǎn)。
模型設(shè)計(jì)與物理實(shí)現(xiàn)的統(tǒng)一,基于模型設(shè)計(jì)環(huán)節(jié)沉淀的信息架構(gòu)元數(shù)據(jù),以此來驅(qū)動(dòng)和約束實(shí)際的物理模型,約束對(duì)應(yīng)物理模型的DDL,在數(shù)據(jù)加工時(shí),防止因缺乏有效約束帶來的“煙囪式”開發(fā),是模型上線前,自動(dòng)完成業(yè)務(wù)定義與物理實(shí)現(xiàn)一致性驗(yàn)證,確保DML實(shí)現(xiàn)的正確性。
三、為什么要進(jìn)行體系化建模
此前一段時(shí)期,配送數(shù)據(jù)建設(shè)存在著需求管理(指標(biāo)、維度)、模型設(shè)計(jì)、模型開發(fā)相互割裂不統(tǒng)一的現(xiàn)象,數(shù)據(jù)架構(gòu)規(guī)范無法進(jìn)行實(shí)質(zhì)、有效的管理,元數(shù)據(jù)(指標(biāo)、維度、模型設(shè)計(jì))與實(shí)際物理模型割裂、不匹配,造成各種數(shù)據(jù)資產(chǎn)信息缺失。而且由于缺乏系統(tǒng)抓手,無法完全規(guī)范研發(fā)的模型設(shè)計(jì)質(zhì)量,導(dǎo)致部分需求直接進(jìn)行了數(shù)據(jù)開發(fā),引起惡化模型建設(shè)質(zhì)量的問題。這種缺乏規(guī)范和約束帶來的“煙囪式”開發(fā),在浪費(fèi)技術(shù)資源的同時(shí)造成數(shù)據(jù)重復(fù)且不可信。配送體系化建模切入點(diǎn)是:以規(guī)范“基礎(chǔ)數(shù)據(jù)建設(shè)”,消除因“煙囪式”開發(fā)給業(yè)務(wù)帶來的困擾和技術(shù)上的浪費(fèi)。
1、對(duì)數(shù)據(jù)架構(gòu)實(shí)質(zhì)有效的管理,從源頭消除“煙囪式”開發(fā)
體系化建模不僅可以在工具上實(shí)現(xiàn)一體化設(shè)計(jì)和開發(fā),而且能在機(jī)制上形成模型設(shè)計(jì)與開發(fā)實(shí)施的有效協(xié)同。以需求驅(qū)動(dòng)模型設(shè)計(jì),以模型設(shè)計(jì)驅(qū)動(dòng)和約束開發(fā)實(shí)施,防止因模型設(shè)計(jì)與開發(fā)實(shí)施割裂、開發(fā)實(shí)施缺少約束帶來的無序、“煙囪式”開發(fā)。
2、沉淀的規(guī)范元數(shù)據(jù),可以有效消除業(yè)務(wù)在檢索和理解數(shù)據(jù)時(shí)的困擾
體系化建模不但將原先割裂的數(shù)據(jù)規(guī)范定義、模型設(shè)計(jì)以及最終的物理模型實(shí)現(xiàn)連接在一起,而且以元數(shù)據(jù)的形式將數(shù)據(jù)資產(chǎn)的刻畫沉淀了下來,每個(gè)指標(biāo)不僅有規(guī)范的業(yè)務(wù)定義和清晰的加工口徑,而且還可以映射到對(duì)應(yīng)的物理表上,有效地消除了業(yè)務(wù)在檢索和理解數(shù)據(jù)時(shí)的困擾。
四、如何進(jìn)行體系化建模
實(shí)現(xiàn)體系化建模要從源頭開始,將數(shù)據(jù)規(guī)范定義、數(shù)據(jù)模型設(shè)計(jì)和ETL開發(fā)鏈接在一起,以實(shí)現(xiàn)“設(shè)計(jì)即開發(fā),所建即所得”。整體策略是從源頭開始,先在需求層面解決指標(biāo)定義的問題,然后依次約束和驅(qū)動(dòng)模型設(shè)計(jì)進(jìn)而約束數(shù)據(jù)加工,將產(chǎn)生于線上業(yè)務(wù)流程各環(huán)節(jié)的數(shù)據(jù)進(jìn)行領(lǐng)域化抽象,并實(shí)現(xiàn)業(yè)務(wù)規(guī)則的數(shù)字化,完成“物理世界”的數(shù)字孿生,形成“數(shù)字世界”。在工具層面實(shí)現(xiàn)基于需求的一體化設(shè)計(jì)和開發(fā),在機(jī)制上形成模型設(shè)計(jì)與數(shù)據(jù)開發(fā)的有效協(xié)同。
圖2 體系化建模思路
體系化建模不僅在工具上基于需求實(shí)現(xiàn)一體化設(shè)計(jì)和開發(fā),而且在機(jī)制上形成模型設(shè)計(jì)與數(shù)據(jù)加工的有效協(xié)同。首先,基于數(shù)倉規(guī)劃,將業(yè)務(wù)提的指標(biāo)、維度映射到對(duì)應(yīng)的主題、業(yè)務(wù)過程,然后基于數(shù)據(jù)定義標(biāo)準(zhǔn),對(duì)業(yè)務(wù)指標(biāo)進(jìn)行結(jié)構(gòu)化拆解,實(shí)現(xiàn)指標(biāo)的技術(shù)定義,完成高層模型設(shè)計(jì);其次,基于高層模型設(shè)計(jì)環(huán)節(jié)沉淀的元數(shù)據(jù),驅(qū)動(dòng)和約束最終的物理模型設(shè)計(jì),為后續(xù)的數(shù)據(jù)加工確定最終的DDL,完成物理模型設(shè)計(jì),以此來約束后續(xù)的數(shù)據(jù)開發(fā)。
圖3 體系化建模流程
1、高層模型設(shè)計(jì)
一線的數(shù)據(jù)需求都是以指標(biāo)和維度的形式提給數(shù)據(jù)工程師的,數(shù)據(jù)工程師首先要根據(jù)拿到的指標(biāo)需求確定要分析的業(yè)務(wù)過程,完成業(yè)務(wù)過程的劃分和定義,同時(shí)將指標(biāo)歸屬到對(duì)應(yīng)的業(yè)務(wù)過程下;其次,根據(jù)指標(biāo)的業(yè)務(wù)口徑,將業(yè)務(wù)指標(biāo)拆分成原子指標(biāo)+限定條件+時(shí)間周期或計(jì)算指標(biāo)+限定條件+時(shí)間周期形式,完成指標(biāo)的技術(shù)定義;第三,綜合各方分析視角,完成該業(yè)務(wù)過程一致維度的設(shè)計(jì),多個(gè)業(yè)務(wù)過程一致性維度的設(shè)計(jì)構(gòu)成該主題下的總線矩陣。
上述高層模型設(shè)計(jì),涉及兩個(gè)環(huán)節(jié)。
第一,通過業(yè)務(wù)抽象完成領(lǐng)域模型劃分,我們基于業(yè)務(wù)的實(shí)際流程來劃分業(yè)務(wù)過程,并按照分析領(lǐng)域完成業(yè)務(wù)過程的歸屬。在特定的業(yè)務(wù)下,分析領(lǐng)域和對(duì)應(yīng)的業(yè)務(wù)流程不會(huì)隨著分析需求的變化而變化,領(lǐng)域劃分也不會(huì)隨著分析需求的變化而變化,可以基于此劃分,構(gòu)建穩(wěn)定的資產(chǎn)目錄。
第二,通過完成業(yè)務(wù)指標(biāo)的技術(shù)定義并將其歸屬到特定的業(yè)務(wù)過程下,以及確定特定業(yè)務(wù)過程的分析維度完成邏輯建模。邏輯建模進(jìn)一步勾勒出了在特定的分析領(lǐng)域和業(yè)務(wù)過程下,具體的分析度量和分析維度,完成最終的高層模型設(shè)計(jì),高層模型的設(shè)計(jì)決定了在特定的分析域和分析業(yè)務(wù)過程下的具體物理產(chǎn)出。
圖4 高層模型設(shè)計(jì)
更具體的講,確定業(yè)務(wù)過程下的分析度量需要完成業(yè)務(wù)指標(biāo)的技術(shù)定義,并將其歸屬到特定的業(yè)務(wù)過程下。在這一步中,我們從技術(shù)角度對(duì)業(yè)務(wù)指標(biāo)產(chǎn)出了結(jié)構(gòu)化的技術(shù)定義,形成了一套結(jié)構(gòu)化指標(biāo)體系。一方面結(jié)構(gòu)化定義容易統(tǒng)一并形成標(biāo)準(zhǔn),避免全文字描述帶來理解上的歧義,另一方面結(jié)構(gòu)化的定義有助于系統(tǒng)來保障其一致性,解決靠人工來保障一致性難以實(shí)施的難題。我們的結(jié)構(gòu)化指標(biāo)方案將指標(biāo)分為:原子指標(biāo)、計(jì)算指標(biāo)和衍生指標(biāo),并針對(duì)這三類指標(biāo)做了如下明確的定義:
- 原子指標(biāo):指在某一業(yè)務(wù)過程下不可再拆分的指標(biāo),具有明確業(yè)務(wù)含義的名詞。在物理實(shí)現(xiàn)上,它是特定業(yè)務(wù)過程下業(yè)務(wù)實(shí)體字段加特定聚合算子的組合。
- 計(jì)算指標(biāo):由原子指標(biāo)與限定條件組合并經(jīng)過加減乘除四則運(yùn)算得到的指標(biāo)。計(jì)算指標(biāo)有明確的計(jì)算公式作為計(jì)算指標(biāo)的定義,可以與多個(gè)限定條件進(jìn)行組合。對(duì)于計(jì)算指標(biāo)的歸屬,我們遵循2個(gè)原則①由于原子指標(biāo)都能歸屬到相應(yīng)的業(yè)務(wù)過程,業(yè)務(wù)過程一般來說都有時(shí)間前后順序,將計(jì)算指標(biāo)歸屬到順序靠后的業(yè)務(wù)過程中;②如果涉及到多個(gè)業(yè)務(wù)過程,同時(shí)這些業(yè)務(wù)過程沒有時(shí)間的先后順序,這種情況下需要判斷指標(biāo)描述內(nèi)容與主題業(yè)務(wù)過程的相關(guān)性,然后再歸屬到對(duì)應(yīng)的業(yè)務(wù)過程。在物理實(shí)現(xiàn)上,計(jì)算指標(biāo)可以由其定義的計(jì)算公式直接自動(dòng)的生成其實(shí)現(xiàn)邏輯。
- 衍生指標(biāo):由 “時(shí)間周期+多個(gè)限定條件+原子指標(biāo)/計(jì)算指標(biāo)” 組成的指標(biāo)。由于衍生指標(biāo)是由原子指標(biāo)/計(jì)算指標(biāo)衍生出來的,所以衍生指標(biāo)需要?dú)w屬到原子指標(biāo)/計(jì)算指標(biāo)所屬的業(yè)務(wù)過程。
- 限定條件:限定條件是指標(biāo)業(yè)務(wù)口徑的一個(gè)邏輯封裝,時(shí)間周期也可以算作一類特殊的限定條件,是衍生指標(biāo)必須包含的。在物理實(shí)現(xiàn)上我們將其加工成衍生事實(shí)的一個(gè)邏輯標(biāo)簽。
在這樣的定義后,衍生指標(biāo)便清晰地分為原子衍生指標(biāo)和計(jì)算衍生指標(biāo)兩類,都可以比較容易地通過結(jié)構(gòu)化的方式半自動(dòng)生成定義和實(shí)現(xiàn)。衍生指標(biāo)覆蓋了用戶生成報(bào)表等數(shù)據(jù)產(chǎn)品的所有指標(biāo),而原子指標(biāo)和計(jì)算指標(biāo)作為指標(biāo)體系的核心內(nèi)容不直接提供給用戶使用。在指標(biāo)的實(shí)現(xiàn)方式上也容易明確,原子指標(biāo)和計(jì)算指標(biāo)的邏輯盡量下沉在基礎(chǔ)事實(shí)層中,而衍生指標(biāo)在中間層和應(yīng)用層根據(jù)需求實(shí)現(xiàn)。
2、詳細(xì)模型設(shè)計(jì)
詳細(xì)模型設(shè)計(jì)是將高層模型設(shè)計(jì)轉(zhuǎn)化為實(shí)際物理生產(chǎn)的橋梁,詳細(xì)模型設(shè)計(jì)必須結(jié)合數(shù)據(jù)的生產(chǎn)流程,給出與其分層模型相匹配的實(shí)際物理模型。根據(jù)數(shù)倉不同分層間的職責(zé)邊界,詳細(xì)模型設(shè)計(jì)又呈現(xiàn)出不同特點(diǎn)。
具體說來,需要數(shù)據(jù)工程師結(jié)合業(yè)務(wù)需求,對(duì)應(yīng)的邏輯建模產(chǎn)出的DDL完成最終物理模型的加工生產(chǎn),這是我們?cè)敿?xì)模型設(shè)計(jì)的核心。對(duì)于中間層匯總模型,是為提高查詢性能,基于明細(xì)模型進(jìn)行預(yù)計(jì)算的過程,不涉及任務(wù)業(yè)務(wù)口徑的加工,只要元數(shù)據(jù)定義清晰,完全可以通過工具實(shí)現(xiàn)“TEXT2SQL”進(jìn)而實(shí)現(xiàn)配置化生產(chǎn)。我們的工程師只需要關(guān)注基建層的開發(fā),中間和應(yīng)用層建設(shè)交給工具完成,節(jié)省了大量的時(shí)間和精力。在展開詳細(xì)模型設(shè)計(jì)之前,我們先介紹一下數(shù)倉分層,然后通過數(shù)據(jù)分層來介紹與之匹配的詳細(xì)模型設(shè)計(jì)。
1)數(shù)倉分層簡(jiǎn)介
按照整個(gè)數(shù)據(jù)生產(chǎn)的流轉(zhuǎn)鏈路看,數(shù)據(jù)會(huì)經(jīng)歷產(chǎn)生、接入、加工到最后的消費(fèi),數(shù)倉的建設(shè)主要集中在數(shù)據(jù)的接入和加工環(huán)節(jié)。數(shù)據(jù)的接入包含數(shù)據(jù)的獲取和清洗兩個(gè)過程,通過該過程完成了數(shù)據(jù)從業(yè)務(wù)系統(tǒng)到倉庫的流轉(zhuǎn),為后續(xù)基于分析場(chǎng)景的數(shù)據(jù)建模提供了原始數(shù)據(jù),我們將該過程產(chǎn)生的數(shù)據(jù)定義為準(zhǔn)備區(qū)數(shù)據(jù),該過程基本通過工具實(shí)現(xiàn)了自動(dòng)化,不需要太多的人為參與和設(shè)計(jì)。
另一過程,為了支持用戶、報(bào)表制作者以及其他BI應(yīng)用的查詢,我們需要為用戶提供開放區(qū)數(shù)據(jù),目前采取維度建模和倉庫分層理論,通過星型明細(xì)模型+多維匯總模型的方式分別滿足用戶固定的在線分析,以及無法預(yù)期的、隨意查詢的即席分析訴求。該區(qū)域是數(shù)據(jù)工程師整體工作的核心,可以利用在線建模沉淀的元數(shù)據(jù),輔助我們完成數(shù)據(jù)生產(chǎn)的提效和提質(zhì)。在數(shù)據(jù)準(zhǔn)備區(qū),我們將數(shù)據(jù)模型分為基礎(chǔ)明細(xì)層(B3)、中間匯總層(B2、B1)來支撐不同場(chǎng)景的數(shù)據(jù)需求。
圖5 數(shù)據(jù)分層模型
2)元數(shù)據(jù)驅(qū)動(dòng)的詳細(xì)模型設(shè)計(jì)
① 設(shè)計(jì)理念
元數(shù)據(jù)驅(qū)動(dòng)的詳細(xì)模型設(shè)計(jì),是基于高層模型設(shè)計(jì)產(chǎn)出的邏輯模型,進(jìn)而來驅(qū)動(dòng)和約束后續(xù)要加工的物理模型DDL,大致分成三步:第一,確定物理模型名稱;第二,基于模型歸屬自動(dòng)生成基礎(chǔ)事實(shí),基于需求確定衍生事實(shí),完成事實(shí)確定;第三,基于總線矩陣,確定模型一致性維度。
每一步具體操作的內(nèi)容因模型所屬的倉庫分層不同而有所區(qū)別。對(duì)于中間匯總層而言,只是在基礎(chǔ)模型基礎(chǔ)上的多維上卷,基礎(chǔ)模型確定以后,人工通過簡(jiǎn)單的指標(biāo)拖拽,就可以自動(dòng)生產(chǎn)DDL而且可以自動(dòng)生產(chǎn)DML,相對(duì)較簡(jiǎn)單,在此不做詳述。接下來,我們重點(diǎn)描述一下基礎(chǔ)事實(shí)層的詳細(xì)模型設(shè)計(jì),具體如下圖所示:
圖6 詳細(xì)模型設(shè)計(jì)
第一步,根據(jù)模型的出處確定模型名稱,經(jīng)過此處,不僅規(guī)范了模型命名,而且在數(shù)據(jù)生產(chǎn)前自動(dòng)實(shí)現(xiàn)了資產(chǎn)掛載,方便了后續(xù)數(shù)據(jù)的管理和運(yùn)營(yíng);
第二步,根據(jù)第一步的模型掛載,約束并確定該模型要生產(chǎn)的事實(shí),即該模型所包含的基礎(chǔ)事實(shí)字段由對(duì)應(yīng)業(yè)務(wù)過程下的快照表決定,自動(dòng)生產(chǎn)基礎(chǔ)事實(shí)字段,該模型所包含的衍生事實(shí)由由對(duì)應(yīng)業(yè)務(wù)過程下的衍生指標(biāo)所需的限定條件決定,確保了需求、模型設(shè)計(jì)、物理實(shí)現(xiàn)三者的統(tǒng)一。
通過該過程,我們約束了實(shí)際生產(chǎn)環(huán)節(jié)物理模型的隨意加工,從源頭消除了“煙囪式”開發(fā)帶來的冗余。通過元數(shù)據(jù)約束了對(duì)應(yīng)主題應(yīng)該生產(chǎn)哪些事實(shí),從源頭防止了邊界不清帶來的交叉耦合問題,保障了最終物理模型的高內(nèi)聚、低耦合。
圖7 元數(shù)據(jù)驅(qū)動(dòng)的模型設(shè)計(jì)從源頭消除煙囪式開發(fā)
第三步,基于總線矩陣確定物理模型的一致性維度,不是基于需求來添加維度,后期如果因需求變動(dòng)而頻繁調(diào)整基礎(chǔ)模型,這樣會(huì)導(dǎo)致基礎(chǔ)模型復(fù)用性差,而是在模型生產(chǎn)之初,一次性完成維度的設(shè)計(jì)和生產(chǎn),以提升模型的穩(wěn)定性和復(fù)用性。
圖8 采用總線矩陣約束模型保障模型復(fù)用性和穩(wěn)定性
② 產(chǎn)品實(shí)現(xiàn)
在闡述了詳細(xì)模型設(shè)計(jì)的理念和約束后,我們?cè)僭敿?xì)看一下在具體產(chǎn)品層面是如何實(shí)現(xiàn)的。詳細(xì)模型設(shè)計(jì)就是基于上一階段的高層模型設(shè)計(jì)和物理建模的基本原則,采用系統(tǒng)化的方式引導(dǎo)數(shù)據(jù)工程師按照標(biāo)準(zhǔn)的流程完成對(duì)應(yīng)的物理模型設(shè)計(jì),以最終產(chǎn)出的DDL作為該環(huán)節(jié)的交付物,指導(dǎo)數(shù)據(jù)工程師在生產(chǎn)環(huán)節(jié),完成最終的DML編寫。
這個(gè)環(huán)節(jié)除了輔助數(shù)據(jù)工程師完成規(guī)范化的模型設(shè)計(jì)外,還通過物理模型完備了上下文描述,包括完成了物理表與資產(chǎn)目錄的映射關(guān)系、物理字段與指標(biāo)維度的映射關(guān)系,為后續(xù)資產(chǎn)消費(fèi)環(huán)節(jié)提供了完備的基礎(chǔ)元數(shù)據(jù)。按照物理模型設(shè)計(jì)最終的交付物來看,它的設(shè)計(jì)流程主要包括兩部分:第一,按照規(guī)范和標(biāo)準(zhǔn),確定物理模型的名稱;第二,按照規(guī)范和標(biāo)準(zhǔn),確定物理模型的數(shù)據(jù)字典。
通過確定所建物理模型對(duì)應(yīng)的數(shù)倉層級(jí)、主題域和業(yè)務(wù)過程,自動(dòng)生成該物理表的名稱。
圖9 詳細(xì)模型設(shè)計(jì)之確定物理表的名稱和資產(chǎn)歸屬
基于高層模型設(shè)計(jì)環(huán)節(jié)確定的分析度量和維度,自動(dòng)生成物理表對(duì)應(yīng)的數(shù)據(jù)字典,確保模型設(shè)計(jì)與最終物理落地的一致性,從源頭杜絕不規(guī)范的開發(fā)。
圖10 詳細(xì)模型設(shè)計(jì)之確定物理表的字段信息并完成指標(biāo)、維度與字段的映射
3、上線前卡點(diǎn)
高層模型設(shè)計(jì)和詳細(xì)模型設(shè)計(jì)約束和規(guī)范了數(shù)據(jù)工程師如何確定一個(gè)模型的DDL,對(duì)于如何約束和保證實(shí)際的加工邏輯(模型的DML)和業(yè)務(wù)定義保持一致,并沒有與之匹配的約束卡點(diǎn)。上線前卡點(diǎn)就是利用高層模型和詳細(xì)模型設(shè)計(jì)這兩個(gè)環(huán)節(jié)產(chǎn)生的元數(shù)據(jù),通過自動(dòng)化的方式來完成DML與業(yè)務(wù)定義的一致性驗(yàn)證,消除人工驗(yàn)證帶來的成本問題。具體卡點(diǎn)驗(yàn)證包括四類:
- 相同指標(biāo)不同出處的數(shù)據(jù)一致性驗(yàn)證,將來自不同出處的相同指標(biāo)上卷到相同維度,它們具有相同的數(shù)值;
- 業(yè)務(wù)定義與具體實(shí)現(xiàn)的一致性驗(yàn)證,此類驗(yàn)證主要針對(duì)碼值類字段,具體數(shù)值必須與其對(duì)應(yīng)的業(yè)務(wù)定義一致;
- 研發(fā)合規(guī)的約束類驗(yàn)證,例如,主鍵必須唯一、全表掃描、代碼流程分支覆蓋(T+1重導(dǎo)、批量重導(dǎo)、全量重導(dǎo));
- 變更時(shí)的級(jí)聯(lián)影響,包括下游的生產(chǎn)任務(wù)影響和消費(fèi)任務(wù)影響。
五、總結(jié)
體系化建模是配送數(shù)據(jù)團(tuán)隊(duì)圍繞著數(shù)據(jù)資產(chǎn)化建設(shè)“提質(zhì)降本和數(shù)據(jù)應(yīng)用提效”這一目標(biāo)孵化的產(chǎn)物,本著將標(biāo)準(zhǔn)流程工具化的思路,我們通過工具來約束和規(guī)范數(shù)據(jù)工程師的生產(chǎn),力圖將模型的規(guī)范化治理做到事前,避免重蹈業(yè)務(wù)快速發(fā)展階段“先建設(shè)后治理”的覆轍。在模型提質(zhì)方面,我們實(shí)現(xiàn)了高層模型設(shè)計(jì)、物理模型設(shè)計(jì)的統(tǒng)一以及業(yè)務(wù)定義與物理實(shí)現(xiàn)的統(tǒng)一,而且在提效方面,在線建模通過系統(tǒng)的方式為我們沉淀了寶貴的元數(shù)據(jù),是我們后續(xù)基于元數(shù)據(jù)進(jìn)行應(yīng)用提效的關(guān)鍵。
體系化建模,搭建起了數(shù)據(jù)定義到生產(chǎn)的橋梁,實(shí)現(xiàn)數(shù)據(jù)到信息的轉(zhuǎn)化,提供了完備的流程保障,并在配送內(nèi)部實(shí)現(xiàn)了涉及10多個(gè)主題、180多個(gè)原子指標(biāo)、300多個(gè)計(jì)算指標(biāo)和90多個(gè)衍生指標(biāo)的統(tǒng)一。
圖11 數(shù)據(jù)定義、生產(chǎn)、加工全流程統(tǒng)一
在美團(tuán)內(nèi)部,涉及配送交易、履約等核心主題的規(guī)范性建設(shè)方面治理評(píng)分均取得了優(yōu)秀的成績(jī),特別是在指標(biāo)完整性建設(shè)得分和物理模型維度完整性得分方面,均取得90分以上優(yōu)秀成績(jī)。
圖12 健康的主題得分
得益于體系化建模實(shí)現(xiàn)的元數(shù)據(jù)和數(shù)據(jù)的統(tǒng)一,我們實(shí)現(xiàn)了數(shù)據(jù)建設(shè)從“保姆”模式到“服務(wù)+自助”模式的轉(zhuǎn)變。
在數(shù)據(jù)檢索方面,得益于體系化建模沉淀的高質(zhì)量元數(shù)據(jù),我們構(gòu)建了數(shù)據(jù)地圖,解決了數(shù)據(jù)“可搜索/可獲取”問題,并在檢索內(nèi)容方面實(shí)現(xiàn)了所建即所得。
圖13 數(shù)據(jù)可檢索
在數(shù)據(jù)消費(fèi)方面,得益于體系化建模沉淀的高質(zhì)量元數(shù)據(jù),我們實(shí)現(xiàn)了“服務(wù)+自助”的數(shù)據(jù)服務(wù)模式,不僅消除了傳統(tǒng)報(bào)表開發(fā)完全依賴產(chǎn)研帶來的開發(fā)流程長(zhǎng)、需求響應(yīng)慢、覆蓋用戶少等問題,而且解決了無法“零SQL”即席分析的難題,滿足了業(yè)務(wù)人員通過“拖、拉、拽”即可快速產(chǎn)生分析報(bào)告的訴求。
圖14 按需自由組裝指標(biāo)獲取數(shù)據(jù)
目前,該模式廣泛應(yīng)用于所有業(yè)務(wù)大區(qū)”零SQL“數(shù)據(jù)運(yùn)營(yíng)人員早報(bào)、周報(bào)、季度述職等業(yè)務(wù)場(chǎng)景,得益于上述模式,不僅得到了一線人員廣泛好評(píng),而且也將我們的數(shù)據(jù)RD從“取數(shù)”、“跑數(shù)”的繁重工作中解脫出來。