数据治理:数据血缘关系分析
數據治理:數據血緣關系分析
此文章由百度的多篇文章歸納總結而成,以供本人學習和記錄方便,不做任何商務用途,如有侵權,請聯系我刪除,謝謝!
參考列表:
微信 - 頭哥侃碼公眾號:數據治理的大方向是Database Mesh?先把數據之間的血緣關系搞明白,咱再吹行嗎?
搜狐 - 數據大家:數據之間有血緣關系?數據治理不得不懂的血緣關系梳理方法
知乎 - NBI大數據可視化分析平臺: 數據治理中的數據血緣關系是什么?用來解決什么問題
相親相愛的數據:論數據血緣關系
文章目錄
- 數據治理:數據血緣關系分析
- 前言
- 血緣關系概念
- 數據血緣關系的應用場景是什么
- 特有特征
- 數據血緣關系的層次
- 數據血緣關系的可視化
- 舉例說明
- 我們如何將數據血緣關系進行可視化呢
- 數據血緣關系分析
- 附 一
前言
數據血緣屬于數據治理中的一個概念,是在數據溯源的過程中找到相關數據之間的聯系,它是一個邏輯概念。
數據治理里經常提到的一個詞就是血緣分析,血緣分析是保證數據融合的一個手段,通過血緣分析實現數據融合處理的可追溯。大數據數據血緣是指數據產生的鏈路,直白點說,就是我們這個數據是怎么來的,經過了哪些過程和階段。
血緣關系概念
Data Lineage 數據血統,也叫做Data Provenance 數據起源或Data Pedigree 數據譜系。
任何的數據,從產生、ETL處理、加工、融合、流轉,到最終消亡,數據之間自然會形成一種關系。好比人類社會中的人際關系,類似的一種關系來表達數據之間的這種關系,稱之為數據的血緣關系。
從技術角度來講,數據a通過ETL處理生成了數據b,那么,我們會說,數據a與數據b具有血緣關系。不過與人類的血緣關系略有不同,數據血緣關系還具有一些個性化的特征。
數據血緣關系的應用場景是什么
在數據的處理過程中,從數據源頭到最終的數據生成,每個環節都可能會導致我們出現數據質量的問題。比如我們數據源本身數據質量不高,在后續的處理環節中如果沒有進行數據質量的檢測和處理,那么這個數據信息最終流轉到我們的目標表,它的數據質量也是不高的。也有可能在某個環節的數據處理中,我們對數據進行了一些不恰當的處理,導致后續環節的數據質量變得糟糕。因此,對于數據的血緣關系,我們要確保每個環節都要注意數據質量的檢測和處理,那么我們后續數據才會有優良的基因,即有很高的數據質量。
特有特征
歸屬性:特定的數據歸屬特定的組織(或個人),數據具有歸屬性。
多源性:同一個數據可以有多個來源, 一個數據可以是多個數據經過加工而生成的,而且這種加工過程可以是多個。
可追溯性: 數據的血緣關系,體現了數據的生命周期,體現了數據從產生到消亡的整個過程,具備可追溯性。
層次性: 數據的血緣關系是有層次的。對數據的分類、歸納、總結等對數據進行的描述信息又形成了新的數據,不同程度的描述信息形成了數據的層次。
數據血緣關系的層次
上圖描述的是存儲在數據庫中的結構化數據血緣關系的層次結構,是最典型的一種血緣關系的層次結構。對于不同類型的數據,血緣關系的層次結構有細微的差別。
一般來說,數據都歸屬于某個組織或者某個人,數據都有所有者。數據在不同的所有者之間流轉、融合,形成所有者之間通過數據聯系起來的一種關系,是數據血緣關系的一種,在層次結構中處在最上層。這種關系,清楚地表明了數據的提供者和需求者。
數據庫、表和字段,是數據的存儲結構。不同類型的數據,有不同的存儲結構。存儲結構決定了血緣關系的層次結構。所以不同類型的數據的血緣關系層次結構有些差別。相對之下,結構化數據血緣關系的層次結構比較簡單,對于非結構化數據,如以文件服務器存儲的數據來說,血緣關系的層次結構會略有不同,如下圖所示
不同層級數據的血緣關系,體現著不同的含義。所有者層次,體現了數據的提供方和需求方,其他的層次則體現了數據的來龍去脈。通過不同層級的血緣關系,可以很清楚地了解數據的遷徙流轉,為數據價值的評估、數據的管理提供依據。
數據血緣關系的可視化
根據數據血緣關系的特點,我們設計了數據的血緣關系可視化圖形。
當時的規劃,是希望通過可視化,將規則、流向分布顯示在圖形上的不同位置,從而起到如下幾個方面的作用:
- 追蹤數據溯源:當數據發生異常,幫助追蹤到異常發生的原因,平時也能幫助我們追蹤數據的來源,追蹤數據處理過程。
- 評估數據價值:要對數據價值進行評估,就需要有依據,數據血緣關系,可以從#數據受眾、數據更新量級、數據更新# 頻次等方面給數據價值的評估提供依據。
- 數據質量評估:數據的血緣關系圖上,可以方便的看到數據清洗的標準清單,這個清單反映了對數據質量的要求。
根據表現含義的不同,血緣關系的可視化圖形包括5種可視化元素,分布在圖形的不同位置。可視化元素分別是:
1.信息節點
信息節點用來表現數據的所有者和數據層次信息或終端信息。根據血緣關系層次的不同,數據信息有所區別。所有者層次只有所有者的信息,其他的層次則包括所有者信息和數據層次信息或者終端信息,例如關系數據庫的字段間的血緣關系,該節點的描述信息就是:所有者.數據庫.數據表.數據字段。
信息節點有三種類型:主節點,數據流出節點,數據流入節點。
- 主節點只有一個,位于整個圖形的中間,是可視化圖形的核心節點。圖形展示的血緣關系就是此節點的血緣關系,其他與此節點無關的血緣關系都不在圖形上展示,以保證圖形的簡單、清晰。
- 數據流入節點可以有多個,是主節點的父節點,表示數據來源
- 數據流出節點也可以有多個,是主節點的子節點,表示數據的去向;包括一種特殊的節點,即終端節點,終端節點是一種特殊的數據流出節點,表示數據不再往下進行流轉,這種數據一般用來做可視化展示。
2.數據流轉線路
數據流轉線路表現的是數據的流轉路徑,從左到右流轉。數據流轉線路從數據流入節點出來往主節點匯聚,又從主節點流出往數據流出節點擴散。
數據流轉線路表現了三個維度的信息,分別是方向、數據更新量級、數據更新頻次。
- 方向的表現方式,沒有做特別的設計,默認從上到下流轉;
- 數據更新的量級通過線條的粗細來表現。線條越粗表示數據量級越大,線條越細則表示數據量級越小。
- 數據更新的頻次用線條中線段的長度來表現。線段越短表示更新頻次越高,線段越長表示更新頻次越底,一根實線則表示只流轉一次。
3.清洗規則節點
清洗規則節點用來表現數據流轉過程中的篩選標準。大量的數據分布在不同的地方,每個地方對數據質量的要求都有所不同,數據接受方會根據自己對數據的要求來過濾接入的數據,這些要求就形成數據標準,并依據這些標準來做數據清洗。
清洗規則可能會有多種。例如要求不能是空值、要求符合某種格式。在可視化圖形上,清洗規則用一個標有大寫字母“E”的圓圈表示,把各種規則簡略化表達,以保證圖形的簡潔、清晰。查看規則內容的操作也很簡單,鼠標移動到標有大寫字母“E”的圓圈上,則會自動展示標準清單列表。
清洗規則的簡略圖形位于數據流轉線路上,表示該線路上流轉的數據符合這些標準才能繼續流轉下去。
4.轉換規則節點
轉換規則節點在表現形式上類似于清洗規則節點,用一個標有大寫字母“T”的圓圈表示。位于數據流轉線路上,用來表現數據流轉過程中發生的變化、變換。
從數據提供方出來的數據,有時候需要進行特殊處理才能接入到數據需求方,這種處理可能比較簡單,例如:只是截取源數據的前四位。也可能非常復雜,需要用到特殊的公式。在可視化方面,為了保證圖形的簡潔、清晰,做了簡略處理。查看數據經過了哪些轉換規則,也很簡單,鼠標移動到標有大寫字母“T”的圓圈上,則會自動展示轉換規則清單。
5.數據歸檔銷毀規則節點
我們認為數據是有生命周期的,當數據不再具備使用價值,他的生命就結束了,或者歸檔或者直接銷毀。
判斷數據是否還具備使用價值非常困難,需要設計一些條件,當這些條件滿足了以后,就認為數據不再具有使用價值,可以歸檔或者銷毀了。
舉例說明
現在假設你是一名數據開發工程師,為了滿足一次業務需求,然后為了生成這張表,可能是處于程序邏輯清晰或者性能優化的考慮,你會使用很多份數據表,也會通過 MR、Spark 或者 Hive 來生產很多中間表。
如下圖,是你將花費時間來實現的整個數據流。
- 其中 Table X 是最終給到業務側的表。
- 藍色的 Table A-E,是原始數據。
- 黃色的 Table F-I 是你計算出來的中間表。這些表都是你自己寫程序要處理的表。
- 然后你為了懶省事,嗯,應該說本著不重復開發的原則,你還要用到同事小伙伴處理的表,Table J 就是別人處理過的結果表。
過了一段時間后,業務側的同事感覺你提供的數據中有個字段總是不太對勁,其實就是懷疑你的數據出問題!需要你來追蹤一下這個字段的來源。
首先你從 Table X 中找到了異常的字段,然后定位到了它來源于 Table I,再從 Table I 定位到了它來源于 Table G, 再從 Table G 追溯到了 Table D,最終發現是某幾天的來源數據有異常。
或者說,你從 Table X 定位到了異常的字段原來來自于其它小伙伴處理的表 Table J,然后繼續向前回溯,找到了這張表在處理過程中的某一個步出現了問題。
我們如何將數據血緣關系進行可視化呢
方法一: 桑基圖
數據血緣關系分析
考慮到數據血緣的重要性和特性,以一般來講,我們在血緣分析時,會關注應用(系統)級、程序級、字段級三個層次間數據間的關系。比較常見的是,數據通過系統間的接口進行數據的交換和傳輸。例如下圖,銀行業務系統中的數據,由統一數據交換平臺進行流轉分發給傳統關系型數據庫和非關系型大數據平臺,數據倉庫和大數據平臺匯總后,交流各個應用集市分析使用。其中涉及大量的數據處理和數據交換工作,我們在分析其中的血緣關系時,主要考慮以下幾個方面,
附 一
Data provenance 和 Data lineage 區別:
From our experience, data provenance includes only high level view of the system for business users, so they can roughly navigate where their data come from. It’s provided by variety of modeling tools or just simple custom tables and charts. Data lineage is a more specific term and includes two sides - business (data) lineage and technical (data) lineage. Business lineage pictures data flows on a business-term level and it’s provided by solutions like Collibra, Alation and many others. Technical data lineage is created from actual technical metadata and tracks data flows on the lowest level - actual tables, scripts and statements. Technical data lineage is being provided by solutions such as MANTA or Informatica Metadata Manager.
資料來源: What the difference between data provenance and data lineage?
總結
以上是生活随笔為你收集整理的数据治理:数据血缘关系分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试题-- 什么是偏向锁
- 下一篇: 【BZOJ1976】[BeiJing20