基於MaxCompute InformationSchema進行血緣關係分析

大濤學長發表於2019-12-23

一、需求場景分析

在實際的資料平臺運營管理過程中,資料表的規模往往隨著更多業務資料的接入以及資料應用的建設而逐漸增長到非常大的規模,資料管理人員往往希望能夠利用後設資料的分析來更好地掌握不同資料表的血緣關係,從而分析出資料的上下游依賴關係。
本文將介紹如何去根據MaxCompute InformationSchema中作業ID的輸入輸出表來分析出某張表的血緣關係。

二、方案設計思路

MaxCompute Information_Schema提供了訪問表的作業明細資料tasks_history,該表中有作業ID、input_tables、output_tables欄位記錄表的上下游依賴關係。根據這三個欄位統計分析出表的血緣關係

1、根據某1天的作業歷史,通過獲取tasks_history表裡的input_tables、output_tables、作業ID欄位的詳細資訊,然後分析統計一定時間內的各個表的上下游依賴關係。
2、根據表上下游依賴推測出血緣關係。

三、方案實現方法

參考示例一:

(1)根據作業ID查詢某表上下游依賴SQL處理如下:


結果如下圖所示:


(2)根據結果可以分析得出每張表張表的輸入表輸出表以及連線的作業ID,即每張表的血緣關係。

血緣關係點陣圖如下圖所示:


中間連線為作業ID,連線起始為輸入表,箭頭所指方向為輸出表。

參考示例二:

以下方式是通過設定分割槽,結合DataWorks去分析血緣關係:

(1)設計儲存結果表Schema


(2)關鍵解析sql


(3)任務依賴關係



(4)最終血緣關係


以上血緣關係的分析是根據自己的思路實踐去完成。真實的業務場景需要大家一起去驗證。所以希望大家有需要的可以根據自己的業務需求去做相應的sql修改。如果有發現處理不當的地方希望多多指教。我在做相應的調整。


本文作者:劉-建偉 

原文連結

本文為阿里雲內容,未經允許不得轉載。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69915408/viewspace-2669981/,如需轉載,請註明出處,否則將追究法律責任。

相關文章