一种基于探针的数据溯源系统及其溯源方法与流程

文档序号:32655768发布日期:2022-12-23 21:34阅读:32来源:国知局
一种基于探针的数据溯源系统及其溯源方法与流程

1.本发明属于计算机信息通信及安全技术领域,具体涉及一种基于探针的数据溯源系统及其溯源方法。


背景技术:

2.随着数据中台深入建设,业务系统(本技术的具体对象是pms2.0业务系统)深化完善应用,业务应用场景建设需求迫切,需要能够提供准确理解数据的业务内涵,正确展现业务的数据支撑,更是数据管理的必然发展和数据应用的重要前置需求。
3.针对上述问题,该技术领域研究从源端入手,以在线化、智能化的方法进行数据关系构建,可以从基层、从源端消除数据重复录入、提升数据质量和应用价值,并为挖掘数据资源价值和提升数据运营能力奠定基础。


技术实现要素:

4.本发明目的是提供一种基于探针的数据溯源系统及其溯源方法,基于多种类型的探针技术,设计前后端数据捕获机制。实现数据库日志脚本的智能解析、数据服务及微服务全链路的监测分析能力。支撑数据资产地图的智能构建,支撑数据在线监测和动态感知。为数据源链路关系的呈现,数据血缘关系分析提供基础支撑能力。
5.为了实现以上目的,本发明采用的技术方案为:一种基于探针的数据溯源系统,包括:
6.生产服务器:生产服务器上嵌入探针,所述的探针连接span数据结构层,所述的span数据结构层包括客户端发送请求单元、客户端收到响应单元、服务端收到请求单元和服务端发送响应单元;
7.应用服务器:生产服务器上设置探针匹配单元,所述的探针匹配单元与生产服务器上的业务层链接;所述的应用服务器上探针匹配单元自动捕获所涉及的业务层及业务层上对应的sql语句;
8.关键字规则库:作为对sql脚本分解,语法语义分析的前置架构;
9.sql智能解析单元:将探针工具采集到的sql脚本,变换为一个描述这个sql脚本的结构体;
10.将前端与sql脚本的数据表、数据字段一一映射,构建业数映射关系;将sql脚本中的关系进行串联,构建完整的数据链路。
11.进一步的,还包括单元模块影响分析层,所述的单元模块影响分析层以单元模块为核心逐层向上下游探察形成模块-数据库用户-模型-字段关系图谱。
12.再进一步的,还包括数据热度分析层,所述的数据热度分析层分析各个业务单元的单元模块、模型的使用频度和数据热度。
13.再进一步的,还包括同源疑似分析层,所述的同源疑似分析层对系统相同的业务数据实体同源疑似分析。
14.一种基于探针的数据溯源系统的其溯源方法,包括如下步骤:
15.1)、探针埋点:通过在生产服务器上的应用部署或者嵌入探针的方法进行应用数据采集,探针根据对于业务链条中的每一次请求调用,划分为客户端发送请求单元、客户端收到响应单元、服务端收到请求单元、服务端发送响应单元四个事件单元,并由这四个事件单元组织为span数据结构层;
16.2)、基于面向切面编程执行:通过预编译方法和运行期间动态代理实现单元功能的统一维护;
17.3)、通过在业务系统应用服务器中间部署探针单元,当进行系统菜单页面操作时,捕获该菜单页面所涉及的业务层及业务层对应的sql语句,以获取前后端对应关系信息;
18.4)、建立关键字规则库:建立关键字规则库,作为对sql脚本分解单元,语法语义分析的前置架构;
19.5)、sql智能解析单元解析:将探针工具采集到的sql脚本,变换为一个描述这个sql脚本的结构体;包含四个步骤,分别是关键字识别、sql脚本分解、语义分析和关联关系/血缘关系提取;
20.6)、构建业数映射关系及数据链路关系:将前端操作功能菜单与sql脚本涉及到对数据表、数据字段的操作一一映射,构建业数映射关系;将sql脚本中提取出的关联关系/血缘关系进行串联,构建完整的数据链路;通过双螺旋模型链模型构建模型关系,识别出模型对应的功能模块之间的链路关系,并以双螺旋模型刻画;
21.7)、构建数据关系图谱:关系图谱基于系统以及单元模块、模型、字段之间的关系,以一个系统为核心逐层向外探察而形成的一个复杂关系网络图谱;
22.8)、构建单元模块影响分析层:以单元模块为核心逐层向上下游探察形成模块-数据库用户-模型-字段关系图谱,通过单元模块影响分析层,事前在用户系统新建、扩容改造前提供数据参考依据,事后将业务系统已经发生变更的数据内容进行同步展示;
23.9)、构建数据热度分析层:分析各个业务单元下的单元模块、模型的使用频度和数据热度,基于数据热度实现数据共享消费数量排行、数据规模排行、数据活性能力数据;
24.10)、构建同源疑似分析层:同源疑似分析,提供疑似数据参考。
25.进一步的,步骤1)中通过定义span之间的调用父子关系,对离散的span数据进行重组,还原完整的调用链条;span间的关系通过跟踪点编号、父节点编号、标签编号来标识;
26.其中,跟踪点编号是一次完整调用链路的唯一标识,父节点编号标识当前span的前一个调用span,标签编号用来唯一的标识某一次调用。
27.进一步的,步骤2)中利用截取消息的方法,对该消息进行装饰,以取代原有对象行为的执行;采用静态织入的方法,引入特定的语法创建执行单元,从而使得编译器在编译期间织入有关执行单元的代码。
28.进一步的,步骤7)中数据关系图谱按需求查询数据关系,包括系统与模块关系、功能与数据关系、数据关联关系、系统集成关系。
29.再进一步的,采用均匀网格搜索法或者梯度下降法构建。
30.本发明的技术效果在于:本发明基于多种类型的探针技术,设计前后端数据捕获机制。实现数据库日志脚本的智能解析、数据服务及微服务全链路的监测分析能力。支撑数据资产地图的智能构建,支撑非生产环境下数据在线监测和动态感知。为数据一个源的链
路关系呈现,数据血缘关系分析提供基础支撑能力。
附图说明
31.图1为本发明主体业务层级结构图:
32.图2为本发明底层原理结构图:
33.图3为本发明底层技术架构原理图。
34.具体实施方法
35.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.参照附图,一种基于探针的数据溯源系统,包括:
37.生产服务器:生产服务器上嵌入探针,所述的探针连接span数据结构层,所述的span数据结构层包括客户端发送请求单元、客户端收到响应单元、服务端收到请求单元和服务端发送响应单元;
38.应用服务器:生产服务器上设置探针匹配单元,所述的探针匹配单元与生产服务器上的业务层链接;所述的应用服务器上探针匹配单元自动捕获所涉及的业务层及业务层上对应的sql语句;
39.关键字规则库:作为对sql脚本分解,语法语义分析的前置架构;
40.sql智能解析单元:将探针工具采集到的sql脚本,变换为一个描述这个sql脚本的结构体;
41.将前端与sql脚本的数据表、数据字段一一映射,构建业数映射关系;将sql脚本中的关系进行串联,构建完整的数据链路。
42.进一步的,还包括单元模块影响分析层,所述的单元模块影响分析层以单元模块为核心逐层向上下游探察形成模块-数据库用户-模型-字段关系图谱。
43.再进一步的,还包括数据热度分析层,所述的数据热度分析层分析各个业务单元的单元模块、模型的使用频度和数据热度。
44.再进一步的,还包括同源疑似分析层,所述的同源疑似分析层对系统相同的业务数据实体同源疑似分析。
45.基于上述溯源系统的一种基于探针的数据溯源方法,包括如下步骤:
46.1)、探针埋点:通过在生产服务器上的应用部署或者嵌入探针的方法进行应用数据采集,探针根据对于业务链条中的每一次请求调用,划分为clientsend(客户端发送请求单元)、clientrecv(客户端收到响应单元)、serverrecv(服务端收到请求单元)、serversend(服务端发送响应单元)等四个事件单元,并由这四个事件单元组织为一个称作span(的)数据结构(层)。通过定义span之间的调用(父子)关系,对离散的span数据进行重组,以还原完整的调用链条。span间的关系通过traceid(跟踪点编号)、parentid(父节点编号)、spanid(标签编号)来标识。traceid(跟踪点编号)是一次完整调用链路的唯一标识,parentid(父节点编号)标识当前span的前一个调用span,spanid(标签编号)用来唯一的标识某一次调用。
47.2)、基于aop面向切面编程(技术)执行:通过预编译方法和运行期间动态代理实现单元功能的统一维护。采用动态代理技术,利用截取消息的方法,对该消息进行装饰,以取代原有对象行为的执行;采用静态织入的方法,引入特定的语法创建“方面”(即执行单元),从而使得编译器在编译期间织入有关“方面”(即执行单元)的代码。
48.3)、通过在业务系统应用服务器中间部署探针单元,当进行系统菜单页面操作时,自动捕获该菜单页面所涉及的service(业务层)及service(业务层)对应的sql语句,以获取前后端对应关系信息,精准实现菜单页面涉及的service(业务层)及其触发的sql的一对一映射关系。
49.4)、建立关键字规则库:首先,建立关键字规则库,作为对sql脚本分解(单元),语法语义分析的前置架构。常见关键字如insert、update、select、from、where、order by、having等,需要按照关键字的含义和功能进行分类。
50.5)、sql智能解析单元解析:sql智能解析是将探针工具采集到的sql脚本,变换为一个描述这个sql脚本的结构体,便于理解sql脚本的含义和存储。这个阶段包含四个步骤,分别是关键字识别、sql脚本分解、语义分析和关联关系/血缘关系提取。
51.6)、构建业数映射关系及数据链路关系:将前台(即前端)操作功能菜单与sql脚本涉及到对数据表、数据字段的操作一一映射,构建业数映射关系;将sql脚本中提取出的关联关系/血缘关系进行串联,构建完整的数据链路;通过双螺旋模型链模型构建模型关系,自动识别出模型对应的功能模块之间的链路关系,并以双螺旋模型刻画;
52.7)、构建数据关系图谱:关系图谱基于系统以及(单元)模块、模型、字段之间的关系,以一个系统为核心逐层向外探察而形成的一个复杂关系网络图谱,直观立体展现系统模型的各种关联关系;数据关系图谱可按需求查询数据关系,包括系统与模块关系、功能与数据关系、数据关联关系、系统集成关系;
53.8)、构建(单元)模块影响分析(层):影响分析(层)以(单元)模块为核心逐层向上下游探察形成模块-数据库用户-模型-字段关系图谱,直观呈现该模块范围影响分析结果,通过(单元)模块影响分析(层),事前在用户系统新建、扩容改造前提供(数据)参考(依据),事后将业务系统已经发生变更的(数据)内容进行同步展示;
54.9)、构建数据热度分析(层):分析各个业务(单元)下的(单元)模块、模型的使用频度和数据热度,基于(数据)热度实现数据共享消费数量排行、数据规模排行、数据活性能力(等)数据。
55.10)、构建同源疑似分析(层):针对不同系统下存在相同的业务数据实体,通过同源疑似分析,提供疑似数据参考,为数据确认环节提供支撑。
56.图3中,附图标记:
57.1、2、3:classloader将a.class装载入jvm,期间调用javaagent在a.class的字节码中嵌入监控代码后,生成a

,class;
58.4、5、6、7:当request请求需调用a.class,engine会找到并执行a

,class,a

,class执行a.class正常的业务逻辑;
59.8:a

.class执行结束,engine会将监控data写入监控数据暂存区;
60.9、10、11:每隔60s,agent线程向application insight server发送数据,并清理暂存区
61.基于上述的溯源方法,涉及算法如下:
62.通过本方案形成适用的业数关系智能识别方法与原型,可应用于业务系统前端业务功能和后台数据库表关系的构建,从而刻画业务流与数据流双螺旋算法模型。其中数据(流)溯源追踪标注模式与描述模型,引入了数据溯源的7w模型;对代理数据库的工作流服务框架中的数据跟踪模型,是基于一种双向指针机制的数据追踪方法,是目前计算数据溯源的主要方法和应用,着重分析了数据溯源计算的两种方法,即均匀网格搜索法和梯度下降法。
63.进一步的,运用算法如下:
64.(一)均匀网格搜索法:
65.若f(x)的定义域b={x∈rn|0≤xi≤1,i=1

,n}:
66.1.随机选取一个正整数p,
67.2.分别令xi1,i2,...,in=(i1p,...,inp)
68.3.对于任意i=0,...,p。
69.4.通过搜索这(p+1)n个点,找到最优解x
ˉ

70.(二)梯度下降法:
71.1.任选初始点xk
72.2.计算该点的导数
73.3.令
74.4.
75.5.反复迭代,直至收敛。
76.综上所述,本发明通过在(pms2.0业务)系统中部署数据溯源探针单元,获取业务功能、服务、数据表间对应关系,有效解决业数对应关系梳理难度大、过度依赖于系统建设厂商等问题,打通业务到数据的通道。且通过探测(单元)工具可智能识别(pms2.0业务)系统中对应菜单所关联的sql,表结构、关系图谱等信息。以字节码技术为基础,结合aop面向切面编程技术,在应用代码启动阶段,完成采集工具注入,实现无感数据抓取,准确获取系统前端功能与后端数据的映射关系,支撑资源目录构建。
77.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和方案之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1