數據資產與治理:淺談數據血緣的作用與價值
在數據資產管理與數據治理領域,數據之間的血緣關系是一個繞不開的話題,數據血緣的完備程度也是評價一個企業數據中臺成熟度的重要度量之一。到底什么是數據血緣,它對于數據工作者和數據使用者有哪些舉足輕重的作用呢?
一、從數據應用場景看什么是數據血緣
1.數據問題排查與運維
工作日早上上班,業務人員打開電腦看到昨日數據報表同比下降60%,于是找到數據部門“你們數據是不是有問題?”。
常見數據異常的原因包括:
- 及時性問題,大數據集群資源不足或者平臺系統故障導致任務延遲
- 代碼質量問題,開發修改邏輯,導致數據清洗邏輯有誤帶來數據不準
- 業務規則變更,業務變動數據加工代碼未及時更新
- 源端臟數據問題,業務開發系統發布數據源問題導致結果錯誤
數據人員的排查路徑如下:
第一步:找到報表指標來源的API接口,確定來源數據表(可能是GP表或者ClickHouse表)
第二步:查找GP表對應的數據同步任務,以及Hive表的產出任務,查看任務是否正常執行完畢
第三步:找到Hive表加工任務的上游,逐層向上排查,先保證整個鏈路的任務都是正常執行的,因為及時性問題是最高頻、常見且容易處理的問題
第四步:檢查數據加工流程各項正常后,再看指標產出表的加工代碼,一是看是否近期有人為變更,二是翻代碼校驗對應的邏輯,按照指標加工的代碼層級逐級定位有問題的數據表。
第五步:通過層層排查,定位了問題,但是問題的修復和數據重跑需要些時間,得趕緊通知下游,避免錯誤數據給業務帶來的錯誤決策和應用,比如錯把老客算成新客,帶來營銷費用損失,數據開發就要背鍋了。
2.數據治理與成本優化
數據部門通常是一個企業的成本中心(toB商業化數據產品除外),一個中大型數據驅動的互聯網企業大數據集群服務器一般會占公司服務器比例在15%~30%,一臺服務器成本4W,每天10PB數據存儲和計算處理量,大概需要1000+服務器節點,機器折舊周期3年算,平均個月也需要大幾十萬的硬件成本。
所以,數據部門除了做增量的業務支撐外,還要常態化的數據治理,把長期沒人使用的冷數據進行刪除,釋放存儲和計算資源。直接刪庫跑路肯定不行,刪除或歸檔任何一個數據,都需要盡可能全面的確認到底有沒有下游的業務方在使用。
3.數據血緣的定義
數據血緣,顧名思義,數據之間的血緣關系,好比人之間親情遠近親疏一樣。
百科定義:數據血緣關系是指數據在產生、處理、流轉到消亡過程中,數據之間形成的一種類似于人類社會血緣關系的關系。數據血緣從數據角度可以是數據庫、表、字段、系統、應用程序,即數據存儲在什么數據庫的什么表,對應的字段是什么以及字段的屬性。從業務角度主要是數據所屬業務線,涉及到業務便要梳理清楚數據的產生邏輯、數據的使用邏輯以及業務線之間的關聯關系。因為數據的生產加工最終是要回歸和賦能業務,什么數據,被哪個業務場景使用,需要血緣關系進行串聯。
二、數據血緣作用與表現形式
1.數據血緣的作用
開篇的場景中的案例是數據血緣的兩個典型的作用,總結成一句話就是數據血緣可以幫助數據生產者以及消費者更好地對數據進行追根溯源,提升數據運維、數據治理的效率。
(1)提升數據問題排查效率
數據從生產到賦能業務應用經過很多的處理環節,業務端報表或數據應用服務異常時,需要第一時間定位問題,排查修復。如果靠一層一層的人肉翻代碼效率非常低下,一方面數據開發人力花費在排查上,另一方面定位問題時間越長業務影響和損失越大,基于血緣數據加以可視化的展現形式,可以直觀地發現數據生產鏈路,以及各個環節有無異常。
(2)有助于優化數據資產成本
隨著業務地發展數據不斷增長,任務、數據表只增不減會不斷膨脹大數據資源成本。很多時候不是不愿意做數據、服務治理,二是不敢。也就是不知道對應的服務有哪些業務在使用,缺少治理的依據,與其直接下線帶來業務影響,倒不如一直維持現狀。構建全面準確的全鏈路數據血緣,就可以找出數據下游應用方,做好溝通和信息同步,長期沒有調用的服務,及時做下線處理,節省數據成本。
(3)提升數據產品及應用體驗
數據部門經常被業務Diss數據是不是有問題,長此以往,會降低業務對數據準確度的信任,搞數據的天天被打上數據不準的標簽還是很無奈的。在數據產出任務層面對數據質量的準確性、一致性、及時性、完整性等維度進行監控覆蓋,觸發報警機制后,利用數據血緣關系,對下游應用進行通知提醒。業務看到后,至少知道數據部門在處理問題了,不會利用錯的數據做錯誤的決策,或者形成每次都是業務先發現問題的認知。
(4)方便確認數據處理邏輯
業務部門在使用數據時,有時候需要確認數據口徑和加工邏輯是什么,是否符合自己的需求,通過血緣的可視化展示,可以方便業務部門查看數據的處理過程。
2.血緣的表現形式
每個數據表、字段、指標都可以認為是一個數據實體,而生產它的上游,以及使用它的下游,都是對應的數據實體之間的關系,因此,在血緣數據的可視化展示時,主要采用可以直觀表示數據生產鏈路的形態,每個節點需要包含以下要素:
當前節點信息:名稱、類型、狀態
- 上游:關系、上游名稱、類型、狀態
- 下游:關系、上游名稱、類型、狀態
三、血緣數據獲取與數據存儲
1.血緣數據的獲取方式
數據血緣的獲取主要有程序解析與人工采集兩種方式。比如流式數據處理的flink任務,從哪個源(source)的Kafka topic,加工清洗后,存儲到哪個Sink,離線批處理任務Hive數倉模型,也可以基于SQL輸入輸出表進行解析得到。數據開發調度任務之間的依賴關系等。一般早期時因技術和實現成本問題,血緣會以Hive數據源為主,但實際應用時,只有構建成全鏈路的數據血緣,才能最大發揮其價值。
所以在相關數據平臺、系統建設時,要有意識的進行血緣數據的采集。人工采集主要是程序解析的輔助形式,畢竟從統計的概率上看,人比機器更容易犯錯。對于一些Jar包短期難以解析的流程,可以輔以人工輸入的形式。
2.血緣數據的存儲演進
雖然傳統的MySQL數據庫也可以存儲血緣數據,但是由于血緣數據的形態以及查詢使用的場景對性能要求更高,所以在實際應用時,主要采用圖數據庫存儲的方式。常見的圖數據庫的特點對比如下:
圖片來源網絡
四、總結
數據血緣是數據開發者效能提升利器,同時也是貫通數據采、存、管、用全鏈路流程的紐帶,建立完善的數據血緣關系,數據應用的成熟度才會更高。針對數據血緣這一領域,也可以構建獨立的數據產品模塊,以數據產品提升血緣應用的效率。
專欄作家
數據干飯人,微信號公眾號:數據干飯人,人人都是產品經理專欄作家。專注數據中臺產品領域,覆蓋開發套件,數據資產與數據治理,BI與數據可視化,精準營銷平臺等數據產品。擅長大數據解決方案規劃與產品方案設計。
本文原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發揮!