導(dǎo)讀:本次分享題目為淘系數(shù)據(jù)模型治理,主要介紹過去一年淘系數(shù)據(jù)治理工作的一些總結(jié)。
具體將圍繞以下四部分展開:
- 模型背景&問題
- 問題分析
- 治理方案(DataWorks智能數(shù)據(jù)建模)
- 未來規(guī)劃
01
模型背景&問題
1. 整體情況
首先介紹淘系的整體數(shù)據(jù)背景。
淘系的數(shù)據(jù)中臺(tái)成立至今已有7年左右,一直未作數(shù)據(jù)治理,整體數(shù)據(jù)生成構(gòu)成比為:人工創(chuàng)建(22%)+機(jī)器生成78%。其中活躍數(shù)據(jù)占比:9%,不規(guī)范數(shù)據(jù)占比:21%。
數(shù)據(jù)活躍以倒三角形狀分布,整體分布比例為ads:dws:dwd:dim=8:2:1:1,分布還算合理。
上圖中下半部分是模型的生命周期,增長和留存情況。淘系的業(yè)務(wù)還屬于快速變化中,模型變化比較快。模型生命周期為25個(gè)月,模型年增長比例30%,模型留存44%。
2. 公共層
公共層兩大核心問題為:
- 公共層表復(fù)用性不高
在2014年的時(shí)候公共層還比較規(guī)范,但可持續(xù)性不強(qiáng)。隨著時(shí)間流逝,業(yè)務(wù)增長和變化,復(fù)用性就逐年降低。因?yàn)榇蟛糠值臄?shù)據(jù)是應(yīng)用層做的,他們會(huì)開發(fā)自己的公共層,復(fù)用性降低,大部分都是無效表。
- 公共數(shù)據(jù)表在各個(gè)團(tuán)隊(duì)分布不合理
這是由于數(shù)據(jù)團(tuán)隊(duì)多,為了滿足業(yè)務(wù)開發(fā)效率,每個(gè)團(tuán)隊(duì)都有自己的公共表,容易出現(xiàn)公共表復(fù)用占比低,重復(fù)建設(shè)的場景,其中淘寶數(shù)據(jù)團(tuán)隊(duì)負(fù)責(zé)最多的公共數(shù)據(jù)表。
3. 應(yīng)用層分析
應(yīng)用層的主要問題包括:
第一,公共層建設(shè)不足或公共層透出不足。隨著時(shí)間增長,公共層的指標(biāo)不能滿足ads層的業(yè)務(wù)需要,ads復(fù)用指標(biāo)邏輯沒有下層,引用cdm層的ads表占比逐年降低,引用ads的ads表占比逐年增高。
第二,較多的ads表共性邏輯未下沉,統(tǒng)計(jì)顯示超過17.63%ads表被下游ads復(fù)用。
第三,跨集市依賴嚴(yán)重,統(tǒng)計(jì)顯示,整體跨集市依賴占比為30%,特別是大進(jìn)口和淘寶數(shù)據(jù)跨集市依賴達(dá)到了40%,影響模型的穩(wěn)定性,影響了模型的下線、修改。
02
問題分析
1. 問題匯總
以上這副圖是簡化后的數(shù)據(jù)模型,我們可以發(fā)現(xiàn)存在很多不規(guī)范問題影響了模型的穩(wěn)定性。業(yè)務(wù)在快速發(fā)展的情況下,為了快速響應(yīng)業(yè)務(wù)需求,產(chǎn)生模型問題是必然的。日常工作中,數(shù)據(jù)研發(fā)流程大致如下,接到業(yè)務(wù)需求,直接引用ODS層表開發(fā)ADS數(shù)據(jù),待數(shù)據(jù)需要復(fù)用的時(shí)候就把邏輯沉淀到公共層,同理指標(biāo)也會(huì)有類似情況。主要問題可以歸納為七點(diǎn):
- 系統(tǒng)臨時(shí)表多,只增不刪,對(duì)于消費(fèi)側(cè)影響較大,因?yàn)楸砹烤薮?,有效比例低,很難檢索到。
- 命名不規(guī)范。
- 公共層過度設(shè)計(jì)。
- ADS重復(fù)建設(shè)。
- ADS跨集市依賴。
- ADS共性未下沉。
- ADS穿透依賴ODS。
2. 原因分析
從問題分類上看,主要有三大類問題:規(guī)范性問題、公共層復(fù)用性問題和應(yīng)用層復(fù)用性問題。
從問題原因上看,主要有四大類原因:架構(gòu)規(guī)范、流程機(jī)制、產(chǎn)品工具,以及研發(fā)能力。
3. 模型治理的問題
模型治理的挑戰(zhàn):
①業(yè)務(wù)價(jià)值不明顯,治理帶來的是長期價(jià)值,短期對(duì)業(yè)務(wù)影響不大。
②治理協(xié)作復(fù)雜,治理需要ODS、CDM、ADS層多人多團(tuán)隊(duì)協(xié)作。
③問題治理難根治,容易出現(xiàn)新模型依賴有問題模型。
④模型平均生命周期不長(25個(gè)月)。
綜上所述,模型治理的ROI比較低,我們的問題就是如何模型治理才最高效。
03
治理方案
1. 整體方案
基于以上的問題原因分析,我們制定了如下治理方案。
核心策略為以下三點(diǎn):
①盤點(diǎn)存量,掌握數(shù)據(jù)的整體情況。
②規(guī)范增量,避免新增模型走老路,重復(fù)出現(xiàn)相同問題,考慮到數(shù)據(jù)的生命周期,歷史數(shù)據(jù)可以先不管。
③日常治理保健康,以數(shù)據(jù)化驅(qū)動(dòng)長期治理。
2. 機(jī)制規(guī)范
(1)架構(gòu)分層標(biāo)準(zhǔn)
往年我們關(guān)注的是數(shù)據(jù)視角,今年關(guān)注的是業(yè)務(wù)視角,業(yè)務(wù)視角核心訴求主要有四點(diǎn):交付效率、產(chǎn)出時(shí)效、質(zhì)量可靠、成本可控。過去OneData定義了每一層的作用,但每個(gè)層次的分工定位不清晰,針對(duì)這些問題重新做了清晰的定義。
應(yīng)用層核心是專注支持業(yè)務(wù),需要考慮研發(fā)效率、交付數(shù)據(jù)口徑一致性和穩(wěn)定性。
通過集市規(guī)范來控制復(fù)雜度,通過輕度聚合的中間層確??趶浇y(tǒng)一,通過扁平化設(shè)計(jì)確保穩(wěn)定。
公共層的核心是抽象復(fù)用來提升效率,需要考慮易用性和穩(wěn)定性。通過規(guī)范和冗余寬表提升復(fù)用性,通過解耦來確保穩(wěn)定性。
ODS層的核心是合規(guī)高效,需要考慮接入效率和性能穩(wěn)定。通過工具化提升效率、優(yōu)化治理確保性能的穩(wěn)定。特別是在數(shù)據(jù)達(dá)到一定量之后要考慮采用merge的方式接入數(shù)據(jù)。
(2)集市劃分規(guī)范
數(shù)據(jù)集市,是用來滿足特定部門或者用戶的需求,按照多維的方式進(jìn)行存儲(chǔ)。通過對(duì)相似數(shù)據(jù)業(yè)務(wù)場景內(nèi)聚進(jìn)行抽象分類,以降低ADS層重復(fù)建設(shè)和數(shù)據(jù)管理復(fù)雜度,讓應(yīng)用研發(fā)更聚焦更高效。
集市劃分的原則有以下兩點(diǎn):
原則一:以業(yè)務(wù)場景或者服務(wù)對(duì)象作為劃分原則,對(duì)相似數(shù)據(jù)業(yè)務(wù)場景內(nèi)聚抽象進(jìn)行分類。
原則二:集市劃分需要統(tǒng)一標(biāo)準(zhǔn),盡量符合MECE原則。
(3)公共層共建機(jī)制
在建設(shè)公共層的建設(shè)過程中,我們通常會(huì)遇到以下兩個(gè)痛點(diǎn):
- 應(yīng)用研發(fā)的痛點(diǎn):公共層相應(yīng)效率低。
- 公共層研發(fā)的痛點(diǎn):如果統(tǒng)一承接開發(fā)工作,涉及的業(yè)務(wù)很廣泛,研發(fā)資源不足。
為了解決以上兩個(gè)痛點(diǎn),我們通過以下核心原則來解決:
- 原則一:公共層開放共建,事后審計(jì)治理
應(yīng)用開發(fā)整理需求,把需要下沉的公共維度提給公共層研發(fā),公共開發(fā)需求評(píng)估。
- 原則二:以應(yīng)用需求驅(qū)動(dòng),設(shè)計(jì)開發(fā)共建 以需求為驅(qū)動(dòng),拆分出核心模型和非核心模型,核心模型公共研發(fā)負(fù)責(zé),非核心模型由業(yè)務(wù)開發(fā)進(jìn)行,共同開發(fā)以提高效率。
- 原則三:公共層研發(fā)統(tǒng)一運(yùn)維保障
非核心模型上線并完成相關(guān)測試(準(zhǔn)確性、確定性、治理)后轉(zhuǎn)交給公共層研發(fā),由公共層統(tǒng)一運(yùn)維。
3. DataWorks智能數(shù)據(jù)建模
在數(shù)據(jù)治理中有數(shù)據(jù)規(guī)范與共建機(jī)制依然是不夠的,還需要結(jié)合自動(dòng)化工具來提升效率、保障規(guī)范。我們是從以下4個(gè)方面入手的(詳情可以體驗(yàn)阿里云DataWorks的產(chǎn)品):
- 數(shù)據(jù)體系目錄結(jié)構(gòu)化
- 模型設(shè)計(jì)線上化
- 打通研發(fā)流程(自動(dòng)化生成簡代碼)
- 對(duì)接DataWorks地圖數(shù)據(jù)專輯
(1)數(shù)據(jù)目錄體系結(jié)構(gòu)化
形成數(shù)據(jù)體系目錄有利于了解掌握數(shù)據(jù),分門別類的方式降低了大家的使用成本。
首先要對(duì)表命名做一些管控,我們做了可視化的表命名檢測器,來確保規(guī)范性。另外,淘系不是一個(gè)單空間的數(shù)據(jù)體系,因此要解決跨多個(gè)空間的復(fù)雜數(shù)據(jù)體系的統(tǒng)一建模問題。
(2)模型設(shè)計(jì)線上化
改變模型設(shè)計(jì)方式,由線下設(shè)計(jì)遷移到線上,通過一些自動(dòng)化工具,提升效率,保證規(guī)范。
(3)打通研發(fā)流程(通過DataWorks自動(dòng)化生成簡代碼)
模型遷移到線上后,打通研發(fā)流程自動(dòng)生成簡代碼,生成代碼框架,建表語句,顯著提高了研發(fā)效率。
(4)對(duì)接DataWorks地圖數(shù)據(jù)專輯
形成相應(yīng)的地圖數(shù)據(jù)專輯,方便其他用戶使用數(shù)據(jù)。
4. 模型治理
(1)打分模型
模型治理需要量化,如果沒有量化全靠專家經(jīng)驗(yàn)效率是非常低的,我們通過模型的指標(biāo)形成到表級(jí)別的模型分,通過多維度對(duì)模型進(jìn)行打分。
(2)打分機(jī)制
精細(xì)化的打分機(jī)制,針對(duì)團(tuán)隊(duì)、數(shù)據(jù)域、核心進(jìn)行打分,形成相應(yīng)的標(biāo)簽。
(3)整體流程
以數(shù)據(jù)驅(qū)動(dòng),上圖左邊,以模型評(píng)估數(shù)據(jù)為出發(fā)點(diǎn),通過各個(gè)維度對(duì)模型進(jìn)行評(píng)估,得到各個(gè)域、各個(gè)團(tuán)隊(duì)的評(píng)分,形成相應(yīng)的問題標(biāo)簽。
以產(chǎn)品驅(qū)動(dòng),上圖右邊,通過專家經(jīng)驗(yàn)判斷新上線模型升級(jí)搜索權(quán)限、下線模型降權(quán)限,讓業(yè)務(wù)迅速感知數(shù)據(jù)變化,引導(dǎo)業(yè)務(wù)。
04
未來規(guī)劃
1. 應(yīng)用層效率
在整個(gè)數(shù)據(jù)體系中,應(yīng)用層的數(shù)據(jù)體量是最大的,投入了大量的人力。OneData缺少對(duì)應(yīng)用層的數(shù)據(jù)建設(shè)指導(dǎo),集市高度耦合,給運(yùn)維效率帶來了不少問題,如跨集市依賴、依賴深度的問題。過去都是以業(yè)務(wù)為主導(dǎo),為了保障研發(fā)效率放棄了部分研發(fā)規(guī)范,以后要完善應(yīng)用層的研發(fā)規(guī)范,同時(shí)通過工具做好研發(fā)效率與規(guī)范的平衡。
2. 架構(gòu)規(guī)范管控
基于分層標(biāo)準(zhǔn)落地,對(duì)研發(fā)過程規(guī)范完善,包括對(duì)設(shè)計(jì)、開發(fā)、運(yùn)維、變更、治理等規(guī)范進(jìn)行細(xì)化。
目前核心是表命名規(guī)范,對(duì)依賴規(guī)范、代碼規(guī)范、運(yùn)維規(guī)范等管控能力尚不足。
3. 產(chǎn)品工具提效
將繼續(xù)與DataWorks共建:
- 應(yīng)用層智能建模能力還不能滿足研發(fā)效率要求,因此會(huì)繼續(xù)功能提效。
- 數(shù)據(jù)測試功能集成。
- 數(shù)據(jù)運(yùn)維功能升級(jí)。
- 事中數(shù)據(jù)治理能力構(gòu)建(開發(fā)助手)。
- 事后治理能力提效(批量刪除、主動(dòng)推送優(yōu)化等)。
- 數(shù)據(jù)地圖,找數(shù)用數(shù)提效。
05
問答環(huán)節(jié)
Q:核心公共層的建設(shè)是自頂向下還是自底向上?
A:采用的是兩者相結(jié)合的方式。以需求為驅(qū)動(dòng),沒有需求就會(huì)導(dǎo)致過渡設(shè)計(jì),在應(yīng)用層有復(fù)用之后再下沉到公共層,這是自頂向下的。在公共層設(shè)計(jì)階段是面向業(yè)務(wù)過程的,這時(shí)是自底向上的。
Q:多BU公共層是否需要統(tǒng)一規(guī)范?怎么去做?怎么量化價(jià)值?
A:需要做統(tǒng)一的規(guī)范,規(guī)范利于數(shù)據(jù)流通,才能體現(xiàn)數(shù)據(jù)價(jià)值。但是具體怎么規(guī)范需要具體去看,如電商、本地生活,業(yè)務(wù)和目標(biāo)不一樣,很難做到統(tǒng)一的規(guī)范。
Q:怎么判斷指標(biāo)需要下沉到公共層?
A:公共層的開發(fā)是需要成本的,是否需要下沉到公共層核心是看是否需要復(fù)用,可以從兩個(gè)方面入手。
專家經(jīng)驗(yàn)判斷:如電商交易環(huán)節(jié)數(shù)據(jù),這類數(shù)據(jù)是核心數(shù)據(jù),是要建設(shè)到公共層的。
事后判斷:如玩法之類的業(yè)務(wù)穩(wěn)定性不強(qiáng),那一開始不需要下沉到公共層,避免過度設(shè)計(jì),事后再去判斷是否需要下沉。
Q:關(guān)于表、字段的命名規(guī)范,是否需要先定義好詞根再開發(fā)?
A:需要分開看。對(duì)于公共層設(shè)計(jì)到的業(yè)務(wù)過程是有限的,對(duì)于公共部分要先定義好再開發(fā)。對(duì)于應(yīng)用層,維度采用的是總建架構(gòu)所以還需要先定義,對(duì)于指標(biāo)特別是派生指標(biāo)是多的,不建議先定義在開發(fā)。
Q:如何解決口徑一致命名不一致,或者口徑不一致或者命名一致的場景。
A:模型是演變的。對(duì)于應(yīng)用層,80%都是自定義的,第一次出現(xiàn)的時(shí)候都是不標(biāo)準(zhǔn)的,這部分如果采用先定義后開發(fā)的方式,效率是很低的,只有在下沉到公共層的時(shí)候才能夠管控。對(duì)于公共層,能做的是保障核心指標(biāo)90%的規(guī)范與定義統(tǒng)一,剩下的那部分也無法保證。
Q:跨集市依賴下沉到公共層的必要性?
A:短期來看沒影響,新增效率高。長期來會(huì)給數(shù)據(jù)的運(yùn)維、治理帶來很多影響,在數(shù)據(jù)下線、變更、治理過程中不得不考慮到下游依賴,會(huì)影響全流程的開發(fā)效率。
參考材料:
- DataWorks官網(wǎng):https://www.aliyun.com/product/bigdata/ide
- DataWorks智能數(shù)據(jù)建模介紹:https://help.aliyun.com/document_detail/276018.html
本文經(jīng)授權(quán)發(fā)布,不代表增長黑客立場,如若轉(zhuǎn)載,請(qǐng)注明出處:http://gptmaths.com/cgo/product/73210.html