淺談數倉的數據治理
?絕大數公司建立數倉之初是沒有考慮好數據治理怎么做的,因為數據部門剛開始成立,必然要有一些“數據驅動”的成果,而數據治理不能很好的體現這些業績。所以,都是在業務發展的過程中,逐漸遇到了一些數據問題,才考慮做這件事的。
1.如何開始數據治理?
首先從數據管理開始,在開始數據治理之前,我們要先梳理數倉的核心資產。從數據的采集到數據的加工,再到數據的應用(包括數倉報表數據、指標數據)。
那么對于業務數據源,我們要明確數倉中主要的數據源都來自哪些業務系統,哪些關鍵流程,明確關鍵來源數據的數據負責人,結合業務制定數據管理規范。
2.數倉數據治理的思路
數倉的數據治理可以從以下幾個關鍵點入手:數據目錄重新劃分,提高模型復用度,ETL任務優化、數據質量監控。
數據目錄劃分:
很多數倉剛開始設計的時候是沒有完整清晰的規劃的,慢慢數據目錄會變得混亂無序,找某個模型會變得很繁瑣。那么,這時候一個好的目錄設計,會幫助我們理清數倉的架構,快速的查找定位模型,比如是在哪個層、哪個業務域等。 這些都清晰的展示出來時,數據開發的效率就會有快速的提升了。
模型復用:
離線數倉一般團隊都比較大,上次跟快手的一個朋友聊,他們離線數倉都有上百人。所以模型的復用一定要關注,,比如關注一些復用度較高的字段,可以放到中間層統一處理,也就是我們說的有個大寬表提供復用;比如復用較高的函數或者邏輯,我們開發統一的UDF函數,提高數據處理性能。
任務優化:
每當你申請資源時,領導都會問你要價值和用途,其實除了申請額外的資源,我們還可以優化現有的資源。因為在數倉開發過程中,大家的技術水平良莠不齊,對業務理解程度相差甚大,那么此時,每個人開發的ETL任務的質量必然不一樣。所以,我們需要時常對任務的執行時長和調用的資源進行監控,展開專項優化,比如降低輸入數據量,大量distinct操作使用groupby替換等。當然,管理上可以把任務執行效率作為一個考核項,對不達標的進行晾曬。
數據質量:
主要是數據重復、空值、數據異常等情況的監控,一定要配置規則校驗。上次直播,我講過,并不是任務執行成功就完事大吉了,有時候任務執行成功的代價更為慘重。比如,以前的一個項目,會給老板推送業務指標短信,所以對這個任務加了失敗告警監控,但是沒有對內容進行校驗,導致因為業務的異常數據,引起最后的指標異常,老板很生氣,后果很嚴重。所以,我們還要考慮對于一些關鍵業務的數據指標監控,發現異常,及時終止下游任務,進行告警。當然,數據質量還有很多工作,之前的一篇文章也講過,可以閱讀《談談ETL中的數據質量》
3.總結
總而言之,數倉數據治理的價值很難量化,所以有很多數據團隊不愿意去做,但是不做,會很“癢”。
如果,你開始做數倉治理了,那么就要做好長期作戰的準備了,比如制定一些月度的資產管理相關的會議,進行回顧,定期對低效率任務進行優化,這都是需要一套管理機制的,而管理機制落地的最好方式應該就是和績效考核綁定了。?