- 產品
- 產品解決方案
- 行業解決方案
- 案例
- 數據資產入表
- 賦能中心
- 伙伴
- 關于
時間:2023-12-12來源:天柒零瀏覽數:716次
在當今信息爆炸的時代,企業面臨著數據增長速度快、數據源復雜多樣的挑戰。為了確保數據的質量和可信度,構建數據血緣成為了一個重要的任務。數據血緣可以追溯數據的來源、操作和流向,幫助企業更好地理解數據的價值和風險。本文從數據血緣的用途、數據血緣的定義,以及數據血緣構建的方式以及開源框架幾個方面說明數據血緣的相關內容。
01—數據血緣的用途?????
在數據驅動的企業環境中,數據血緣起到了關鍵作用。它不僅幫助企業了解數據是從何處來的,還可以追蹤數據的操作和流向,提供更全面的數據上下文。這對于資產管理、數據開發、數據治理和安全領域等方面都至關重要。
一、資產管理?
在資產領域,數據血緣的應用主要用于資產熱度的計算。資產熱度是指某個資產被頻繁消費和廣泛引用的程度,它可以作為資產權威性的證明。為了計算資產熱度,在血緣平臺中,我們引入了類似于網頁排名算法PageRank的概念,通過分析資產的下游血緣依賴情況,為每個資產定義了一個熱度值。較高的熱度值代表著更值得信任和更可靠的數據資產。
此外,血緣還可以幫助我們理解數據。當用戶在元數據平臺或血緣平臺上查詢某個數據資產節點時,他們可能是為了進行下一步的作業開發或排查問題。然而,如果用戶不了解數據產生的過程,就無法理解數據的過去和未來。因此,通過數據血緣,可以找到具體表的上下游信息,以幫助用戶對數據進行更深入的理解。
二、數據開發
數據血緣在影響分析和歸因分析數據開發中發揮著重要作用。
首先是影響分析應用,這是事前分析的過程。當對某張表資產進行變更時,上游的資產負責人需要通過血緣查看自己資產的下游,以判斷這個變更的影響。他們可以根據對修改的兼容性或某條鏈路的重要性進行相應的通知操作,以避免由于缺少通知而導致嚴重的生產事故。
而歸因分析應用則是事后分析。當某個任務產生的表出現問題時,我們可以通過查詢血緣的上游逐級尋找到引發問題的根本原因。在定位問題之后,可以修復數據,并根據血緣查找任務或表的依賴關系。對于離線數倉等情況,可能需要重新運行受影響的輸出數據分區,通過血緣的回溯僅限于相應受影響的下游任務,從而減少不必要的資源浪費。
三、數據治理
在治理領域中,血緣關系可以應用于鏈路狀態追蹤和數倉治理兩個典型場景。
首先是鏈路狀態追蹤。當重要營銷活動來臨時,我們需要提前確定需要重點保障的任務,并通過血緣關系梳理出鏈路的核心部分。然后,我們可以針對這些核心鏈路進行重點治理和保障措施。
其次是數倉治理。在數倉建設過程中,血緣關系可以輔助日常工作,特別是在規范化治理方面。數倉的規范化治理包括清理分層不合理的引用關系,或者規范化整體數倉分層結構,尤其處理存在冗余表的情況。舉個例子,如果兩個表來自同一個上游表但位于不同層級,那么我們需要清理這些冗余表。這種場景下,血緣關系可以成為一個典型的輔助治理工具。
通過應用血緣關系,我們可以更好地理解數據的流動和影響,從而在治理過程中做出更準確的決策和優化措施。
注:
如果數倉中存在分層不合理的引用關系或冗余表,可能會導致以下問題:
1、數據重復和冗余:冗余表會導致數據在數倉中存在重復存儲,占用額外的存儲空間。這將增加數據維護的復雜性,并且可能導致數據不一致性的問題。
2、數據一致性問題:如果不同層級的表之間存在引用關系,但引用關系不合理,可能導致數據的一致性問題。例如,更新底層表時,上層表沒有相應變化,導致數據不一致。
3、查詢效率低下:冗余表會增加查詢的復雜性,并且查詢可能需要涉及多個表的聯合操作。這將導致查詢性能下降,同時增加查詢的開銷和難度。
4、數據流程混亂:分層不合理的引用關系會導致數據的流程變得混亂,不易于理解和管理。這將增加維護困難度,并降低數倉的可維護性和可擴展性。
為了解決這些問題,數倉治理通常需要對數據血緣進行分析,以追溯數據的來源和流向,識別冗余表和不合理的引用關系,并進行相應的清理和規范化操作。
四、數據安全
為了確保安全合規性,我們需要為每個資產定義相應的安全等級,并確保下游資產的安全等級高于上游資產的安全等級,以避免權限泄露或其他安全問題的出現。通過使用數據血緣,我們可以掃描到與這些規則相關的資產的下游,以配置相應的掃描規則,然后進行安全合規排查和治理。
此外,數據血緣還可以應用于標簽傳播方面。在為資產打上安全標簽時,傳統的人工方式既繁瑣又需要關注鏈路信息。然而,通過利用數據血緣信息,我們可以實現自動化的標簽打標過程。通過配置一些規則,我們可以確保安全標簽在特定場景、節點和終止規則下明確傳播,從而實現自動化的標記工作。這樣可以大大減少手動工作量,并提高標簽傳播的準確性和效率。
02—數據血緣的定義?????
數據血緣是指數據之間的關系和來源信息。它記錄了數據的產生、變化和傳輸過程,幫助我們了解數據的來源、流動路徑和使用情況。
數據血緣可以以圖譜的形式展示,通過節點和邊表示數據對象和數據之間的關系。節點代表數據表、字段或文件,邊表示數據之間的依賴關系、引用關系或轉換關系。
數據血緣可以分為兩種類型:邏輯血緣和物理血緣。邏輯血緣關注的是數據的邏輯關系,即數據表之間的依賴關系;物理血緣關注的是數據的物理存儲和傳輸路徑,即數據從源系統到目標系統的流動路徑。我們這邊主要關注的是邏輯血緣。
那么構成邏輯血緣在可視化上的主要定義為4種元素:????
根據表現含義的不同,血緣關系的可視化圖形包括4種可視化元素,分布在圖形的不同位置。這些可視化元素包括:
1、資產節點:資產節點用來表現數據的所有者、數據層次信息或終端信息。它分為三種類型:主節點、數據流出節點和數據流入節點。主節點是可視化圖形的核心節點,位于圖形的中間。數據流入節點是主節點的父節點,表示數據的來源,位于圖形的左側。資產節點按照數據血緣的層級可以分為庫級,表級,字段級,如果是庫級則表示是數據庫,表級則表示表,字段級則表示字段。
2、數據流轉線路:數據流轉線路表現的是數據的流轉路徑,從左到右流轉。數據流轉線路可以展示數據流動的方向、數據更新的量級和數據更新的頻次。
3、任務節點-清洗規則節點:清洗規則節點用來表現數據流轉過程中的篩選標準。在可視化圖形上,清洗規則用一個標有大寫字母"E"的圓圈表示,以保證圖形的簡潔和清晰。鼠標移動到清洗規則節點上,可以查看規則的具體內容。清洗規則節點一般是清洗任務的ETL任務節點。?
4、任務節點-轉換規則節點:轉換規則節點類似于清洗規則節點,用一個標有大寫字母"T"的圓圈表示。轉換節點一般是轉換任務的ETL節點。
這些元素共同構成了數據血緣的可視化圖形,幫助我們更好地理解數據之間的關系和流動路徑。
03—數據血緣的方案和開源框架
當前數據血緣的整體解決方案主要分為三步完成數據血緣的開發
一、定義數據血緣的數據結構?
1)任務血緣數據結構,表示數據血緣種任務節點的數據結構
2)字段血緣數據結構,表示數據血緣種資產節點的數據結構
3)血緣關系圖,定義任務節點和資產節點的關系結構圖譜。??
二、獲取數據血緣信息存儲到血緣數據庫中
例如開源的數據血緣工具Atlas,
Atlas 通過插件(Hook)的方式 在服務段注入捕獲代碼,并將元數據提交至KafkaAtlas服務從Kafka中消費元數據信息,并將元數據寫入到 JanusGraph(on HBase) 和 Solr 兩個系統Atlas 通過其他應用通過RestAPI 方式向其他第三方服務提供元數據查詢和檢索的服務

同時Atlas 支持Flink引擎的Hook服務代碼的注入。缺點是獲取的數據血緣信息不全面。
三、使用前端框架展示數據血緣圖前端框架采用開源的框架有sqlflow、jsplumb、效果圖如下:?jsplumb:

sqlflow:

如需特殊的血緣關系表達,如數據連線上展示數據更新的量級和數據更新的頻次。點擊某個資產,自動展示整個鏈條信息,連線粗細表達數據跟新的量級等前端效果需要特殊定制開發。
除了Apache Atlas 是 Apache 軟件基金會的一個頂級開源項目以外還有另外一個項目LinkedIn DataHub項目,是由DataHub是由Linkedin開源的,也是數據血緣的開源框架,它采用基于推送的數據收集架構(當然也支持pull拉取的方式),能夠持續收集變化的元數據。當前版本已經集成了大部分流行數據生態系統接入能力,另外還可以通過sqllineage 獲取加工任務中的SQL代碼,處理成血緣關系,存儲到DataHub進行展示。???
sqllineage 是一個用于解析 SQL 語句并提取其中的數據血緣信息的工具。它可以解析包括 Hive SQL、Spark SQL、Presto SQL 等在內的多種 SQL 方言,識別 SQL 語句中的表、列、函數、關鍵字等元素,并分析它們之間的關系,從而構建數據血緣。通過 sqllineage,用戶可以獲得 SQL 語句的邏輯血緣信息,即了解 SQL 語句中哪些表和列被使用,以及它們之間的數據流向。
DataHub支持的數據庫類型如下:


另外一個數據血緣開源框架是Amundsen 是來自Lyft 開源的元數據管理、數據發現平臺,功能點很全,有一個比較全的前端、后端以及數據處理框架。它有自己完整的元數據采集、存儲、展示的整個框架,需要配合使用Apache Airflow作為數據生成器的編排引擎,從而獲取到血緣關系。Amundsen的模塊主要分為以下4種類型:
1. 元數據服務
元數據服務處理來自前端服務以及其他微服務的元數據請求。默認情況下,持久層是Neo4j,但可以替換。
2. 搜索服務
搜索服務由ElasticSearch提供支持,處理來自前端服務的搜索請求。默認情況下,由ElacticSearch提供搜索引擎,但可以替換。
3. 前端服務
前端服務托管Amundsen的網絡應用程序。
4. 數據生成器
數據生成器是一個通用的數據提取框架,可從各種來源提取元數據。在Lyft,使用Apache Airflow作為數據生成器的編排引擎。每個數據生成器job都將是DAG(有向無環圖)中的單個任務。每種類型的數據資源都將有一個單獨的DAG,因為它可能必須以不同的時間運行。
Apache Atlas、DataHub和Amundsen是三個廣泛使用的開源數據血緣和元數據管理工具。它們各自有不同的特點和優缺點。
1、Apache Atlas:
優點:
成熟穩定:Apache Atlas 是一款經過多年發展的成熟項目,有著穩定的功能和廣泛的用戶社區。
強大的血緣分析:Apache Atlas 提供了強大的血緣分析功能,可以跟蹤數據在不同組件和系統之間的關系。
集成生態系統:Apache Atlas 可以與其他 Apache項目(如Ranger,Hadoop等)以及其他第三方工具集成,具有廣泛的生態系統。
缺點:
復雜性:Apache Atlas 作為一個功能強大的企業級元數據管理工具,它的配置和使用可能較為復雜。
缺乏實時支持:Apache Atlas 并不擅長處理實時數據,對于需要實時血緣跟蹤的場景可能不能提供最佳的支持。通過特殊處理可以和flink引擎結合產生血緣數據
2、DataHub:
優點:
實時數據集成:DataHub 提供了實時數據集成的能力,可以自動發現和捕獲數據源的變化。
與現有工具集成:DataHub 可以與現有的工具和系統集成,如Kafka、Hadoop和Kubernetes等。
可擴展:DataHub 使用分布式架構,可以水平擴展以處理大規模的數據元數據。
缺點:
社區相對較新:DataHub 的開發社區相對較新,相比于 Apache Atlas 等老牌工具,可能缺乏一些成熟度和廣泛性。
功能相對簡單:與 Apache Atlas 相比,DataHub 的功能相對簡單,可能不能滿足所有復雜的元數據管理需求。
?
3、Amundsen:
優點:用戶友好的界面:Amundsen 提供了用戶友好的用戶界面,使得數據血緣和元數據管理更加直觀和易用。強調數據消費者:Amundsen 強調數據消費者的使用體驗,提供了交互式搜索和探索數據的功能。
可擴展和可定制:Amundsen 的架構可以輕松地進行擴展和定制,以適應不同的業務場景。
缺點:
缺少某些高級功能:與 Apache Atlas 相比,Amundsen 在某些高級功能方面可能還有所欠缺,如安全性和遺留系統集成等。
需要根據實際需求和環境來選擇適合的工具,這三個工具各自都有其適用的場景和優點。