麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
1618
2023-04-25
基于图数据库的元数据血缘关系分析技术研究与实践
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是***图数据库描述性图查询语言,允许不必编写图形结构的遍历代码实现对图形存储有表现力和效率的查询,其语法形象易懂,编写使用难度较低。开发人员只需关注如何找到数据,不必关心查询过程的具体细节。上文提到的各血缘关系以虚拟场景实现具体代码及结果如下:
(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) 数据加工模型
MATCHdata1=(: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)金融欺诈风险不断扩大,传统反欺诈技术不断遭受着冲击与挑战。欺诈闭环、反洗钱监测、交易担保识别等越来越多的场景需要多重维度、及时反馈的技术支持。图数据库的发展和兴起正是解决这两个问题的理想工具。积极推进图计算平台的搭建,积极探索图数据库在风控场景、营销场景、智能搜索等场景的应用,可以为进一步挖掘海量数据潜在的商业价值奠定坚实的基础。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。