導(dǎo)讀:在數(shù)據(jù)開發(fā)和數(shù)倉建設(shè)過程中,數(shù)據(jù)治理落地和提升數(shù)據(jù)質(zhì)量的重要性逐漸凸顯,本文將從貨拉拉的數(shù)據(jù)治理實(shí)踐出發(fā),分享貨拉拉在數(shù)據(jù)治理體系構(gòu)建、數(shù)據(jù)質(zhì)量平臺建設(shè)、元數(shù)據(jù)平臺建設(shè)方面的實(shí)踐。
分享嘉賓|陳元&張放 貨拉拉
編輯整理|沈奕辰
01?貨拉拉數(shù)據(jù)治理體系
首先和大家分享下數(shù)據(jù)治理的背景和現(xiàn)狀。
1. 背景與現(xiàn)狀
我們在做數(shù)據(jù)開發(fā)或數(shù)倉建設(shè)過程中,會遇到大量問題,有些會導(dǎo)致成本和數(shù)據(jù)質(zhì)量問題,有些會影響數(shù)據(jù)鏈路穩(wěn)定性。比如數(shù)據(jù)表沒有生命周期或無效的任務(wù)空跑,會造成成本浪費(fèi);又比如數(shù)據(jù)字典不規(guī)范、缺乏監(jiān)控規(guī)范,以及數(shù)據(jù)問題不能及時(shí)發(fā)現(xiàn),會造成數(shù)據(jù)質(zhì)量問題,甚至導(dǎo)致鏈路穩(wěn)定性。

2. 數(shù)據(jù)治理關(guān)鍵環(huán)節(jié)
基于以上背景,我們在以下四個(gè)環(huán)節(jié)做了相應(yīng)工作:

組織保障:明確成員角色,明確職責(zé)分工;我們成立了存儲治理小組、計(jì)算治理小組,以及穩(wěn)定性保障小組。?
制度建設(shè):制定標(biāo)準(zhǔn)流程,保證落實(shí)執(zhí)行;如我們制定了大數(shù)據(jù)接入規(guī)范、數(shù)據(jù)開發(fā)規(guī)范、數(shù)據(jù)模型規(guī)范,這些都是需要長期推廣和落地的過程。?
項(xiàng)目落地:開展專項(xiàng)治理動作,比如存儲治理、計(jì)算治理等;實(shí)踐證明專項(xiàng)治理的效果比較明顯,但問題是比較耗時(shí)耗力;不是長效機(jī)制,是一種運(yùn)動式的治理,需要把能力產(chǎn)品化,讓數(shù)據(jù)責(zé)任方自助式治理,驅(qū)動自主治理。?
平臺支撐:研發(fā)支撐系統(tǒng),提質(zhì)增效。
今天我的分享主要是圍繞平臺支撐這個(gè)環(huán)節(jié)開展,其他三個(gè)環(huán)節(jié),是接下來由其他老師帶來。

貨拉拉數(shù)據(jù)治理產(chǎn)品體系,由數(shù)據(jù)質(zhì)量管理平臺、元數(shù)據(jù)管理平臺以及數(shù)據(jù)安全管理平臺這三個(gè)平臺支撐。
元數(shù)據(jù)管理平臺包含數(shù)據(jù)地圖、數(shù)據(jù)血緣分析、數(shù)據(jù)模型管理、成本管控、數(shù)據(jù)資產(chǎn)管理。
數(shù)據(jù)地圖主要提供找數(shù)據(jù)和幫助用戶理解數(shù)據(jù)的能力。
數(shù)據(jù)血緣分析主要是在數(shù)據(jù)鏈路出現(xiàn)問題的時(shí)候,幫助排查定位問題。
數(shù)據(jù)模型管理,提供規(guī)范落地能力:把所有正式表的建表收歸到數(shù)據(jù)模型管理平臺。這樣的好處是,如數(shù)據(jù)安全等級、數(shù)據(jù)生命周期都會有設(shè)置,防止數(shù)據(jù)出現(xiàn)無序增長的趨勢。?
成本管控平臺,它的作用是度量當(dāng)前數(shù)據(jù)資源有哪些,資源消耗是怎樣的,每天花了多少錢。
輔助治理措施:冷數(shù)據(jù)歸檔、數(shù)據(jù)生命周期管理能力。?
成本運(yùn)營機(jī)制:可以讓用戶自驅(qū)地做成本運(yùn)營,不用做保姆式的人治。
數(shù)據(jù)資產(chǎn)管理:主要提供數(shù)據(jù)目錄管理、數(shù)據(jù)標(biāo)準(zhǔn)管理,供評估數(shù)據(jù)資產(chǎn);?
數(shù)據(jù)質(zhì)量管理:提供全鏈路的數(shù)據(jù)質(zhì)量監(jiān)控,有問題可以及時(shí)發(fā)現(xiàn)和處理,防止問題進(jìn)一步擴(kuò)散,可以及時(shí)止損。
02?數(shù)據(jù)質(zhì)量平臺建設(shè)實(shí)踐
1. 面臨的數(shù)據(jù)質(zhì)量問題有哪些

數(shù)據(jù)開發(fā)過程中會遇到很多問題,如:
表未按時(shí)產(chǎn)出
上游數(shù)據(jù)錯(cuò)誤,污染下游,導(dǎo)致鏈路異常
埋點(diǎn)數(shù)據(jù)丟失,無監(jiān)控造成數(shù)據(jù)丟失無法發(fā)現(xiàn)
報(bào)表數(shù)據(jù)異常,造成決策錯(cuò)誤?
2. 產(chǎn)生數(shù)據(jù)質(zhì)量問題的原因

產(chǎn)生數(shù)據(jù)質(zhì)量問題的原因,歸結(jié)為四個(gè)方面:?
業(yè)務(wù)端:業(yè)務(wù)源系統(tǒng)變更,或業(yè)務(wù)端數(shù)據(jù)輸入不規(guī)范,會導(dǎo)致數(shù)據(jù)生產(chǎn)以及數(shù)據(jù)接入出現(xiàn)異常。
技術(shù)端:數(shù)據(jù)開發(fā)過程中出現(xiàn)的 Bug,或任務(wù)參數(shù)配置錯(cuò)誤,導(dǎo)致任務(wù)運(yùn)行失敗。?
基礎(chǔ)設(shè)施:計(jì)算資源不足,或網(wǎng)絡(luò)帶寬不足,磁盤被打滿,也會影響數(shù)據(jù)產(chǎn)出。?
管理端:缺乏質(zhì)量意思,缺乏有效質(zhì)量問題處理機(jī)制,質(zhì)量問題會越來越嚴(yán)重。?
3. 數(shù)據(jù)質(zhì)量保障思路
分為事前、事中、事后三個(gè)部分:

事前:制定機(jī)制、標(biāo)準(zhǔn)流程和質(zhì)量檢查規(guī)則,預(yù)防質(zhì)量問題。?
事中:數(shù)據(jù)質(zhì)量平臺搭建,可以監(jiān)控全鏈路數(shù)據(jù)質(zhì)量。?
事后:發(fā)現(xiàn)質(zhì)量問題要及時(shí)修復(fù),并考核數(shù)據(jù)鏈路質(zhì)量,驅(qū)動數(shù)據(jù)鏈路負(fù)責(zé)人做數(shù)據(jù)質(zhì)量提升。?
4. 貨拉拉數(shù)據(jù)質(zhì)量平臺
貨拉拉數(shù)據(jù)質(zhì)量平臺是一站式數(shù)據(jù)質(zhì)量管理平臺,用戶基本上不用編寫代碼,就可以完成質(zhì)量規(guī)則配置,完成質(zhì)量檢測,支持自助生成質(zhì)量報(bào)告。

(1)平臺特點(diǎn)?
? 零代碼一站式質(zhì)量監(jiān)測。
支持表維度管理和主題維度管理:表維度是對單張表做質(zhì)量規(guī)則配置,主題維度是對同一類別的表做相同類別的質(zhì)量配置。
借助了元數(shù)據(jù)平臺中的數(shù)據(jù)血緣,完成整個(gè)數(shù)據(jù)鏈路的質(zhì)量規(guī)則配置。
當(dāng)質(zhì)量規(guī)則配置完成后,會生成一個(gè)質(zhì)量檢測任務(wù),用戶可以手動觸發(fā)制定,也可以設(shè)置周期性調(diào)度執(zhí)行,也可以去任務(wù)調(diào)度平臺觸發(fā)執(zhí)行。因?yàn)橐粋€(gè)任務(wù)對應(yīng)一些輸出表,當(dāng)輸出表落地后,會觸發(fā)這個(gè)表關(guān)聯(lián)的質(zhì)檢規(guī)則執(zhí)行。如果關(guān)聯(lián)的質(zhì)檢規(guī)則是強(qiáng)規(guī)則,且強(qiáng)規(guī)則檢測未通過,會阻斷下游任務(wù)執(zhí)行,就能阻止數(shù)據(jù)質(zhì)量問題進(jìn)一步擴(kuò)散。
質(zhì)檢完成后,會生成質(zhì)量報(bào)告;對于質(zhì)量檢測不通過的,會觸發(fā)告警。嚴(yán)重的會觸發(fā)熔斷。?
(2)數(shù)據(jù)質(zhì)量平臺架構(gòu)設(shè)計(jì)

? 從圖中看可以看出,后端的很多服務(wù)都是多實(shí)例部署的:比如 API 向前端提供接口服務(wù);與數(shù)據(jù)庫所有交互的請求都會走網(wǎng)關(guān)服務(wù);還有負(fù)責(zé)任務(wù)調(diào)度的服務(wù)。API 和網(wǎng)關(guān)服務(wù)都是無狀態(tài)的服務(wù),用微服務(wù)架構(gòu)部署的,是多實(shí)例部署,如果一個(gè)實(shí)例掛了,流量會打到另外一個(gè)實(shí)例上面去,保證穩(wěn)定性、高可用。但 Scheduler 是有狀態(tài)的,因?yàn)樗厦婷繒r(shí)每刻都在運(yùn)行一些任務(wù),不能只是多實(shí)例部署就可以,而是需要主備架構(gòu)。
我們用了 Zookeeper 做 Leader 選舉,當(dāng)一個(gè) Scheduler 掛掉之后,就會把另一個(gè) Scheduler 拉起,把掛掉的 Scheduler 上的任務(wù)遷移到新起的 Scheduler 上。這樣能保證任務(wù)不會掛掉,不會影響到數(shù)據(jù)質(zhì)量檢測。最開始計(jì)算引擎只用了 Hive,后來用了我們公司自主研發(fā)的混合引擎服務(wù),自動會把符合條件的 SQL 錄用到 Presto 上去,Presto 是基于內(nèi)存計(jì)算的分析引擎,速度比 Hive 快很多,下面會展示具體的提升效果。
圖中展示的效果比較明顯,圖中綠色折線表示混合引擎的執(zhí)行效果,黃色的是 Hive 的執(zhí)行效果。基本混合引擎可以保證 85% 的質(zhì)量檢測任務(wù)都會在 20s 內(nèi)完成。現(xiàn)在 80% 的質(zhì)量檢測任務(wù)都會在 5s 內(nèi)完成,98% 的質(zhì)量檢測任務(wù)速度都會有 79% 的提升(之前 Hive 用 915s,現(xiàn)在混合引擎只需 192s),可以大大提升數(shù)據(jù)質(zhì)量檢測效率,不會影響數(shù)據(jù)鏈路的產(chǎn)出時(shí)間。
(3)數(shù)據(jù)質(zhì)量平臺規(guī)則體系包含完整性、準(zhǔn)確性、一致性、及時(shí)性。在配置規(guī)則的時(shí)候,一張表可以應(yīng)用多個(gè)模板,配相應(yīng)規(guī)則。規(guī)則模板和規(guī)則的區(qū)別是,規(guī)則模板已經(jīng)配了相應(yīng)的閾值和調(diào)度時(shí)間,以及其他規(guī)則信息,只是還沒有和表關(guān)聯(lián),為了提升規(guī)則配置效率。這部分還和元數(shù)據(jù)平臺做了聯(lián)動:所有建表操作,都會統(tǒng)一在元數(shù)據(jù)平臺完成,所以元數(shù)據(jù)平臺會輸入字段約束、值閾檢查一些信息給規(guī)則模板,這時(shí)候規(guī)則模板只要和表實(shí)例關(guān)聯(lián),就可以完成規(guī)則配置,可以大大提升質(zhì)量規(guī)則提升效率。之后有規(guī)劃將數(shù)據(jù)標(biāo)準(zhǔn)管理平臺的標(biāo)準(zhǔn)作為輸入,如數(shù)據(jù)長度、碼表、值閾等等信息,這樣可以進(jìn)一步節(jié)省規(guī)則配置的時(shí)間。

(4)數(shù)據(jù)質(zhì)量平臺熔斷機(jī)制下面再介紹一下數(shù)據(jù)質(zhì)量平臺熔斷機(jī)制的
運(yùn)行流程:

首先任務(wù)開發(fā)平臺里的任務(wù)對應(yīng)多個(gè)輸出表,當(dāng)任務(wù)被調(diào)度執(zhí)行的時(shí)候,會觸發(fā)質(zhì)量規(guī)則的校驗(yàn)。如果規(guī)則不通過,會觸發(fā)熔斷阻塞,下游任務(wù)不會執(zhí)行,讓質(zhì)量問題不會進(jìn)一步擴(kuò)散。
(5)數(shù)據(jù)質(zhì)量平臺質(zhì)量報(bào)告

上圖是質(zhì)量報(bào)告截圖,支持多角度質(zhì)量績效分評分,并且支持用戶自定義評分依據(jù)和權(quán)重。
(6)數(shù)據(jù)質(zhì)量平臺監(jiān)控告警監(jiān)控告警是為了及時(shí)發(fā)現(xiàn)數(shù)據(jù)質(zhì)量問題。

問題主要分為三類:
一般問題:只需要郵件通知
重要問題:郵件+飛書通知
嚴(yán)重問題:郵件+飛書+電話通知?
(6)數(shù)據(jù)質(zhì)量平臺運(yùn)行現(xiàn)狀

目前已經(jīng)接入 1500 多張表,每個(gè)月都會發(fā)生 300 次以上數(shù)據(jù)質(zhì)量問題數(shù),今年以來熔斷阻塞了 14 次,有效保障了數(shù)據(jù)質(zhì)量和鏈路穩(wěn)定性。
(7)數(shù)據(jù)質(zhì)量平臺未來規(guī)劃

其實(shí)現(xiàn)在整體數(shù)據(jù)質(zhì)量水平不能直接度量和觀察,所以下一步我們要規(guī)劃整體的質(zhì)量治理體系,支持自驅(qū)的數(shù)據(jù)質(zhì)量治理;支持 OLAP 場景的質(zhì)量檢測和實(shí)時(shí)場景的數(shù)據(jù)質(zhì)量檢測。我的介紹就到這里,下面將由張放介紹元數(shù)據(jù)管理平臺,歡迎。
03??元數(shù)據(jù)平臺建設(shè)實(shí)踐
線上的老師同學(xué)下午好,接下來將由我為大家介紹貨拉拉的元數(shù)據(jù)管理平臺。大數(shù)據(jù)體系在發(fā)展到一定規(guī)模,就會面臨:怎樣找到需要的數(shù)據(jù),如何梳理出上下游關(guān)系,數(shù)據(jù)治理靠什么來驅(qū)動,數(shù)據(jù)資產(chǎn)管理等問題;元數(shù)據(jù)管理平臺就是為了解決以上這些問題。今天從以下四方面展開元數(shù)據(jù)管理平臺介紹:平臺介紹、成本治理體系、數(shù)據(jù)血緣、未來規(guī)劃。1.? 平臺介紹

平臺的建設(shè)思路是:定規(guī)范、做治理、建能力、做運(yùn)營。
系統(tǒng)架構(gòu)圖左邊展示了元數(shù)據(jù)管理平臺的基礎(chǔ)設(shè)施、平臺/工具和業(yè)務(wù)系統(tǒng);右邊的應(yīng)用層,提供數(shù)據(jù)地圖、數(shù)據(jù)血緣、數(shù)據(jù)安全等能力,支撐上層的數(shù)據(jù)倉庫、成本管理、數(shù)據(jù)分析、數(shù)據(jù)服務(wù)、數(shù)據(jù)模型等應(yīng)用場景,在整個(gè)數(shù)據(jù)治理體系中扮演了非常重要的角色。

這里也對大廠的元數(shù)據(jù)平臺進(jìn)行了調(diào)研,列舉了他們在元數(shù)據(jù)基建以及核心應(yīng)用場景的建設(shè)情況。總體來說,大廠元數(shù)據(jù)管理核心應(yīng)用場景建設(shè)都比較完善。貨拉拉元數(shù)據(jù)管理平臺對標(biāo)大廠,目前處于約 50% 的水平,還處在發(fā)展階段。
2. 成本治理體系
介紹完平臺總體框架,下面介紹本次分享的重要部分,成本治理體系。降本增效目前是行業(yè)趨勢,而建設(shè)成本治理體系是數(shù)據(jù)治理中非常必要的一環(huán)。下面將介紹基于元數(shù)據(jù)平臺,貨拉拉在這方面主要做了哪些工作。

(1)以存儲治理為例,在沒有治理的情況下,主要面臨以下問題:
表數(shù)量大
增長快速
冷數(shù)據(jù)占比多:約33%的數(shù)據(jù)90天內(nèi)無訪問,但是這些冷數(shù)據(jù)存儲成本消耗和標(biāo)準(zhǔn)存儲是一樣的,造成很大的成本浪費(fèi)?
(2)圍繞存儲和計(jì)算成本高的問題,建設(shè)了成本治理體系。

圖中是成本治理體系的
框架:
首先建立資源預(yù)算機(jī)制,通過預(yù)算預(yù)警和限制,從部門層面控制整體成本使用。
其次,落地?cái)?shù)據(jù)資產(chǎn)度量體系。能夠清晰掌握各項(xiàng)資源消耗,并核算成部門和個(gè)人級別的成本明細(xì),轉(zhuǎn)換成健康分,就能非常客觀地度量成本使用情況。
并且,配合有效的輔助治理措施,對離線存儲和計(jì)算任務(wù)進(jìn)行技術(shù)優(yōu)化。
有了數(shù)據(jù)資產(chǎn)度量和輔助治理體系,再推廣資產(chǎn)健康分紅黑榜,對個(gè)人和部門實(shí)施獎(jiǎng)懲措施,促使用戶和業(yè)務(wù)部門主動參與到成本治理中,提升健康度,形成良性循環(huán),最終達(dá)到成本目標(biāo)。
(3)下面具體介紹成本度量和展示的實(shí)現(xiàn)思路:

從下至上:
最下面是數(shù)據(jù)源層,成本消耗主要來自于計(jì)算任務(wù)產(chǎn)出的表、報(bào)表、標(biāo)簽等數(shù)據(jù)資產(chǎn),它們分散在基礎(chǔ)設(shè)施各處。
要度量這些資產(chǎn)的成本數(shù)據(jù),需要從各個(gè)平臺或引擎采集消耗的明細(xì)數(shù)據(jù),以個(gè)人或部門維度統(tǒng)計(jì)分析。
經(jīng)過平臺數(shù)倉層,加工成可量化展示的成本數(shù)據(jù),并根據(jù)這些明細(xì)數(shù)據(jù)分析轉(zhuǎn)換成存儲和任務(wù)的健康分。用戶就可以非常直觀地知道自己名下哪些任務(wù)資源消耗大,哪些表占用存儲空間大;為推動任務(wù)優(yōu)化和存儲治理提供非常有利的數(shù)據(jù)支撐。相比以往需要人工核算成本賬單,現(xiàn)在自動化統(tǒng)計(jì)運(yùn)營的過程,更加精確高效,也節(jié)約了人工成本。?
(4)下面再介紹輔助治理的具體方案:

冷熱分層和歸檔?
上圖左邊的曲線,是通過綜合分析歸檔,以及歸檔后數(shù)據(jù)取回的花費(fèi),得到歸檔最近 90 天數(shù)據(jù)被訪問次數(shù)和收益占比的關(guān)系圖;通過該關(guān)系圖可給到分區(qū)的冷熱分層(即熱、溫、冷、冰)定義。冰數(shù)據(jù)占比 50%,熱數(shù)據(jù)僅 15%,分別采用不同的存儲策略,分階段地對冰、冷數(shù)據(jù)進(jìn)行歸檔,降低存儲成本。以下是分層和歸檔的概要設(shè)計(jì):

各平臺系統(tǒng)提交的 SQL 經(jīng)過引擎執(zhí)行,解析為具體的分區(qū)訪問記錄,統(tǒng)計(jì)出分區(qū)級別的熱度信息;采集文件系統(tǒng)的文件記錄,得到文件的熱度信息,join得到最終的分區(qū)熱度信息表,根據(jù)該信息進(jìn)行后續(xù)的歸檔工作。在平臺層支持分區(qū)溫度展示,使用戶主動進(jìn)行分區(qū)歸檔工作。
生命周期管理

數(shù)據(jù)生命周期,正式表和臨時(shí)表采取不同的策略,將超過生命周期的分區(qū)滾動式地進(jìn)行清理操作。下圖是生命周期和歸檔配合控制表數(shù)據(jù)的增長。比如,用戶設(shè)置 180 天生命周期,和 90 天歸檔周期,生命周期之前的數(shù)據(jù)將被刪除,生命周期內(nèi),90 天之前的數(shù)據(jù)將被歸檔。運(yùn)用這兩種輔助治理手段,和數(shù)倉同學(xué)一起分階段持續(xù)推進(jìn)存量數(shù)據(jù)存儲治理,初期就能有較可觀的收益,同時(shí)推廣運(yùn)營產(chǎn)品化能力,全面覆蓋增量表,能有效抑制存儲增長趨勢。

這是目前存儲治理的收益情況,優(yōu)化前存儲呈線性快速增長,優(yōu)化后存儲8 個(gè)月零增長并持續(xù)下降,目前累計(jì)節(jié)省約 54% 的存儲成本。
3. 數(shù)據(jù)血緣

數(shù)據(jù)血緣主要有四個(gè)方面的應(yīng)用場景:
數(shù)據(jù)資產(chǎn):提供數(shù)據(jù)資產(chǎn)的熱度統(tǒng)計(jì),幫助理解數(shù)據(jù)上下文
數(shù)據(jù)開發(fā):支持影響分析和問題數(shù)據(jù)溯源
數(shù)據(jù)治理:鏈路狀態(tài)追蹤,幫助數(shù)倉進(jìn)行治理工作
數(shù)據(jù)安全:安全合規(guī)檢查以及字段安全級別傳播
以下是數(shù)據(jù)血緣的
架構(gòu)圖:

從引擎組件、大數(shù)據(jù)開發(fā)平臺等,采集血緣信息和對應(yīng)任務(wù)信息,經(jīng)實(shí)時(shí)和離線解析,包括 SQL 解析和指標(biāo)/報(bào)表血緣解析等,將解析出來的輸入輸出關(guān)系落到元數(shù)據(jù)系統(tǒng)中,供上層查詢,并提供影像分析等能力。
4. 未來規(guī)劃
元數(shù)據(jù)的未來規(guī)劃,圍繞以下四方面建設(shè):

(部分內(nèi)容來源網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系刪除)