数据血缘关系追溯方法、装置、电子设备和存储介质与流程

文档序号:33151681发布日期:2023-02-03 22:59阅读:25来源:国知局
数据血缘关系追溯方法、装置、电子设备和存储介质与流程

1.本技术涉及数据处理技术领域,尤其涉及一种数据血缘关系追溯方法、装置、电子设 备和存储介质。


背景技术:

2.在现代的大型互联网公司和银行中,数据库往往是企业最重要的核心资产之一。大 数据包含了一条从采集、加工、使用到更新的完整链路,环节越多,对数据来源和影响 的分析就越复杂。掌控复杂数据之间的血缘关系不仅可以方便业务查询和开发管理,更 能够帮助企业达到理解自身的数据资产的目标。
3.目前,追溯数据血缘关系的解决方案主要包括正向解析和反向推断两类,其中,正 向解析的核心做法是通过分析数据生产代码获得数据血缘,但是该方法需要定义大量与 sql词法和语法相同的规则,且在面对复杂的语法时,返回的语法树结构层数过多,枝 叶数据复杂,不易准确提取血缘关系数据,另外,面对不规范的sql写法,解析准确性 较差并且无法进行元数据信息校验。反向推断主要采用机器学习算法对数据样本进行学 习,这对算法的选择存在主观上的依赖,对样本要求较高,容易产生维数灾难、欠拟合 等问题。
4.因此,需要提出一种更优的追溯数据血缘关系的解决方案。


技术实现要素:

5.有鉴于此,本技术的目的在于提出一种数据血缘关系追溯方法、装置、电子设备和存储 介质,本技术能够针对性的解决现有的问题。
6.基于上述目的,第一方面,本技术提出了一种数据血缘关系追溯方法,所述方法包括: 从数据库中读取数据表的表结构信息,所述表结构信息包括字段,以及与每一字段对应的字 段值;对所述字段值进行模式提取,得到每一字段的事件模式;根据每一字段的所述事件模 式的相似度,确定不同字段之间的血缘关系;根据所述每一字段的血缘关系,确定不同数据 表之间的血缘关系。
7.进一步地,所述对所述字段值进行模式提取,得到每一字段的事件模式,进一步包括: 遍历每一所述字段值,得到所述字段值的固定常量;根据每一字段值中所述固定常量的出现 频次对所述字段值进行分组,得到多个集群;提取每一集群的事件模式,根据每一字段的字 段值所包含的事件模式得到每一字段的事件模式,其中,所述事件模式包括所述固定常量和 变量值。
8.进一步地,在遍历每一所述字段值,得到所述字段值的固定常量之前,所述方法还包括: 对所述字段值进行预处理,对预处理后的所述字段值进行分词处理,得到多个词组;所述遍 历每一所述字段值,得到所述字段值的固定常量,包括:根据所述词组出现的频次,得到所 述固定常量。
9.进一步地,所述字段包括第一字段和第二字段,所述根据每一字段的所述事件模式的相 似度,确定不同字段之间的血缘关系,进一步包括:根据所述第一字段中的事件模
式和所述 第二字段中的事件模式的重合度,得到所述第一字段和所述第二字段的相似度;在所述相似 度大于或等于第一阈值的情况下,确定所述第一字段与所述第二字段具有血缘关系,在所述 相似度小于第一阈值的情况下,确定所述第一字段与所述第二字段无血缘关系。
10.进一步地,,所述表结构信息包括数据表的创建时间,在确定所述第一字段与所述第二 字段具有血缘关系之后,所述方法还包括:根据所述第一字段和第二字段所在的数据表的创 建时间,确定创建时间较早的数据表对应的字段为源字段。
11.进一步地,所述数据表包括第一数据表和第二数据表,所述根据所述每一字段的血缘关 系,确定不同数据表之间的血缘关系,进一步包括:获取所述第一数据表与所述第二数据表 中具有血缘关系的字段数量;根据所述具有血缘关系的字段数量分别与所述第一数据表的字 段总数和所述第二数据表的字段总数的占比,确定所述第一数据表与所述第二数据表的血缘 关系。
12.进一步地,根据所述具有血缘关系的字段数量在所述第一数据表和所述第二数据表中的 占比,确定所述第一数据表与所述第二数据表的血缘关系,包括:在所述具有血缘关系的字 段数量与所述第一数据表的字段总数的占比以及所述具有血缘关系的字段数量与所述第二数 据表的字段总数的占据均大于或等于第二阈值的情况下,确定所述第一数据表与所述第二数 据表具有血缘关系;否则,确定所述第一数据表与所述第二数据表无血缘关系。
13.第二方面,还提供了一种数据血缘关系追溯装置,包括:信息获取模块,用于从数据库 中读取数据表的表结构信息,所述表结构信息包括字段,以及与每一字段对应的字段值;提 取模块,用于对所述字段值进行模式提取,得到每一字段的事件模式;第一处理模块,用于 根据每一字段的所述事件模式的相似度,确定不同字段之间的血缘关系;第二处理模块,用 于根据所述每一字段的血缘关系,确定不同数据表之间的血缘关系。
14.第三方面,还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在 所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序以实现第一 方面所述的方法。
15.第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处 理器执行实现第一方面任一项所述的方法。
16.总的来说,本技术的优势及给用户带来的体验在于:
17.本实施例通过从数据库中读取数据表的表结构信息,对字段值进行模式提取,得到每一 字段的事件模式;根据每一字段的事件模式的相似度,确定不同字段之间的血缘关系;根据 每一字段的血缘关系,确定不同数据表之间的血缘关系。此方法对样本要求不高,无需依赖 其他数据即可实现血缘追溯,可以降低确定数据表的血缘关系的难度,提升判断血缘关系的 准确性。
附图说明
18.在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或 元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本技术公开的 一些实施方式,而不应将其视为是对本技术范围的限制。
19.图1示出本技术的一种数据血缘关系追溯方法的流程图;
20.图2示出根据本技术实施例得到每一字段的事件模式的步骤流程图;
21.图3示出根据本技术实施例的数据血缘关系追溯装置的结构示意图;
22.图4示出本技术一实施例所提供的一种电子设备的结构示意图;
23.图5示出了本技术一实施例所提供的一种存储介质的示意图。
具体实施方式
24.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述 的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了 便于描述,附图中仅示出了与有关发明相关的部分。
25.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互 组合。下面将参考附图并结合实施例来详细说明本技术。
26.本实施例提供的一种数据血缘关系追溯方法可以应用于多种数据库之间的血缘关系 场景,可以帮助用户达到理解自身的数据资产的目标,可用于分析上游数据发生变化会 给下游数据带来哪些影响,下游数据发生变化时追踪上游问题的源头等场景。
27.图1示出本技术的一种数据血缘关系追溯方法的流程图。该方法的执行主体可以是服务 器也可以是电子设备。参考图1,数据血缘关系追溯方法包括如下步骤s101
‑‑
s104:
28.s101、从数据库中读取数据表的表结构信息。
29.本实施例中的数据表可以是同一业务系统的数据库中的数据表,也可以是不同的业务系 统对应的不同的数据库。
30.其中,表结构信息包括字段,以及与每一字段对应的字段值,字段用于表征数据属性, 字段中记录的文本信息为字段值。表结构信息还包括数据表所包含的所有字段、字段名、字 段数目和数据表的创建时间等,从而作为追溯数据的血缘关系的依据。
31.s102、对字段值进行模式提取,得到每一字段的事件模式。
32.本实施例中,对字段值进行模式提取可以从字段值的文字信息中提取出使用频率较高的 固定格式,将字段值所记录的非结构化的文本信息解析为结构化数据,得到字段的事件模式, 其中,事件模式包括固定常量和变量值,固定常量可以是常量字符串,变量值可以是字符串 所对应的不同变量。
33.本实施例中,对字段值进行模式提取,得到每一字段的事件模式,参考图2,具体包括 s1021
‑‑
s1023:
34.s1021、遍历每一字段值,得到字段值的固定常量。
35.可以理解的是,每一字段可对应一个或多个字段值,每一字段值的固定常量可能相同也 可能不同,因此,本实施例中,遍历每一字段值,以对字段值的常用格式进行检测,得到字 段值的固定常量。
36.可以理解的是,每一字段必须有记录,也就是字段值不能为空,因此在遍历每一字段值 之前,本实施例还对字段值进行预处理,对预处理后的字段值进行分词处理,得到多个词组。 然后再遍历每一字段值,根据字段值中词组出现的频次,得到固定常量。
37.s1022、根据每一字段值中固定常量的出现频次对字段值进行分组,得到多个集群。
38.例如,固定常量a在一次遍历中出现的频次为10次,则将与固定常量a对应的字段值分 为一组,记为集合甲,固定常量b在一次遍历中出现的频次为8次,则将与固定常量b对应 的字段值分为一组,记为集合乙。
39.s1023、提取每一集群的事件模式,根据每一字段的字段值所包含的事件模式得到每一字 段的事件模式。
40.由步骤s1022可知每一集群对应一个固定常量,则可以从每一集群中提取该集群对应的 事件模式,即,每一集群的事件模式和该集群中的字段值具有相同的事件模式,而一个字段 可以包括多个字段值,每一字段值可以存在于不同的集群中,即,每一字段的事件模式可以 有多个,因此,可根据每一字段的字段值所包含的事件模式得到每一字段的事件模式。
41.在一个例子中,本实施例得到每一字段的事件模式具体包括:对字段值进行清洗,去除 字段中的空值,再根据词义、连接符和分隔符对字段值进行分词处理,分词处理后得到的词 组作为令牌,词组及其出现的位置称为令牌位置对;然后对字段值进行遍历,选取出现频率 最高的令牌作为固定常量,将该常量和常量出现的位置作为事件模式的一部分;对字段值进 行多次迭代遍历,每次遍历排除上次出现频率最高的令牌;最后将字段值分组到多个集群中, 从每个集群中提取事件模式,这些事件模式是由常量字符串和变量值组成的事件模板,每一 事件模式为p。
42.在一个例子中,若某字段值为:
43.name=request(get:http://aaa:1000/bbbb/sitedata.html)
44.其中,name=request()为固定常量,get:http://aaa:1000/bbbb/sitedata.html为变量, 则,则提取到的事件模式可以标识为:
45.name=request(*)
46.在另一个例子中,若某字段值为:
47.leaving monitored scope(ensurelistitermsdata)execution time=52.9013
48.则leaving monitored scope()execution time=()为固定常量,ensurelistitermsdata 和52.9013为变量,则提取到的事件模式可以标识为:
49.leaving monitored scope(*)execution time=*。
50.s103、根据每一字段的事件模式的相似度,确定不同字段之间的血缘关系。
51.本实施例中,字段包括第一字段和第二字段,则根据每一字段的所述事件模式的相似度, 确定不同字段之间的血缘关系,包括:根据第一字段中的事件模式和第二字段中的事件模式 的重合度,得到第一字段和第二字段的相似度;在相似度大于或等于第一阈值的情况下,确 定第一字段与第二字段具有血缘关系,在相似度小于第一阈值的情况下,确定第一字段与第 二字段无血缘关系。
52.本实施例中,每一字段的事件模式的相似度可以用相似度公式来计算,其中,相似度公 式来为:
[0053][0054]
其中,s
ij
为数据表i字段i和数据表j字段j的相似度,m
ij
为字段i和字段j的相同的事 件模式数量,n
ij
为字段i和字段j的不重复的事件模式数量之和。
[0055]
例如,字段i的事件模式包括p1、p2、p3、p4、p5,字段j的事件模式包括p2、p3、p4、 p6,则字段i和字段j相同的事件模式包括p2、p3、p4,一共3个。字段i和字段j的不重复 的事件模式数量包括p1、p2、p3、p4、p5、p6,一共6个,则s
ij
=3/6
×
100%=50%。
[0056]
本实施例通过相似度与第一阈值的大小关系来确定第一字段与第二字段是否有血缘关系, 在相似度大于或等于第一阈值的情况下,确定第一字段与第二字段具有血缘关系,在相似度 小于第一阈值的情况下,确定第一字段与第二字段无血缘关系。
[0057]
具体地,可以用血缘关系判定公式表示:
[0058][0059]
其中,typ
ij
为字段i和字段j的血缘关系判定,s
t
为第一阈值,typ
ij
=1代表字段i和字 段j具有血缘关系,typ
ij
=0代表字段i和字段j不具有血缘关系。
[0060]
在判定两字段是否具有血缘关系之后,还可以通过表结构信息对字段进行溯源,具体地。 表结构信息包括数据表的创建时间,在确定所述第一字段与所述第二字段具有血缘关系之后, 本实施例还包括:根据第一字段和第二字段所在的数据表的创建时间,确定创建时间较早的 数据表对应的字段为源字段。
[0061]
例如,typ
ij
=1,字段i和字段j具有血缘关系,字段i所在的数据表i的创建时间早于字 段j所在的数据表j的创建时间,那么字段i是源,字段j是目标。
[0062]
s104、根据每一字段的血缘关系,确定不同数据表之间的血缘关系。
[0063]
本实施例中,数据表包括第一数据表和第二数据表,则根据每一字段的血缘关系,确定 不同数据表之间的血缘关系,包括:获取第一数据表与第二数据表中具有血缘关系的字段数 量;根据具有血缘关系的字段数量分别与第一数据表的字段总数和第二数据表的字段总数的 占比,确定第一数据表与第二数据表的血缘关系。
[0064]
例如,第一数据表为数据表i,第二数据表为数据表j,数据表i和数据表j具有血缘关 系的字段数目为l
ij
,数据表i和数据表j具有血缘关系的字段数量与第一数据表的字段总数 的比例其中,ci为第一数据表的字段总数。
[0065]
数据表i和数据表j具有血缘关系的字段数量与第二数据表的字段总数的比例为:
[0066]
其中,cj为第二数据表的字段总数。
[0067]
例如,数据表i和数据表j具有血缘关系的字段数目l
ij
为3,数据表i和数据表j的字段 总数分别为5和6,那么wi=60%,wj=50%。
[0068]
本实施例中,根据具有血缘关系的字段数量在第一数据表和第二数据表中的占比,确定 第一数据表与第二数据表的血缘关系,包括:在具有血缘关系的字段数量与第一数据表的字 段总数的占比以及具有血缘关系的字段数量与第二数据表的字段总数的占据均大于或等于第 二阈值的情况下,确定第一数据表与所述第二数据表具有血缘关系;否则,确定第一数据表 与第二数据表无血缘关系。
[0069]
具体地,数据表i和数据表j之间的血缘关系typ
ij
用公式表示为:
[0070][0071]
其中,typ
ij
为数据表i和数据表j之间的血缘关系代表值,typ
ij
=1代表数据表i和
数据 表j具有血缘关系,typ
ij
=0,代表数据表i和数据表j无血缘关系。
[0072]
本实施例在判定两数据表是否具有血缘关系之后,还可以通过数据表的创建时间对第一 数据表与第二数据表进行溯源,例如,在确定第一数据表与第二数据表具有血缘关系之后, 本实施例还包括:根据第一数据表与第二数据表的创建时间,确定创建时间较早的数据表为 源表。例如,typ
ij
=1,数据表i和数据表j具有血缘关系,数据表i的创建时间早于数据表j的创建时间,那么数据表i是源表,数据表j是目标表。
[0073]
本实施例通过从数据库中读取数据表的表结构信息,对字段值进行模式提取,得到每一 字段的事件模式;根据每一字段的事件模式的相似度,确定不同字段之间的血缘关系;根据 每一字段的血缘关系,确定不同数据表之间的血缘关系。此方法对样本要求不高,无需依赖 其他数据即可实现血缘追溯,可以降低确定数据表的血缘关系的难度,提升判断血缘关系的 准确性。
[0074]
图3示出根据本技术实施例的数据血缘关系追溯装置的结构示意图。该数据血缘关系 追溯装置300用于执行上述实施例所述的数据血缘关系追溯方法,如图3所示,该数据血缘 关系追溯装置300包括:
[0075]
信息获取模块301,用于从数据库中读取数据表的表结构信息,所述表结构信息包括字 段,以及与每一字段对应的字段值;
[0076]
提取模块302,用于对所述字段值进行模式提取,得到每一字段的事件模式;
[0077]
第一处理模块303,用于根据每一字段的所述事件模式的相似度,确定不同字段之间的 血缘关系;
[0078]
第二处理模块304,用于根据所述每一字段的血缘关系,确定不同数据表之间的血缘关 系。
[0079]
在一个例子中,提取模块302还用于遍历每一所述字段值,得到所述字段值的固定常量; 根据每一字段值中所述固定常量的出现频次对所述字段值进行分组,得到多个集群;提取每 一集群的事件模式,根据每一字段的字段值所包含的事件模式得到每一字段的事件模式,其 中,所述事件模式包括所述固定常量和变量值。
[0080]
在一个例子中,提取模块302还用于对所述字段值进行预处理,对预处理后的所述字段 值进行分词处理,得到多个词组;根据所述词组出现的频次,得到所述固定常量。
[0081]
在一个例子中,第一处理模块303还用于根据所述第一字段中的事件模式和所述第二字 段中的事件模式的重合度,得到所述第一字段和所述第二字段的相似度;在所述相似度大于 或等于第一阈值的情况下,确定所述第一字段与所述第二字段具有血缘关系,在所述相似度 小于第一阈值的情况下,确定所述第一字段与所述第二字段无血缘关系。
[0082]
在一个例子中,第一处理模块303还用于根据所述第一字段和第二字段所在的数据表的 创建时间,确定创建时间较早的数据表对应的字段为源字段。
[0083]
在一个例子中,第二处理模块304还用于获取所述第一数据表与所述第二数据表中具有 血缘关系的字段数量;根据所述具有血缘关系的字段数量分别与所述第一数据表的字段总数 和所述第二数据表的字段总数的占比,确定所述第一数据表与所述第二数据表的血缘关系。
[0084]
在一个例子中,第二处理模块304还用于在所述具有血缘关系的字段数量与所述第一数 据表的字段总数的占比以及所述具有血缘关系的字段数量与所述第二数据表的字
用微处理器或者数字信号处理器(dsp)来实现根据本技术实施例的虚拟机的创建系统中 的一些或者全部部件的一些或者全部功能。本技术还可以实现为用于执行这里所描述的 方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这 样的实现本技术的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号 的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任 何其他形式提供。
[0103]
应该注意的是上述实施例对本技术进行说明而不是对本技术进行限制,并且本领域 技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中, 不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存 在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在 多个这样的元件。本技术可以借助于包括有若干不同元件的硬件以及借助于适当编程的 计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过 同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将 这些单词解释为名称。
[0104]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到其各种变化或替换, 这些都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护 范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1