基于圖數據庫的元數據血緣關系分析技術研究與實踐
1.背景
圖數據庫,不是存儲圖片的數據庫,而是以圖論為基礎存儲節點與節點間關系的數據庫。圖數據庫是近年來成長最快的數據庫分類,從社交網絡到金融關系,都會涉及大量的高度關聯數據,因此圖數據庫很早就開始被Twitter,Facebook和Google等公司采用,也成為當今各行各業所推崇的主流技術。
較傳統關系型數據庫,關系在圖數據庫中是最重要的元素,應用程序不必使用外鍵約束實現表間的相互引用。圖1分別展示了圖數據庫和關系型數據庫在查找三度人脈關系時的工作原理,可以看出圖數據庫能夠充分發揮其存儲關系的優勢,利用關系作為連接跳板進行查詢,而關系型數據庫必須進行表連接的操作,表連接次數隨著查詢的度數增大而增多,會極大影響查詢的響應速度。
圖1 圖數據庫和關系型數據庫查找三度人脈關系邏輯示例
圖數據庫支持非常靈活和細粒度的數據模型,可以用簡單直觀的方式對數據應用進行建模和管理,利用圖的方式來表達現實世界的很多事物將更為直接、易于理解,同時圖數據庫在查詢關系時性能極佳,在深挖關系上極具潛力,具備挖掘數據潛在價值的能力,與關系數據庫相比,圖數據庫可支持更多類型的關系場景,本文將基于圖數據庫對元數據血緣關系進行研究和實踐。
1.1 元數據
大數據時代的到來,意味著數據的海量性和復雜性。隨著平臺應用不斷推廣創新,基礎數據也會飛速增長,增長的數據就會存在血緣不清、重復存儲加工、口徑混亂、數據質量參差不齊等一系列問題。元數據是描述數據的數據,對數據及信息資源進行描述,是關于數據的更高層次抽象,通過對元數據的有效管理,能夠有效解決上述問題。
根據元數據描述對象的不同,可將其劃分為業務元數據、技術元數據和管理元數據。(1)業務元數據主要記錄在系統中業務的相關概念信息,包括業務術語、信息分類、指標定義、業務規則等。(2)技術元數據描述系統中技術領域的相關概念信息,包括數據結構、數據處理方面特征描述,以及數據源接口、數據倉庫、數據集市、存儲等全面數據處理環節的信息。(3)管理元數據定義系統中涉及管理領域的相關概念等信息,如對項目管理、IT運維、IT資源設備等相關信息的描述。
元數據實現了信息的描述和分類的格式化,能夠對數據資產進行有效管理,理清數據之間的關系。元數據可以幫助研發人員了解平臺的情況,例如平臺所包含的數據、數據存儲占用的空間、數據存儲位置、數據產出信息等,在此基礎上可以做一些運維報警工作。此外,它還有助于制定平臺數據統計的標準,梳理出統一的數據口徑、計算指標、上下游關聯關系,為數據質量及維護可視化奠定基礎。
1.2 元數據應用
元數據記錄了系統包含的數據、數據的表示、數據的來源,以及在系統中的流轉關系。元數據的應用廣泛,可以使用其構建業務術語、數據標準、數據字典、數據資產目錄、數據血緣關系以及數據地圖等。下面將主要介紹下文所涉及的數據血緣關系。
數據血緣能夠表示數據與數據之間的關系,反映數據在系統中的生產加工流程,主要包括集群血緣關系、系統血緣關系、表級血緣關系和字段血緣關系,當溯源數據的上游,即可查詢該數據的生成流程,對其來源進行跟蹤。當分析下游流向時,便具備影響度分析的功能。
在系統進行升級改造時,通過對依賴數據進行影響性分析,可以快速定位到下游受到影響的范圍,從而減少系統升級改造帶來的風險,如圖2快速定位改造影響系統范圍。當同時分析上游和下游流向時,即能獲得完整的數據流動鏈,依據此可以更好地分析依賴關系,輔助后續系統功能的增加。
圖2 快速定位改造影響系統范圍
2.元數據血緣關系實踐
使用圖數據庫存儲查詢元數據血緣關系,需要首先梳理出元數據之間的關聯關系建立圖模型,再以此為基礎整理出所需的數據,并將數據加載進圖數據庫,之后即可設計關系模型進行鏈路匹配查詢。
本文基于農業銀行人民銀行金融基礎數據報送系統,梳理了系統中表、腳本、作業、作業鏈、應用系統、主機、節點之間的關系,以構建圖模型。在數據準備環節,通過SQL腳本獲得腳本和表之間的關系以及表和表之間的關系,通過調度監控臺中作業鏈相關信息,建立作業和腳本,作業鏈和作業,父子作業等關系。隨后在圖數據庫平臺上進行操作,創建圖模型、建立模型與數據的映射關系,并執行數據加載操作,完成從建模到數據裝載的過程。為了實現血緣關系的查詢,需要提前設定好圖的匹配模式,在此基礎上編寫相應的圖查詢語句。結合現有的數據,本文展示了三種關系分析模型。
2.1 圖模型定義
在圖模型的設計上,本文采用先建立實體,再以實體節點展開建立節點與節點之間的關系的方式。通過農業銀行人民銀行金融基礎數據報送系統進行分析,建立作業鏈、作業、腳本等7種實體以及表之間的依賴關系、父子作業、作業鏈與作業的包含關系等10種關系,具體如下:
表1 圖模型schema定義
類型 | 名稱 | 中文名稱 |
實體 | ent_table | 表 |
ent_script | 腳本 | |
ent_job | 作業 | |
ent_jobchain | 作業鏈 | |
ent_system | 應用系統 | |
ent_node | 節點 | |
ent_host | 主機 | |
關系 | rel_tab_dep | 表與表依賴關系 |
rel_script_input | 表輸入腳本關系 | |
rel_script_output | 腳本輸出表關系 | |
rel_job_excute | 作業執行腳本關系 | |
rel_jobchain_contain | 作業鏈包含作業關系 | |
rel_job_place | 作業與節點存儲關系 | |
rel_job_runat | 作業與主機運行關系 | |
rel_job_follow | 作業之間父子關系 | |
rel_jobchain_follow | 作業鏈之間父子關系 | |
rel_jobchain_belongto | 作業鏈與系統所屬關系 |
圖3 元數據血緣關系圖模型示意圖
根據已定義的實體和關系,梳理如下信息:表基礎信息、腳本基礎信息、作業基礎信息、作業鏈基礎信息、應用系統基礎信息、節點基礎信息、主機基礎信息、表與表依賴關系、表輸入腳本關系、腳本輸出表關系、作業執行腳本關系、作業鏈包含作業關系、作業與節點存儲關系、作業與主機運行關系、作業之間父子關系、作業鏈之間父子關系以及作業鏈與系統所屬關系。
2.2 血緣關系模型定義
根據想要追溯的數據關系方向,將模型分為三類:向上追溯的依賴關系模型、向下流動的影響度分析模型以及串聯整個數據流向的數據加工模型,具體如下:
(1)依賴關系分析模型
對表級、作業級、作業鏈級依賴關系進行追溯。此三類的關系追溯處理邏輯相似,以表為例,選定一張表后不斷尋找該表的依賴表,直到找到源頭所在,形成向上的關系溯源。
(2)影響度分析模型
對其進行下游影響度分析時,需要不斷的進行查找當前節點被哪些節點依賴,以形成向下的完整關系鏈。
(3)數據加工模型
該模型能夠反映數據的生成加工過程,可查看表、腳本、作業、作業鏈、系統等不同級別的關聯關系,具體模型如圖4所示。從一張表出發展開與其相關的表的一度關系,并且關聯處理該表的腳本,追溯執行腳本的作業,展開該作業的父作業和子作業、運行節點和主機,查找包含該作業的作業鏈,并展開該作業鏈的所屬系統,從而呈現完整的數據加工過程。
圖4 數據加工模型
2.3 結果可視化
Cypher是Neo4j圖數據庫描述性圖查詢語言,允許不必編寫圖形結構的遍歷代碼實現對圖形存儲有表現力和效率的查詢,其語法形象易懂,編寫使用難度較低。開發人員只需關注如何找到數據,不必關心查詢過程的具體細節。上文提到的各血緣關系以虛擬場景實現具體代碼及結果如下:
(1) 依賴關系分析(以查詢機構信息表)為例)
MATCHdata=(na:TABLE{TABLE_NAME:'機構信息表_當期表_歷史表'})<-[r:DEPENDANCE*]-(nb:TABLE)
RETURNdata
圖5 依賴關系分析查詢結果圖
(2) 影響度分析(以查詢客戶信息表為例)
MATCH data=(na:TABLE{TABLE_NAME:'客戶信息表_備份表_歷史表'})-[r:DEPENDANCE*]->(nb:TABLE)
RETURN data
圖6 影響度分析查詢結果圖
(3) 數據加工模型
MATCH
data1=(:TABLE{TABLE_NAME:'機構信息表_當期表_歷史表'})<-[:DEPENDANCE*1..2]-(:TABLE),
data2=(:TABLE{TABLE_NAME:'機構信息表_當期表_歷史表'})<-[:OUTPUT*]-(:SCRIPT)<-[:EXCUTE*]-(nJ:JOB)<-[:RELATION*]-(:JOB),
data3=(nJ)-[:BELONGTO*]->(:LINK)-[:PERTAINTO*]->(:SYS),
data4=(nJ)-[:RUNINGON|RUNNINGON*]->()
RETURNdata1,data2,data3,data4
圖7 數據加工查詢結果圖
圖5-圖7展示了上文各模型Cypher語句的查詢結果。可以看出利用圖數據庫平臺能夠對圖查詢結果進行直觀地展示,并且支持查詢圖譜嵌入其他可視化系統。其作為輔助工具,能夠直觀地展示各個實體之間的關聯關系及屬性,有助于數據分析師、研發人員、業務人員進行分析探查。
以圖7為例,從表機構信息表_當期表_歷史表出發,它的加工處理依賴于表補錄表、地區表、賬號表。向左追溯,它是由腳本文件腳本_機構信息表的執行產出,該腳本由作業_機構信息表執行。它的父作業有作業_外部基礎信息表、作業_組織信息表、作業_代碼表等。該作業在節點_數據節點上,在主機_數據主機上。它包含于作業鏈_機構信息表作業鏈,此作業鏈屬于數據系統應用系統。以上就是查詢一張表的基本加工處理關系的全部過程。
3.總結與展望
本文基于圖數據庫對元數據的血緣關系進行研究和分析,通過建立圖模型、構建數據映射關系、定義血緣關系模型以及編寫Cypher查詢語句以實現元數據血緣關系的存儲和展示。在進行系統升級、系統改造甚至表結構變更等操作時通過該模型查詢結果的輔助,能夠快速、有效定位系統中受影響的范圍,大大減少了時間成本。目前,我行的數據湖建設正在有序推進,未來數據湖所涉及到大量的實時型、分析型計算,圖數據庫在關鍵路徑的分析中無疑會起到非常重要的作用。
圖數據庫在關系存儲上具有巨大的優勢,使其作為近六年來使用增長最迅速的數據庫,得到各行各業的廣泛關注。在互聯網、5G、人工智能等數字化技術推動下,隨著數據技術與金融行業的融合發展,銀行金融業當前面臨以下兩個問題。(1)數據間關聯復雜度增加,數據本身的4V特性(Volume大量、Velocity高速、Variety多樣、Value價值)使得查詢性能成指數級惡化,但數據實時關聯已成為不可逆的趨勢。(2)金融欺詐風險不斷擴大,傳統反欺詐技術不斷遭受著沖擊與挑戰。欺詐閉環、反洗錢監測、交易擔保識別等越來越多的場景需要多重維度、及時反饋的技術支持。圖數據庫的發展和興起正是解決這兩個問題的理想工具。積極推進圖計算平臺的搭建,積極探索圖數據庫在風控場景、營銷場景、智能搜索等場景的應用,可以為進一步挖掘海量數據潛在的商業價值奠定堅實的基礎。