基於圖資料庫的後設資料血緣關係分析技術研究與實踐
【作者】付宏雪 農行研發中心
1 背景
圖資料庫,不是儲存圖片的資料庫,而是以圖論為基礎儲存節點與節點間關係的資料庫。圖資料庫是近年來成長最快的資料庫分類,從社交網路到金融關係,都會涉及大量的高度關聯資料,因此圖資料庫很早就開始被Twitter,Facebook和Google等公司採用,也成為當今各行各業所推崇的主流技術。
較傳統關係型資料庫,關係在圖資料庫中是最重要的元素,應用程式不必使用外來鍵約束實現表間的相互引用。圖1分別展示了圖資料庫和關係型資料庫在查詢三度人脈關係時的工作原理,可以看出圖資料庫能夠充分發揮其儲存關係的優勢,利用關係作為連線跳板進行查詢,而關係型資料庫必須進行表連線的操作,表連線次數隨著查詢的度數增大而增多,會極大影響查詢的響應速度。
圖1 圖資料庫和關係型資料庫查詢三度人脈關係邏輯示例
圖資料庫支援非常靈活和細粒度的資料模型,可以用簡單直觀的方式對資料應用進行建模和管理,利用圖的方式來表達現實世界的很多事物將更為直接、易於理解,同時圖資料庫在查詢關係時效能極佳,在深挖關係上極具潛力,具備挖掘資料潛在價值的能力,與關聯式資料庫相比,圖資料庫可支援更多型別的關係場景,本文將基於圖資料庫對後設資料血緣關係進行研究和實踐。
1.1 後設資料
大資料時代的到來,意味著資料的海量性和複雜性。隨著平臺應用不斷推廣創新,基礎資料也會飛速增長,增長的資料就會存在血緣不清、重複儲存加工、口徑混亂、資料質量參差不齊等一系列問題。後設資料是描述資料的資料,對資料及資訊資源進行描述,是關於資料的更高層次抽象,透過對後設資料的有效管理,能夠有效解決上述問題。
根據後設資料描述物件的不同,可將其劃分為業務後設資料、技術後設資料和管理後設資料。(1)業務後設資料主要記錄在系統中業務的相關概念資訊,包括業務術語、資訊分類、指標定義、業務規則等。(2)技術後設資料描述系統中技術領域的相關概念資訊,包括資料結構、資料處理方面特徵描述,以及資料來源介面、資料倉儲、資料集市、儲存等全面資料處理環節的資訊。(3)管理後設資料定義系統中涉及管理領域的相關概念等資訊,如對專案管理、IT運維、IT資源裝置等相關資訊的描述。
後設資料實現了資訊的描述和分類的格式化,能夠對資料資產進行有效管理,理清資料之間的關係。後設資料可以幫助研發人員瞭解平臺的情況,例如平臺所包含的資料、資料儲存佔用的空間、資料儲存位置、資料產出資訊等,在此基礎上可以做一些運維報警工作。此外,它還有助於制定平臺資料統計的標準,梳理出統一的資料口徑、計算指標、上下游關聯關係,為資料質量及維護視覺化奠定基礎。
1.2 後設資料應用
後設資料記錄了系統包含的資料、資料的表示、資料的來源,以及在系統中的流轉關係。後設資料的應用廣泛,可以使用其構建業務術語、資料標準、資料字典、資料資產目錄、資料血緣關係以及資料地圖等。下面將主要介紹下文所涉及的資料血緣關係。
資料血緣能夠表示資料與資料之間的關係,反映資料在系統中的生產加工流程,主要包括叢集血緣關係、系統血緣關係、表級血緣關係和欄位血緣關係,當溯源資料的上游,即可查詢該資料的生成流程,對其來源進行跟蹤。當分析下游流向時,便具備影響度分析的功能。
在系統進行升級改造時,透過對依賴資料進行影響性分析,可以快速定位到下游受到影響的範圍,從而減少系統升級改造帶來的風險,如圖2快速定位改造影響系統範圍。當同時分析上游和下游流向時,即能獲得完整的資料流動鏈,依據此可以更好地分析依賴關係,輔助後續系統功能的增加。
圖2 快速定位改造影響系統範圍
2 後設資料血緣關係實踐
使用圖資料庫儲存查詢後設資料血緣關係,需要首先梳理出後設資料之間的關聯關係建立圖模型,再以此為基礎整理出所需的資料,並將資料載入進圖資料庫,之後即可設計關係模型進行鏈路匹配查詢。
本文基於農業銀行人民銀行金融基礎資料包送系統,梳理了系統中表、指令碼、作業、作業鏈、應用系統、主機、節點之間的關係,以構建圖模型。在資料準備環節,透過SQL指令碼獲得指令碼和表之間的關係以及表和表之間的關係,透過排程監控臺中作業鏈相關資訊,建立作業和指令碼,作業鏈和作業,父子作業等關係。隨後在圖資料庫平臺上進行操作,建立圖模型、建立模型與資料的對映關係,並執行資料載入操作,完成從建模到資料裝載的過程。為了實現血緣關係的查詢,需要提前設定好圖的匹配模式,在此基礎上編寫相應的圖查詢語句。結合現有的資料,本文展示了三種關係分析模型。
2.1 圖模型定義
在圖模型的設計上,本文采用先建立實體,再以實體節點展開建立節點與節點之間的關係的方式。透過農業銀行人民銀行金融基礎資料包送系統進行分析,建立作業鏈、作業、指令碼等7種實體以及表之間的依賴關係、父子作業、作業鏈與作業的包含關係等10種關係,具體如下:
型別 | 名稱 | 中文名稱 |
實體 | 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)金融欺詐風險不斷擴大,傳統反欺詐技術不斷遭受著衝擊與挑戰。欺詐閉環、反洗錢監測、交易擔保識別等越來越多的場景需要多重維度、及時反饋的技術支援。圖資料庫的發展和興起正是解決這兩個問題的理想工具。積極推進圖計算平臺的搭建,積極探索圖資料庫在風控場景、營銷場景、智慧搜尋等場景的應用,可以為進一步挖掘海量資料潛在的商業價值奠定堅實的基礎。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2929466/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 攜程酒店基於血緣後設資料的資料流程最佳化實踐
- 火山引擎DataLeap資料血緣技術建設實踐
- 乾貨 | 攜程酒店基於血緣後設資料的資料流程最佳化實踐
- Yelp 的 Spark 資料血緣建設實踐!Spark
- 資料血緣系列(4)—— 資料血緣的特點與相關概念
- 數倉血緣關係資料的儲存與讀寫
- 主機廠資料資產血緣分析治理實踐
- 好書推薦《資料血緣分析原理與實踐 》:資料治理神兵利器
- 一文詳解後設資料管理與資料血緣
- 火山引擎DataLeap資料血緣技術實現與具體用例
- 基於 Spark 的資料分析實踐Spark
- 關係型資料庫與非關係型資料庫介紹!資料庫
- 基於python爬蟲技術對於淘寶的資料分析的設計與實現Python爬蟲
- 大資料技術與Hadoop之間的關係大資料Hadoop
- 資料血緣系列(1)—— 為什麼需要資料血緣?
- 2- hive後設資料與hadoop的關係HiveHadoop
- 資料血緣系列(3)—— 資料血緣視覺化之美視覺化
- 關於資料庫壓縮技術的Survey資料庫
- 架構與資料庫的關係架構資料庫
- 設計資料庫關係模型資料庫模型
- MSSQL-最佳實踐-資料庫恢復模式與備份的關係SQL資料庫模式
- 圖資料庫 NebulaGraph 的 Java 資料解析實踐與指導資料庫Java
- 關係型資料庫和非關係型資料庫的區別資料庫
- 新一代雲原生資料庫關鍵技術解析與最佳實踐資料庫
- 前瞻|Amundsen的資料血緣功能
- 騰訊基於全時態資料庫技術的資料閃回資料庫
- CNCC技術論壇|分散式資料庫HTAP的探索與實踐分散式資料庫
- 關於大資料的建模、分析、挖掘技術應用大資料
- 關係型資料庫資料庫
- 基於MaxCompute InformationSchema進行血緣關係分析ORM
- SACC2017:資料庫架構設計與實踐的後半生資料庫架構
- 基於雲原生的大資料實時分析方案實踐大資料
- 資料治理之後設資料管理實踐
- SQL與NoSQL(關係型與非關係型)資料庫的區別SQL資料庫
- 資料庫多對多表關係資料資料庫
- DIY技術資訊抓取工具的實踐與研究
- 資料庫入門之3張表對比關係型與非關係型資料庫資料庫
- 基於 DataLakeAnalytics 的資料湖實踐