<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          數(shù)據(jù)血緣落地實踐

          共 7962字,需瀏覽 16分鐘

           ·

          2023-06-29 20:13

          數(shù)據(jù)倉庫系列文章(持續(xù)更新)

          1. 數(shù)倉架構發(fā)展史
          2. 數(shù)倉建模方法論
          3. 數(shù)倉建模分層理論
          4. 數(shù)倉建模—寬表的設計
          5. 數(shù)倉建模—指標體系
          6. 數(shù)據(jù)倉庫之拉鏈表
          7. 數(shù)倉—數(shù)據(jù)集成
          8. 數(shù)倉—數(shù)據(jù)集市
          9. 數(shù)倉—商業(yè)智能系統(tǒng)
          10. 數(shù)倉—埋點設計與管理
          11. 數(shù)倉—ID Mapping
          12. 數(shù)倉—OneID

          本文來自PowerData?李奇峰

          ?在復雜的社會分工協(xié)作體系中,我們需要明確個人定位,才能更好的發(fā)揮價值,數(shù)據(jù)也是一樣,于是,數(shù)據(jù)血緣應運而生。

          今天這篇文章會全方位的講解數(shù)據(jù)血緣,并且給出具體的落地實施方案。


          0ad6f62a26678db47083fac55c664324.webp圖:數(shù)據(jù)血緣實例一、數(shù)據(jù)血緣是什么

          數(shù)據(jù)血緣是在數(shù)據(jù)的加工、流轉過程產生的數(shù)據(jù)與數(shù)據(jù)之間的關系。

          提供一種探查數(shù)據(jù)關系的手段,用于跟蹤數(shù)據(jù)流經路徑。

          二、數(shù)據(jù)血緣的組成

          1、數(shù)據(jù)節(jié)點

          數(shù)據(jù)血緣中的節(jié)點,可以理解為數(shù)據(jù)流轉中的一個個實體,用于承載數(shù)據(jù)功能業(yè)務。例如數(shù)據(jù)庫、數(shù)據(jù)表、數(shù)據(jù)字段都是數(shù)據(jù)節(jié)點;從廣義上來說,與數(shù)據(jù)業(yè)務相關的實體都可以作為節(jié)點納入血緣圖中,例如指標、報表、業(yè)務系統(tǒng)等。

          按照血緣關系劃分節(jié)點,主要有以下三類:流出節(jié)點->中間節(jié)點->流入節(jié)點

          4f7238b9007ab3de1ce496996a60378b.webp

          流出節(jié)點: ?數(shù)據(jù)提供方,血緣關系的源端節(jié)點。 中間節(jié)點: ?血緣關系中類型最多的節(jié)點,既承接流入數(shù)據(jù),又對外流出數(shù)據(jù)。 流入節(jié)點: ?血緣關系的終端節(jié)點,一般為應用層,例如可視化報表、儀表板或業(yè)務系統(tǒng)。

          2、節(jié)點屬性

          當前節(jié)點的屬性信息,例如表名,字段名,注釋,說明等。

          3ca87700afd4903a14a96ab77c41a913.webp

          3、流轉路徑

          b7ce3a6a40fac9b14b54bcf8c12b0287.webp

          數(shù)據(jù)流轉路徑通過表現(xiàn)數(shù)據(jù)流動方向、數(shù)據(jù)更新量級、數(shù)據(jù)更新頻率三個維度的信息,標明了數(shù)據(jù)的流入流出信息:

          數(shù)據(jù)流動方向:?通過箭頭的方式表明數(shù)據(jù)流動方向數(shù)據(jù)更新量級:?數(shù)據(jù)更新的量級越大,血緣線條越粗,說明數(shù)據(jù)的重要性越高。數(shù)據(jù)更新頻率:?數(shù)據(jù)更新的頻率越高,血緣線條越短,變化越頻繁,重要性越高。

          4、流轉規(guī)則-屬性

          b7ce3a6a40fac9b14b54bcf8c12b0287.webp

          流轉規(guī)則體現(xiàn)了數(shù)據(jù)流轉過程中發(fā)生的變化,屬性則記錄了當前路徑對數(shù)據(jù)的操作內容,用戶可通過流轉路徑查看該路徑規(guī)則與屬性,規(guī)則可以是直接映射關系,也可以是復雜的規(guī)則,例如:

          數(shù)據(jù)映射:?不對數(shù)據(jù)做任何變動,直接抽取。數(shù)據(jù)清洗:?表現(xiàn)數(shù)據(jù)流轉過程中的篩選標準。例如要求數(shù)據(jù)不能為空值、符合特定格式等。數(shù)據(jù)轉換:?數(shù)據(jù)流轉過程中,流出實體的數(shù)據(jù)需要進行特殊處理才能接入到數(shù)據(jù)需求方。數(shù)據(jù)調度:?體現(xiàn)當前數(shù)據(jù)的調度依賴關系。數(shù)據(jù)應用:?為報表與應用提供數(shù)據(jù)。

          三、我們?yōu)槭裁葱枰獢?shù)據(jù)血緣

          1、日益龐大的數(shù)據(jù)開發(fā)導致表間關系混亂,管理成本與使用成本激增

          數(shù)據(jù)血緣產生最本質的需求。大數(shù)據(jù)開發(fā)作為數(shù)據(jù)匯集與數(shù)據(jù)服務提供方,龐大的數(shù)據(jù)與混亂的數(shù)據(jù)依賴導致管理成本與使用成本飆升。

          85c2f64a8c6686dc710cc3f47ccef4fb.webp

          2、數(shù)據(jù)價值評估,數(shù)據(jù)質量難以推進

          表的優(yōu)先級劃分,計算資源的傾斜,表級數(shù)據(jù)質量監(jiān)控,如何制定一個明確且科學的標準。

          3、什么表該刪,什么表不能刪,下架無依據(jù)

          業(yè)務庫,數(shù)倉庫,中間庫,開發(fā)庫,測試庫等眾多庫表,是否存在數(shù)據(jù)冗余(一定存在)。以及存儲資源如何釋放?

          4、動了一張表,錯了一堆表

          你改了一張表的字段,第二天醒來發(fā)現(xiàn)郵件里一堆任務異常告警。

          5、ETL任務異常時的歸因分析、影響分析、恢復

          承接上個問題,如果存在任務異常或者ETL故障,我們如何定位異常原因,并且進行影響分析,以及下游受影響節(jié)點的快速恢復。

          6、調度依賴混亂

          數(shù)據(jù)依賴混亂必然會帶來調度任務的依賴混亂,如何構建一個健壯的調度依賴。

          7、數(shù)據(jù)安全審計難以開展

          針對銀行、保險、政府等對安全關注度較高的行業(yè),數(shù)據(jù)安全-數(shù)據(jù)泄露-數(shù)據(jù)合規(guī)性需要重點關注。由于數(shù)據(jù)存在ETL鏈路操作,下游表的數(shù)據(jù)來源于上游表,所以需要基于數(shù)據(jù)全鏈路來進行安全審計,否則可能會出現(xiàn)下游數(shù)據(jù)安全等級較低,導致上游部分核心數(shù)據(jù)泄露。

          四、數(shù)據(jù)血緣可以做什么

          1、流程定位,追蹤溯源

          7aded5303130d3a5212a3c5e70f01c15.webp

          通過 可視化方式,將 目標表的上下游依賴進行展示,一目了然。

          2、確定影響范圍

          461ffb8a4e892ba8948f829cc30e6177.webp

          通過當前節(jié)點的下游節(jié)點數(shù)量以及類型可以確定其影響范圍,可避免出現(xiàn)上游表的修改導致下游表的報錯。

          3、評估數(shù)據(jù)價值、推動數(shù)據(jù)質量

          通過對所有表節(jié)點的下游節(jié)點進行匯總,排序,作為數(shù)據(jù)評估依據(jù),可重點關注輸出數(shù)量較多的數(shù)據(jù)節(jié)點,并添加數(shù)據(jù)質量監(jiān)控。

          4、提供數(shù)據(jù)下架依據(jù)

          例如以下數(shù)據(jù)節(jié)點,無任何下游輸出節(jié)點,且并無任何存檔需求,則可以考慮將其下架刪除。dbe41b5551763114e1deb68d2b04869c.webp

          5、歸因分析,快速恢復

          當某個任務出現(xiàn)問題時,通過查看血緣上游的節(jié)點,排查出造成問題的根因是什么。同時根據(jù)當前任務節(jié)點的下游節(jié)點進行任務的快速恢復。

          6、梳理調度依賴

          可以將血緣節(jié)點與調度節(jié)點綁定,通過血緣依賴進行ETL調度。

          7、數(shù)據(jù)安全審計

          數(shù)據(jù)本身具有權限與安全等級,下游數(shù)據(jù)的安全等級不應該低于上游的安全等級,否則會有權限泄露風險。

          可以基于血緣,通過掃描高安全等級節(jié)點的下游,查看下游節(jié)點是否與上游節(jié)點權限保持一致,來排除權限泄露、數(shù)據(jù)泄露等安全合規(guī)風險。

          、數(shù)據(jù)血緣落地方案

          目前業(yè)內常見的落地數(shù)據(jù)血緣系統(tǒng)以及應用,主要有以下三種方式:

          1、采用開源系統(tǒng):

          Atlas、Metacat、Datahub等

          2fd789eb2919cd8c860de654de0195af.webp

          采用開源系統(tǒng)最大的優(yōu)點是投入成本較低,但是缺點主要包括?

          1、適配性較差,開源方案無法完全匹配公司現(xiàn)有痛點。

          2、二開成本高,需要根據(jù)開源版本進行定制化開發(fā)。

          2、廠商收費平臺:

          億信華辰,網易數(shù)帆等

          abdc6497cb8c60f1b446735e9f7fb85b.webp

          類數(shù)據(jù)平臺中會內置數(shù)據(jù)血緣管理系統(tǒng),功能較為全面,使用方便。 但是同樣也有以下缺點:

          1、貴

          2、需要ALL IN廠商平臺,為保障數(shù)據(jù)血緣的使用,數(shù)據(jù)業(yè)務需要全部遷移到廠商平臺中。

          3、自建

          通過圖數(shù)據(jù)庫、后端、前端自建數(shù)據(jù)血緣管理系統(tǒng),此方案開發(fā)投入較大,但是有以下優(yōu)點

          1、因地制宜,可根據(jù)核心痛點定制化開發(fā)元數(shù)據(jù)及數(shù)據(jù)血緣系統(tǒng)。

          2、技術積累,對于開發(fā)人員來說,從0-1開發(fā)數(shù)據(jù)血緣系統(tǒng),可以更深刻的理解數(shù)據(jù)業(yè)務。

          3、平臺解耦,獨立于數(shù)據(jù)平臺之外,數(shù)據(jù)血緣的開發(fā)不會對正常業(yè)務造成影響。

          接下來我們講講如何自建數(shù)據(jù)血緣系統(tǒng)

          六、如何自建數(shù)據(jù)血緣系統(tǒng) 1、明確需求,確定邊界

          在進行血緣系統(tǒng)構建之前,需要進行需求調研,明確血緣系統(tǒng)的主要功能,從而確定血緣系統(tǒng)的最細節(jié)點粒度,實體邊界范圍。

          例如節(jié)點粒度是否需要精確到字段級,或是表級。一般來說,表級粒度血緣可以解決75%左右的痛點需求,?字段級血緣復雜度較表級血緣高出許多,如果部門人數(shù)較少,可以考慮只精確到表級粒度血緣。

          常見的實體節(jié)點包括:任務節(jié)點、庫節(jié)點、表節(jié)點、字段節(jié)點、指標節(jié)點、報表節(jié)點、部門節(jié)點等。血緣系統(tǒng)可以擴展數(shù)據(jù)相關的實體節(jié)點,可以從不同的場景查看數(shù)據(jù)走向,例如表與指標,指標與報表的血緣關系。但是實體節(jié)點的范圍需要明確,不可無限制的擴展下去。

          明確需求,確定節(jié)點粒度與范圍之后,才可根據(jù)痛點問題給出準確的解決方案,不至于血緣系統(tǒng)越建越臃腫,提高ROI(投入產出比)

          2、構建元數(shù)據(jù)管理系統(tǒng)

          目前市面上所有的血緣系統(tǒng)都需要依賴于元數(shù)據(jù)管理系統(tǒng)而存在。

          元數(shù)據(jù)作為血緣的基礎,一是用于構建節(jié)點間的關聯(lián)關系,二是用于填充節(jié)點的屬性,三是血緣系統(tǒng)的應用需要基于元數(shù)據(jù)才能發(fā)揮出最大的價值。所以構建血緣系統(tǒng)的前提一定是有一個較全面的元數(shù)據(jù)。

          元數(shù)據(jù)管理系統(tǒng)將會在下周發(fā)布的《元數(shù)據(jù)管理系統(tǒng)落地實施》文章中進行詳細講解

          3、技術選型:圖數(shù)據(jù)庫

          目前業(yè)內通常采用圖數(shù)據(jù)庫進行血緣關系的存儲。

          對于血緣關系這種層級較深,嵌套次數(shù)較多的應用場景,關系型數(shù)據(jù)庫必須進行表連接的操作,表連接次數(shù)隨著查詢的深度增大而增多,會極大影響查詢的響應速度。

          而在圖數(shù)據(jù)庫中,應用程序不必使用外鍵約束實現(xiàn)表間的相互引用,而是利用關系作為連接跳板進行查詢,在查詢關系時性能極佳,而且利用圖的方式來表達血緣關系更為直接。

          下圖為圖數(shù)據(jù)庫與關系型數(shù)據(jù)庫在查詢人脈時的邏輯對比:

          3449c1de9e423ab3164f582cd9db2333.webp

          4、血緣關系錄入:自動解析and手動登記

          自動解析:

          獲取到元數(shù)據(jù)之后,首先可以根據(jù)元數(shù)據(jù)表中的SQL抽取語句,通過SQL解析器可自動化獲取到當前表的來源表【SQL解析器推薦jsqlparse】,并進行血緣關系錄入。

          手動登記:

          如果當前表無SQL抽取語句,數(shù)據(jù)來源為手動導入、代碼寫入、SparkRDD方式等無法通過自動化方式確定來源表的時候,我們需要對來源表進行手動登記,然后進行血緣關系的錄入。

          血緣關系錄入需要基于圖數(shù)據(jù)庫進行,圖數(shù)據(jù)庫的建模、語句與關系型數(shù)據(jù)庫截然不同,如有疑問可以加入社區(qū)交流群進行解答。

          5、血緣可視化

          血緣系統(tǒng)構建完成后,為了能夠更好的體現(xiàn)血緣價值,量化產出,需要進行血緣可視化的開發(fā),分為兩步:

          (1)鏈路-屬性展示:

          根據(jù)具體節(jié)點,通過點擊操作,逐級展示血緣節(jié)點間的鏈路走向與涉及到的節(jié)點屬性信息。

          22e43a9eb45686828b7cb726dd1dcb18.webp

          1151b30c6bc133837fc086baf8e64a62.webp

          97ac98f3d036a7e2abbd4de1e4b69849.webp

          (2)節(jié)點操作:

          基于可視化的血緣節(jié)點與當前節(jié)點附帶的元數(shù)據(jù)屬性,我們可以設想一些自動化操作例如:

          節(jié)點調度:直接基于血緣開啟當前表節(jié)點的調度任務?

          屬性修改:通過前端修改當前節(jié)點的元數(shù)據(jù)屬性并保存

          還有更多可視化操作可以加入社區(qū)交流群進行討論

          6、血緣統(tǒng)計分析

          數(shù)據(jù)血緣構建完成后,我們可以做一些統(tǒng)計分析的操作,從不同層面查看數(shù)據(jù)的分布與使用情況,從而支撐業(yè)務更好更快更清晰。

          以我們團隊舉例,在工作過程中,我們需要以下血緣統(tǒng)計用于支撐數(shù)據(jù)業(yè)務,例如:

          數(shù)據(jù)節(jié)點下游節(jié)點數(shù)量排序,用于評估數(shù)據(jù)價值及其影響范圍 a20256026c82e25fb19cc764a4af8b23.webp

          查詢當前節(jié)點的所有上游節(jié)點,用于業(yè)務追蹤溯源 b1082f71ac80fb7eb7d54a0005cfe760.webp

          數(shù)據(jù)節(jié)點輸出報表信息詳情統(tǒng)計,用于報表的上架與更新 e98258ecca8a7995cfe6113984ecac5e.webp

          查詢孤島節(jié)點,即無上下游節(jié)點的節(jié)點,用于數(shù)據(jù)刪除的依據(jù) 05d1bcef2bc2411c05d8a8e359195337.webp

          7、血緣驅動業(yè)務開展

          數(shù)據(jù)血緣構建完成,統(tǒng)計分析結果也有了,業(yè)務痛點也明確了,接下來我們即可利用數(shù)據(jù)血緣驅動業(yè)務更好更快開展。

          我們團隊目前落地的血緣相關業(yè)務有以下幾點:

          (1)影響范圍告警:

          將血緣關系與調度任務打通,監(jiān)測當前血緣節(jié)點的調度任務,如果當前節(jié)點調度出現(xiàn)異常,則對當前節(jié)點的所有下游節(jié)點進行告警。

          (2)異常原因探查:

          還是將血緣關系與調度任務打通,監(jiān)測當前血緣節(jié)點的調度任務,如果當前節(jié)點調度出現(xiàn)異常,則會給出當前節(jié)點的直接上游節(jié)點,用于探查異常原因。

          (3)異常鏈路一鍵恢復:

          基于上一應用,異常原因定位并且修復完成之后,可以通過血緣系統(tǒng),一鍵恢復當前數(shù)據(jù)節(jié)點的所有下游節(jié)點調度任務,真正實現(xiàn)一鍵操作。

          團隊目前已經基于血緣系統(tǒng)構建出一整套的異常調度影響范圍告警->異常原因探查->異常鏈路一鍵恢復的故障響應修復機制。

          (4)支撐數(shù)據(jù)下架:

          目前團隊已經根據(jù)探查孤島節(jié)點即無上下游節(jié)點的節(jié)點,累計歸檔數(shù)據(jù)表628張,節(jié)省了13%的存儲空間。

          (5)數(shù)據(jù)質量監(jiān)控:

          對當前血緣中所有節(jié)點輸出的下有節(jié)點數(shù)量進行排序,可以精確的判斷某張表的影響范圍大小,從而可以根據(jù)此對高排序表進行數(shù)據(jù)質量的監(jiān)控。

          9db05eab697df28559bd18d942c2e319.webp

          (6)數(shù)據(jù)標準化監(jiān)控:

          如果當前公司制定了基于庫、表、字段的命名規(guī)范,我們可以通過探查血緣中的所有數(shù)據(jù)節(jié)點,并命名規(guī)范進行匹配,得到不符合規(guī)范的庫、表、字段進行整改。

          當然了,此業(yè)務僅基于元數(shù)據(jù)也可實現(xiàn),放在此處屬于博主強行升華了。

          (7)數(shù)據(jù)安全審計:

          團隊基于用戶職級、部門、操作行為等權重對目前的庫表進行了數(shù)據(jù)權限等級劃分,權限等級越高,當前表的安全級別越高。

          團隊基于血緣進行數(shù)據(jù)全鏈路的安全等級監(jiān)測,如果發(fā)現(xiàn)下游節(jié)點安全等級低于上游節(jié)點,則會進行告警并提示整改。確保因為安全等級混亂導致數(shù)據(jù)泄露。

          八、血緣系統(tǒng)評價標準

          在推動數(shù)據(jù)血緣落地過程中,經常會有用戶詢問:血緣質量如何?覆蓋場景是否全面?能否解決他們的痛點?做出來好用嗎?

          于是我也在思考,市面上血緣系統(tǒng)方案那么多,我們自建系統(tǒng)的核心優(yōu)勢在哪里,血緣系統(tǒng)的優(yōu)劣從哪些層次進行評價,于是我們團隊量化出了以下三個技術指標:

          1、準確率

          定義:?假設一個任務實際的輸入和產出與血緣中該任務的上游和下游相符,既不缺失也不多余,則認為這個任務的血緣是準確的,血緣準確的任務占全量任務的比例即為血緣準確率。

          準確率是數(shù)據(jù)血緣中最核心的指標,例如影響范圍告警,血緣的缺失有可能會造成重要任務沒有被通知,造成線上事故。

          我們在實踐中通過兩種途徑,盡早發(fā)現(xiàn)有問題的血緣節(jié)點:

          人工校驗:?通過構造測試用例來驗證其他系統(tǒng)一樣,血緣的準確性問題也可以通過構造用例來驗證。實際操作時,我們會從線上運行的任務中采樣出一部分,人工校驗解析結果是否正確。

          用戶反饋:?全量血緣集合的準確性驗證是個漫長的過程,但是具體到某個用戶的某個業(yè)務場景,問題就簡化多了。實際操作中,我們會與一些業(yè)務方深入的合作,一起校驗血緣準確性,并修復問題。

          2、覆蓋率

          定義:?當有數(shù)據(jù)資產錄入血緣系統(tǒng)時,則代表數(shù)據(jù)血緣覆蓋了當前數(shù)據(jù)資產。被血緣覆蓋到的數(shù)據(jù)資產占所有數(shù)據(jù)資產的比例即為血緣覆蓋率。

          血緣覆蓋率是比較粗粒度的指標。作為準確率的補充,用戶通過覆蓋率可以知道當前已經支持的數(shù)據(jù)資產類型和任務類型,以及每種覆蓋的范圍。

          在內部,我們定義覆蓋率指標的目的有兩個,一是我方比較關注的數(shù)據(jù)資產集合,二是尋找當前業(yè)務流程中尚未覆蓋的數(shù)據(jù)資產集合,以便于后續(xù)血緣優(yōu)化。

          當血緣覆蓋率低時,血緣系統(tǒng)的應用范圍一定是不全面的,通過關注血緣覆蓋率,我們可以知曉血緣的落地進度,推進數(shù)據(jù)血緣的有序落地。

          3、時效性

          定義:?從數(shù)據(jù)資產新增和任務發(fā)生修改的時間節(jié)點,到最終新增或變更的血緣關系錄入到血緣系統(tǒng)的端到端延時。

          對于一些用戶場景來說,血緣的時效性并沒有特別重要,屬于加分項,但是有一些場景是強依賴。不同任務類型的時效性會有差異。

          例如:故障影響范圍告警以及恢復,是對血緣實時性要求很高的場景之一。如果血緣系統(tǒng)只能定時更新T-1的狀態(tài),可能會導致嚴重業(yè)務事故。

          提升時效性的瓶頸,需要業(yè)務系統(tǒng)可以近實時的將任務相關的修改,以通知形式發(fā)送出來,并由血緣系統(tǒng)進行更新。

          參考文獻:

          ??[1]? 楊明 皓:數(shù)據(jù)血緣的管控方法及應用場景

          ? [2] Michael Adjei:什么是數(shù)據(jù)血緣?數(shù)據(jù)血緣的五大好處

          ? [3]?李俊杰:2022 數(shù)據(jù)血緣基本指南

          ? [4] 字節(jié)跳動:詳解數(shù)據(jù)血緣的「整體設計」與「評價方案」

          ? [5] twt社區(qū):基于圖數(shù)據(jù)庫的元數(shù)據(jù)血緣關系分析技術研究與實踐

          瀏覽 152
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久久久亚洲 | 狠狠干b| 午夜成人毛片 | 日批在线免费看网站 | 国产极品久久久 |