一、背景介紹

資料對於企業的重要性不必贅述;

目前文字資料的儲存格式,大體分為兩種:結構化和非機構化;

由於關係型資料庫的廣泛使用,大量資料採用結構化方式進行儲存和加工。最為廣泛的加工方式使用是SQL語言。

二、痛點

就程式碼本身而言,SQL已經做到足夠簡潔。

但隨著業務需求複雜度的增長,資料的加工流程越來越長,且縱橫交錯。想了解資料起點與終點的關係,變得越來越困難。

這時候,假設當某一節點資料出現問題,需要向上查詢原因,或向下分析影響時,往往只能透過分析指令碼或排程作業的方式進行。這兩種方式都有缺點,前者耗時易錯,後者不夠詳細。

而資料出現問題,也只是資料治理中一個痛點而已。

三、解決方案

建立一套資料血緣系統。

使得使用者不用再透過分析SQL程式碼,也可以輕鬆直觀查詢到資料節點之間的關係。

四、方案設計需求

資料血緣系統,應當滿足以下功能:

使用者可以不需要特別瞭解SQL也能使用,操作簡單;

使用者可以根據任何一個數據節點,快速地向上或向下追溯資料的加工路徑;

資料節點的可追溯顆粒度要儘量的細。

五、系統設計

# 針對需求1:

為了方便使用者使用,需要有操作介面。

為了使得介面能清晰直觀的表達出資料血緣關係,本系統採用將SQL程式碼圖形化的做法,形成程式碼向量圖。

根據這個流程向量圖,使用者可以清楚地看出資料加工的各個節點。

# 針對需求2:

使用者可以選中向量圖中任意節點,然後點選按鈕,實現以此節點為起點(終點),向下(向上)追溯其影響到的其他節點路徑。

對於影響到的節點路徑,在向量圖中應當使用不同的顏色標識出來,便於辨別。

# 針對需求3:

資料庫SQL加工的資料最小顆粒度是欄位。

因此,資料血緣系統可追溯的資料節點的最小顆粒度,也應該是欄位級。

為了實現這個目標,需要對SQL程式碼進行詳細的解析,形成表級和欄位級的資料血緣關係資訊。