CN112241421A - 一种数据血缘确定方法和装置 - Google Patents

一种数据血缘确定方法和装置 Download PDF

Info

Publication number
CN112241421A
CN112241421A CN201910649260.4A CN201910649260A CN112241421A CN 112241421 A CN112241421 A CN 112241421A CN 201910649260 A CN201910649260 A CN 201910649260A CN 112241421 A CN112241421 A CN 112241421A
Authority
CN
China
Prior art keywords
data table
field
similarity
data
calculating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910649260.4A
Other languages
English (en)
Inventor
雷涛
吕慧
耿宗可
谭可华
赵琳
李国庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyun Rongchuang Data Science & Technology Beijing Co ltd
Original Assignee
Tianyun Rongchuang Data Science & Technology Beijing Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianyun Rongchuang Data Science & Technology Beijing Co ltd filed Critical Tianyun Rongchuang Data Science & Technology Beijing Co ltd
Priority to CN201910649260.4A priority Critical patent/CN112241421A/zh
Publication of CN112241421A publication Critical patent/CN112241421A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据治理技术领域,提供了数据血缘确定方法和装置,包括:接收第一数据表和第二数据表各自的表名和表结构信息,所述表结构信息包括数据表中、英文字段名,字段类型和字段长度;计算所述第一数据表和所述第二数据表的表名相似度;根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分;根据所述血缘关系得分和预设阈值,确定所述第一数据表和所述第二数据表是否具有血缘关系。本发明利用表名和/或字段名相似关系确定数据表的数据血缘,达到不依赖审计日志及无需分析数据生产代码获得数据血缘的目的,可实现利用最少的数据表信息,确定数据血缘。

Description

一种数据血缘确定方法和装置
技术领域
本发明涉及数据治理技术领域,特别涉及一种数据血缘确定方法和装置。
背景技术
数据血缘(Data Lineage)是指数据产生的链路,它描述了一张表依赖哪些其他表,以及表内字段是如何依赖其他表的字段生成的。通过数据血缘可以清楚地知道数据生产的上下游依赖关系。当企业的业务种类繁多、业务体量很大的时候,支撑业务的整个数据库系统会涉及成百上千张表,表与表之间会形成非常复杂的依赖关系。如果业务变更比较频繁、开发周期短、人员流动高,随着时间流逝,表结构和表依赖关系可能会频繁发生变化,最终导致表与表之间关联关系变得复杂且难以追溯。常见的依赖关系都是数据表和生产任务之间的依赖,对于生产任务具体用到了上游数据表中的哪些字段只有在编码逻辑中才能体现,例如,数据库A或者A部门将更新的数据文件保存到指定目录,通过FTP或其他同步方式发送给数据库B,数据库B调用代码对数据文件进行解析,经过对若干字段的一系列计算,将最终计算的结果插入数据库B中,用于更新已经存在的字段或保存为新字段,具体计算过程是无法暴露给数据使用方的。拥有数据的企业请外部软件服务提供商执行数据治理任务时,往往只向外部合作方提供表头、数据字典等信息,外部合作方难以获得表格产生、变迁历史的中间过程记录,而数据库审计日志也难以体现全部中间处理流程。执行数据治理任务时首先需要理清依赖关系,以便搞清楚一个上游数据的变化会影响到哪些下游数据。如何不依赖中间处理过程记录甚至审计日志,获得精确的数据血缘,成为一个亟待解决的难题。
发明内容
本发明的实施例提供一种数据血缘确定方法和装置,利用表名和/或字段名相似关系确定数据表的数据血缘,达到不依赖审计日志或分析数据生产代码即可获得数据血缘的目的。
为达到上述目的,本发明实施例采用了如下技术方案:
第一方面,公开了一种数据血缘确定方法,包括:
接收第一数据表和第二数据表各自的表名和表结构信息,所述表结构信息包括数据表中、英文字段名,字段类型和字段长度;
计算所述第一数据表和所述第二数据表的表名相似度;
根据所述表结构信息,计算所述第一数据表的任一字段与所述第二数据表的任一字段的相似度,获得字段相似度矩阵;
根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分;
根据所述血缘关系得分和预设阈值,确定所述第一数据表和所述第二数据表是否具有血缘关系。
结合第一方面,在第一种可能的实现方式中,所述计算所述第一数据表的任一字段与所述第二数据表的任一字段的相似度,获得字段相似度矩阵,包括:
获取所述第一数据表的M个字段的中、英文字段名和所述第二数据表的N个字段的中、英文字段名;
计算所述第一数据表的每一个字段与所述第二数据表每一个字段的字段名的编辑距离,获得M乘以N个编辑距离,所述字段名是中文字段名或英文字段名;
根据所述编辑距离、字段类型相似度、字段长度相似度中的至少一个,计算所述字段的相似度;
获得所述第一数据表与所述第二数据表的字段相似度矩阵,所述字段相似度矩阵的第i行第j列元素是第一数据表第i个字段与第二数据表第j个字段的相似度。
结合第一方面或第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分,包括:
从所述表名相似度和所述字段相似度矩阵中,取最大的L个值,所述L小于或等于M与N中较小的值;
根据所述L个值,计算所述第一数据表和所述第二数据表的血缘关系得分。
结合第一方面或第一方面第一种可能的实现方式,在第三种可能的实现方式中,所述根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分,包括:
从所述字段相似度矩阵中取最大的L个值求和,所述L小于或等于M与N中较小的值;
获得所述表名相似度和所述和的权值;
计算所述表名相似度和所述和的加权和,获得所述第一数据表和所述第二数据表的血缘关系得分。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述获得所述表名相似度和所述和的权值,包括:
获取数据库审计日志,从审计日志中读取SQL命令;
解析所述SQL命令,获取SQL命令中蕴含的数据血缘关系集合;
根据所述血缘关系集合,利用贪心算法计算所述表名相似度和所述和的权值。
第二方面,公开了一种数据血缘确定装置,包括:
接收模块,用于接收第一数据表和第二数据表各自的表名和表结构信息,所述表结构信息包括数据表中、英文字段名,字段类型和字段长度;
第一计算模块,用于计算所述第一数据表和所述第二数据表的表名相似度;
第二计算模块,用于根据所述表结构信息,计算所述第一数据表的任一字段与所述第二数据表的任一字段的相似度,获得字段相似度矩阵;
第三计算模块,用于根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分;
确定模块,用于根据所述血缘关系得分和预设阈值,确定所述第一数据表和所述第二数据表是否具有血缘关系。
结合第二方面,在第一种可能的实现方式中,所述第二计算模块,具体用于:获取所述第一数据表的M个字段的中、英文字段名和所述第二数据表的N个字段的中、英文字段名;
计算所述第一数据表的每一个字段与所述第二数据表每一个字段的字段名的编辑距离,获得M乘以N个编辑距离,所述字段名是中文字段名或英文字段名;
根据所述编辑距离、字段类型相似度、字段长度相似度中的至少一个,计算所述字段的相似度;
获得所述第一数据表与所述第二数据表的字段相似度矩阵,所述字段相似度矩阵的第i行第j列元素是第一数据表第i个字段与第二数据表第j个字段的相似度。
结合第二方面或第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述第三计算模块,具体用于:
从所述表名相似度和所述字段相似度矩阵中,取最大的L个值,所述L小于或等于M与N中较小的值;
根据所述L个值,计算所述第一数据表和所述第二数据表的血缘关系得分;
结合第二方面或第二方面第一种可能的实现方式,在第三种可能的实现方式中,所述第三计算模块,具体用于:
从所述字段相似度矩阵中取最大的L个值求和,所述L小于或等于M与N中较小的值;
获得所述表名相似度和所述和的权值;
计算所述表名相似度和所述和的加权和,获得所述第一数据表和所述第二数据表的血缘关系得分。
结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,所述第三计算模块,具体用于:获取数据库审计日志,从审计日志中读取SQL命令;
解析所述SQL命令,获取SQL命令中蕴含的数据血缘关系集合;
根据所述血缘关系集合,利用贪心算法计算所述表名相似度和所述和的权值。
上述技术方案提供的数据血缘确定方法,利用数据表表名和表结构信息计算相似度,进而获得数据表血缘关系得分,并确定数据表之间的数据血缘,该方法不依赖审计日志,无需分析业务系统代码,大大降低了确定数据血缘的难度,有助于理清数据依赖关系,为数据治理工作奠定良好的基础。
附图说明
图1为本发明提供的一种数据血缘确定方法流程图;
图2为本发明提供的另一种数据血缘确定方法的流程图;
图3为本发明提供的另一种数据血缘确定方法的流程图;
图4为本发明提供的一种数据血缘确定装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种数据血缘确定方法,如图1所示,所述方法包括以下步骤:
S101、接收第一数据表和第二数据表各自的表名和表结构信息。所述数据表是关系数据库中的表,所述第一数据表和第二数据表可以是不同数据库乃至不同系统中的表,也可以是同一系统乃至同一个数据库中的表;所述表名可以是中文表名或英文表名,所述表结构信息包括数据表全部字段或部分字段的中文、英文字段名,字段类型和字段长度等。
S102、计算第一数据表和第二数据表表名的相似度。第一数据表和第二数据表的表名为有限长度的中文或英文字符串,以英文表名为例,通过计算表名的编辑距离来获得表名的相似度。两字符串的编辑距离即Damerau-Levenshtein距离,定义为将一个单词转换为另一个单词所需的单字符编辑动作(插入、删除、替换或相邻字符转换)的最小数量,记为:
DLD(strI,strJ)
其中,strI,strJ是两张表格的英文表名,将两表名相似度定义为:
Figure BDA0002134447000000051
len(strI)表示表名的长度,max(A,B)表示两个长度中较大的一个。当两个表名相同时,DLD(strI,strJ)=0,sIJ=1;当两个表名每一个字符都不同时,DLD(strI,strJ)=max(len(strI),len(strJ)),sIJ=0。所以sIJ∈[0,1],sIJ越大相似度越高,sIJ越小相似度越低。
S103、计算第一数据表的任一字段与第二数据表的任一字段的相似度,获得字段相似度矩阵。根据第一数据表的表结构可获得第一数据表每一个字段的中文字段名和/或英文字段名,及字段类型和长度;根据第二数据表的表结构可获得第二数据表每一个字段的中文字段名和/或英文字段名,及字段类型和长度。根据第一数据表任一字段的英文字段名和第二数据表任一字段的英文字段名,可按照如下方法计算字段相似度:
假定第一数据表包含M个字段,第二数据表包含N个字段,M、N均为正整数,将两数据表字段名依照其长度进行升序排列,令sij表示第一数据表的第i个字段和第二数据表的第j个字段的相似度,其定义为:
Figure BDA0002134447000000052
其中t_a_ColName_i表示第一数据表第i个字段的字段名,t_b_ColName_j表示第二数据表第j个字段的字段名,t_a_ColName_i和t_b_ColName_j同为英文字段名,或者同为中文字段名;DLD(*,*)是两个字段名的Damerau-Levenshtein距离,max(len(t_a_ColName_i),len(t_b_ColName_j))表示两个字段长度中较长的一个。与表名相似度类似,字段名相似度取值范围也是sij∈[0,1]。计算M×N个字段相似度之后,依序排列获得字段相似度矩阵:
Figure BDA0002134447000000061
其中,矩阵的全部元素可以全部都是基于中文字段名或英文字段名计算获得,也可以部分元素用英文字段名计算获得,其余元素用中文字段名计算获得,具体的,可以分别计算两个字段中文字段名相似度与英文字段名相似度,取:
Figure BDA0002134447000000062
其中
Figure BDA0002134447000000063
分别表示第一数据表第i个字段与第二数据表第j个字段的中文字段名相似度、英文字段名相似度。如只有部分字段具有中文字段名,则可以对具有中英文字段名的字段分别计算中英文字段名相似度并取较大的作为字段相似度,对于只有英文名的字段则只计算英文名相似度。
优选地,可以利用数据表字段名相似度、字段类型相似度和字段长度相似度中的至少一个,计算字段相似度,进而获得字段相似度矩阵。具体的,可以利用第一数据表任一字段的字段名、字段类型和长度,与第二数据表任一字段的字段名、字段类型和长度,计算第一数据表和第二数据表的字段相似度矩阵,假定第一数据表包含M个字段,第二数据表包含N个字段,令sij表示第一数据表的第i个字段和第二数据表的第j个字段的相似度,则:
sij=(1-w1-w2)×strij+w1×typij+w2×lenij
Figure BDA0002134447000000064
Figure BDA0002134447000000065
Figure BDA0002134447000000071
其中strij表示第一数据表第i个字段与第二数据表第j个字段的字段名相似度;typij表示第一数据表第i个字段与第二数据表第j个字段的字段类型相似度;lenij表示第一数据表第i个字段与第二数据表第j个字段的字段长度相似度;对以上三个相似度的加权求和获得字段相似度,w1和w2分别是字段类型相似度和字段长度相似度的权重,满足w1,w2∈[0,1]且三个相似度权重之和为1。w1和w2可以基于专家经验设定,或利用贪心算法计算获得。
S104、根据表名相似度和字段相似度矩阵,计算第一数据表和第二数据表的血缘关系得分。从表名相似度和字段相似度矩阵中,选择L个最大值求和,作为第一数据表和第二数据表的血缘关系得分,其中L等于M和N两个数的较小值。
优选地,首先取字段相似度矩阵S最大的元素
Figure BDA0002134447000000072
作为第一个最大值;然后从矩阵S中删除元素
Figure BDA0002134447000000073
所在的行和列,形成矩阵S′,选择S′最大的元素
Figure BDA0002134447000000074
作为第二个最大值;以此类推,直到选出L个最大的字段相似度,然后比较表名相似度sIJ
Figure BDA0002134447000000075
Figure BDA0002134447000000076
则令
Figure BDA0002134447000000077
否则
Figure BDA0002134447000000078
保持不变,第一数据表和第二数据表的血缘关系得分为:
Figure BDA0002134447000000079
获得血缘关系得分的同时,还可以保存L个最大相似度值对应的第一数据表和第二数据表的字段名,即第一数据表的第x1,x2,…,xL个字段和第二数据表的第y1,y2,…,yL个字段的字段名。
优选地,首先取字段相似度矩阵S最大的元素
Figure BDA00021344470000000710
作为第一个最大值;然后从矩阵S中删除元素
Figure BDA00021344470000000711
所在的行和列,形成矩阵S′,选择S′最大的元素
Figure BDA00021344470000000712
作为第二个最大值;以此类推,直到选出L个最大的字段相似度,第一数据表和第二数据表的血缘关系得分为:
Figure BDA00021344470000000713
即第一数据表与第二数据表的血缘关系得分是表名相似度与字段名相似度的加权和,其中权值w可以根据专家经验预先确定并保存备用,也可利用贪心算法计算获得。因数据库设计人员命名数据库字段时可能会参考该字段数据来源,因此依照表名相似和/或字段名相似计算得到的血缘关系得分可以反应数据表的数据血缘。
S105、根据血缘关系得分和预设阈值,确定第一数据表和第二数据表是否具有血缘关系。预设阈值Lthreshold可根据经验指定,利用机器学习方法获得,或者利用贪心算法计算获得。
S106a、当血缘关系得分高于阈值即Lscore>Lthreshold时,确定第一数据表和第二数据表具有血缘关系
S106b、当血缘关系得分不高于阈值即Lscore≤Lthreshold时,确定第一数据表和第二数据表没有血缘关系。
此外,无论根据血缘关系得分判定两数据表是否具有数据血缘,均可将不收S104中保存的L个最大相似度值对应的第一数据表和第二数据表的字段名输出,作为数据血缘输出结果的一部分,即数据血缘关系包括一个得分值(或一个评价结论)和一组具有最大相似度的字段名。
本发明实施例提供的数据血缘确定方法,利用数据表表名和表结构信息计算相似度,进而获得数据表血缘关系得分,并确定数据表之间的数据血缘,该方法不依赖审计日志,无需分析业务系统代码,大大降低了确定数据血缘的难度,有助于理清数据依赖关系,为数据治理工作奠定良好的基础。
实施例二
本发明实施例提供了一种数据血缘确定方法,如图2所示,该方法包括以下步骤:
S201、接收第一数据表和第二数据表各自的表名和表结构信息。所述数据表是关系数据库中的表,所述第一数据表和第二数据表可以是不同数据库乃至不同系统中的表,也可以是同一系统乃至同一个数据库中的表;所述表名可以是中文表名或英文表名,所述表结构信息包括数据表全部字段或部分字段的中文、英文字段名、字段类型和字段长度等。
S202、计算第一数据表和第二数据表表名的相似度。可根据第一数据表英文表名与第二数据表英文表名的编辑距离(Damerau-Levenshtein距离)计算表名的相似度sIJ,具体方法参考实施例一步骤S102,这里不再赘述。
S203、计算第一数据表的任一字段与第二数据表的任一字段的相似度,获得字段相似度矩阵。可根据第一数据表的任一字段的字段名、字段类型和字段长度,以及第二数据表任一字段的字段名、字段类型和字段长度,逐一计算第一数据表任一字段与第二数据表任一字段的相似度sij,1≤i≤M,1≤j≤N,其中M是第一数据表的字段个数,N是第二数据表的字段个数。获得字段相似度矩阵:
Figure BDA0002134447000000091
具体方法如实施例一步骤S103所述,这里不再赘述。
S204、获取权值,根据表名相似度、字段相似度矩阵和权值,计算第一数据表和第二数据表的血缘关系得分。所述权值可根据经验指定,也可以利用贪心算法计算获得,如图3所示,具体包括如下的步骤:
S2041、通过审计日志或其他方式,获取生成数据库的SQL文件,从SQL中获取数据库表名和表结构。假定要确定数据血缘的第一数据表属于数据库A,第二数据表属于数据库B,则获取生成和修改数据库A和数据库B的全部SQL文件或SQL操作指令。从SQL中获取表名,进而根据表名获取对应的表结构;
S2042、根据SQL,获取数据库中数据表的血缘关系。通过解析SQL,找到SQL文件或SQL指令集合中所有的SELECT、INSERT等操作,这些指令相关的操作引入血缘关系,如:
INSERT INTO table_b(col_a,col_b,…)SELECT*FROM table_a;则table_a与table_b存在血缘关系;
找到SQL揭示的、两个数据库中表的全部血缘关系,假定找到了K个,则获得了K个数据表对;
S2043、根据血缘关系、表名相似度和字段相似度矩阵,利用贪心算法计算最优权值。令表名相似度权值为w,则第k对具有血缘关系的数据表的血缘关系得分可定义为:
Figure BDA0002134447000000101
其中L等于两个数据表的字段数中较小的一个,
Figure BDA0002134447000000102
为两数据表字段相似度矩阵的极大值,具体取值方法参考实施例一步骤S104。保持判断是否具有血缘关系的阈值是Lthreshold=0.5,权值取w=0.1,针对K个具有数据血缘的表对进行
Figure BDA0002134447000000103
计算,并判断
Figure BDA0002134447000000104
与Lthreshold关系,最后获得阈值0.5和权值0.1的效果得分:
Figure BDA0002134447000000105
其中
Figure BDA0002134447000000106
表示在当前阈值和权值下第l对数据表的相似度得分,函数
Figure BDA0002134447000000107
然后,求解:
Figure BDA0002134447000000108
即使得Escore达到最大值的Lthreshold和w,这里Lthreshold∈[0.5,1],w∈[0.1,1],为计算方便以对Lthreshold和w均以0.1为步长进行参数的搜索,共计算6×10=60对参数下的Escore,选则最大的Escore对应的
Figure BDA0002134447000000109
和w*作为最优的阈值和权值。
然后,利用上述最优权值,以及第一数据表和第二数据表的字段名的相似度、字段相似度矩阵,计算第一数据表和第二数据表的血缘关系得分;
S205、根据血缘关系得分和阈值,确定第一数据表和第二数据表是否具有血缘关系。其中所述阈值是步骤S2041~S2043中利用贪心算法计算获得的;
S206a、当血缘关系得分高于阈值即
Figure BDA00021344470000001010
时,确定第一数据表和第二数据表具有血缘关系。
S206b、当血缘关系得分不高于阈值即
Figure BDA00021344470000001011
时,确定第一数据表和第二数据表没有血缘关系。
本发明实施例提供的数据血缘确定方法,利用数据表表名和表结构信息计算相似度,利用已知的血缘关系获得最优判断阈值和权值,进而获得数据表血缘关系得分,确定数据表之间的数据血缘,该方法无需分析业务系统代码,大大降低了确定数据血缘的难度,具有相当高的准度,有助于理清数据依赖关系,为数据治理工作奠定良好的基础。
实施例三
本发明实施例提供一种数据血缘确定装置,该装置包括如下模块:
401、接收模块。所述接收模块用于接收第一数据表和第二数据表各自的表名和表结构信息。所述数据表是关系数据库中的表,所述第一数据表和第二数据表可以是不同数据库乃至不同系统中的表,也可以是同一系统乃至同一个数据库中的表;所述表名可以是中文表名或英文表名,所述表结构信息包括数据表全部字段的中文、英文字段名,字段类型和字段长度等。
优选的,所述接收模块,还用来获取生成数据库的SQL文件或SQL操作指令集合,并获取数据库表名和表结构。假定第一数据表属于数据库A,第二数据表属于数据库B,则获取生成和修改数据库A和数据库B的全部SQL文件或SQL操作指令。从SQL中获取表名,进而根据表名获取对应的表结构信息。
402、第一计算模块。所述第一计算模块用于计算所述第一数据表和所述第二数据表的表名相似度。所述表名相似度sIJ可根据第一数据表英文表名与第二数据表英文表名的编辑距离(Damerau-Levenshtein距离)计算,或者根据第一数据表的中文表名与第二数据表的中文表名的编辑距离计算,具体方法参考实施例一步骤S102,这里不再赘述;
403、第二计算模块。所述第二计算模块用于根据第一数据表的表结构信息和第二数据表的表结构信息,计算所述第一数据表的任一字段与所述第二数据表的任一字段的相似度sij,1≤i≤M,1≤j≤N,其中M是第一数据表的字段个数,N是第二数据表的字段个数,获得字段相似度矩阵:
Figure BDA0002134447000000111
具体方法如实施例一步骤S103所述,这里不再赘述。
404、第三计算模块。所述第三计算模块,用于根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分Lscore。所述血缘关系得分的具体计算方法如实施例一步骤S104所述,这里不再赘述。
优选的,所述第三计算模块还用于根据SQL,获取数据库中数据表的血缘关系。通过解析SQL,找到SQL文件或SQL指令集合中所有的SELECT、INSERT等操作,这些指令相关的操作引入血缘关系,如:
INSERT INTO table_b(col_a,col_b,…)SELECT*FROM table_a;则table_a与table_b存在血缘关系;
找到SQL揭示的、两个数据库中表的全部血缘关系,假定找到了K个,则获得了K个数据表对;所述第三计算模块还用于根据血缘关系、表名相似度和字段相似度矩阵,利用贪心算法计算最优权值。令表名相似度权值为w,则第一数据表和第二数据表的血缘关系得分可定义为:
Figure BDA0002134447000000121
其中L等于两个数据表的字段数中较小的那个,
Figure BDA0002134447000000122
为两数据表字段相似度矩阵的极大值,具体计算方法参考实施例二步骤S204,此处不再赘述。保持判断是否具有血缘关系的阈值是Lthreshold=0.5,权值取w=0.1,针对K个具有数据血缘的表对进行
Figure BDA0002134447000000123
计算,并判断
Figure BDA0002134447000000124
与Lthreshold关系,最后获得阈值0.5和权值0.1的效果得分:
Figure BDA0002134447000000125
其中
Figure BDA0002134447000000126
表示在当前阈值和权值下第k对数据表的相似度得分,函数
Figure BDA0002134447000000127
然后,求解:
Figure BDA0002134447000000128
即使得Escore最大的Lthreshold和w,这里Lthreshold∈[0.5,1],w∈[0.1,1],为计算方便以对Lthreshold和w均以0.1为步长进行参数的搜索,共计算6×10=60对参数下的Escore,选则最大的Escore对应的
Figure BDA0002134447000000129
和w*作为最优的阈值和权值。然后,所述第三计算模块还用于利用上述最优权值,以及第一数据表和第二数据表的字段名的相似度、字段相似度矩阵,计算第一数据表和第二数据表的血缘关系得分Lscore
405、确定模块。所述确定模块,用于根据所述血缘关系得分和预设阈值,确定所述第一数据表和所述第二数据表是否具有血缘关系,具体的,当所述血缘关系得分Lscore>Lthreshold时,确定第一数据表与第一数据表具有血缘关系,否则确定没有血缘关系。
优选的,所述确定模块,用于根据所述血缘关系得分和计算出的最优阈值,确定所述第一数据表和所述第二数据表是否具有血缘关系,具体的,当所述血缘关系得分
Figure BDA0002134447000000131
时,确定第一数据表与第一数据表具有血缘关系,否则确定没有血缘关系。
本发明实施例提供的数据血缘确定装置,利用数据表表名和表结构信息计算相似度,进而获得数据表血缘关系得分,并确定数据表之间的数据血缘,该方法不依赖审计日志,无需分析业务系统代码,大大降低了确定数据血缘的难度,有助于理清数据依赖关系,为数据治理工作奠定良好的基础。
应当理解的是,上述针对实施实例的描述较为具体,并不能因此而认为是对本发明专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。

Claims (10)

1.一种数据血缘确定方法,其特征在于,包括:
接收第一数据表和第二数据表各自的表名和表结构信息,所述表结构信息包括数据表中、英文字段名,字段类型和字段长度;
计算所述第一数据表和所述第二数据表的表名相似度;
根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分;
根据所述血缘关系得分和预设阈值,确定所述第一数据表和所述第二数据表是否具有血缘关系。
2.如权利要求1所述的方法,其特征在于,计算所述第一数据表的任一字段与所述第二数据表的任一字段的相似度,获得字段相似度矩阵,包括:
获取所述第一数据表的M个字段的中、英文字段名和所述第二数据表的N个字段的中、英文字段名;
计算所述第一数据表的每一个字段与所述第二数据表每一个字段的字段名的编辑距离,获得M乘以N个编辑距离,所述字段名是中文字段名或英文字段名;
根据所述编辑距离、字段类型相似度、字段长度相似度中的至少一个,计算所述字段的相似度;
获得所述第一数据表与所述第二数据表的字段相似度矩阵,所述相似度矩阵的第i行第j列元素是第一数据表第i个字段与第二数据表第j个字段的相似度。
3.如权利要求1或2所述的方法,其特征在于,根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分,包括:
从所述表名相似度和所述字段相似度矩阵中,取最大的L个值,所述L小于或等于M与N中较小的值;
根据所述L个值,计算所述第一数据表和所述第二数据表的血缘关系得分。
4.如权利要求1或2所述的方法,其特征在于,根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分,包括:
从所述相似度矩阵中取最大的L个值求和,所述L小于或等于M与N中较小的值;
获得所述表名相似度和所述和的权值;
计算所述表名相似度和所述和的加权和,获得所述第一数据表和所述第二数据表的血缘关系得分。
5.如权利要求4所述的方法,其特征在于,获得所述表名相似度和所述和的权值,包括:
获取数据库审计日志,从审计日志中读取SQL命令;
解析所述SQL命令,获取SQL命令中包含的数据血缘关系集合;
根据所述血缘关系集合,利用贪心算法计算所述表名相似度和所述和的权值。
6.一种数据血缘确定装置,其特征在于,包括:
接收模块,用于接收第一数据表和第二数据表各自的表名和表结构信息,所述表结构信息包括数据表中、英文字段名,字段类型和字段长度;
第一计算模块,用于计算所述第一数据表和所述第二数据表的表名相似度;
第二计算模块,用于根据所述表结构信息,计算所述第一数据表的任一字段与所述第二数据表的任一字段的相似度,获得字段相似度矩阵;
第三计算模块,用于根据所述表名相似度和所述字段相似度矩阵,计算所述第一数据表和所述第二数据表的血缘关系得分;
确定模块,用于根据所述血缘关系得分和预设阈值,确定所述第一数据表和所述第二数据表是否具有血缘关系。
7.如权利要求6所述的装置,其特征在于,所述第二计算模块,具体用于:获取所述第一数据表的M个字段的中、英文字段名和所述第二数据表的N个字段的中、英文字段名;
计算所述第一数据表的每一个字段与所述第二数据表每一个字段的字段名的编辑距离,获得M乘以N个编辑距离,所述字段名是中文字段名或英文字段名;
根据所述编辑距离、字段类型相似度、字段长度相似度中的至少一个,计算所述字段的相似度;
获得所述第一数据表与所述第二数据表的字段相似度矩阵,所述相似度矩阵的第i行第j列元素是第一数据表第i个字段与第二数据表第j个字段的相似度。
8.如权利要求6或7所述的装置,其特征在于,所述第三计算模块,具体用于:
从所述表名相似度和所述字段相似度矩阵中,取最大的L个值,所述L小于或等于M与N中较小的值;
根据所述L个值,计算所述第一数据表和所述第二数据表的血缘关系得分。
9.如权利要求6或7所述的装置,其特征在于,所述第三计算模块,具体用于:
从所述相似度矩阵中取最大的L个值求和,所述L小于或等于M与N中较小的值;
获得所述表名相似度和所述和的权值;
计算所述表名相似度和所述和的加权和,获得所述第一数据表和所述第二数据表的血缘关系得分。
10.如权利要求9所述的装置,其特征在于,所述第三计算模块,具体用于:
获取数据库审计日志,从审计日志中读取SQL命令;
解析所述SQL命令,获取SQL命令中蕴含的数据血缘关系集合;
根据所述血缘关系集合,利用贪心算法计算所述表名相似度和所述和的权值。
CN201910649260.4A 2019-07-18 2019-07-18 一种数据血缘确定方法和装置 Pending CN112241421A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910649260.4A CN112241421A (zh) 2019-07-18 2019-07-18 一种数据血缘确定方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910649260.4A CN112241421A (zh) 2019-07-18 2019-07-18 一种数据血缘确定方法和装置

Publications (1)

Publication Number Publication Date
CN112241421A true CN112241421A (zh) 2021-01-19

Family

ID=74167837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910649260.4A Pending CN112241421A (zh) 2019-07-18 2019-07-18 一种数据血缘确定方法和装置

Country Status (1)

Country Link
CN (1) CN112241421A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860784A (zh) * 2021-03-29 2021-05-28 中信银行股份有限公司 血缘分析方法、装置、电子设备及计算机可读存储介质
CN113010517A (zh) * 2021-03-08 2021-06-22 中国工商银行股份有限公司 数据表管理方法及装置
CN113742450A (zh) * 2021-08-30 2021-12-03 中信百信银行股份有限公司 用户数据等级落标的方法、装置、电子设备和存储介质
CN113760918A (zh) * 2021-09-13 2021-12-07 上海航空工业(集团)有限公司 一种确定数据血缘关系的方法、装置、计算机设备和介质
CN114896352A (zh) * 2022-04-06 2022-08-12 北京月新时代科技股份有限公司 无字段名的井文件字段名自动匹配方法、系统、介质和计算机设备
CN114996280A (zh) * 2022-08-01 2022-09-02 每日互动股份有限公司 一种数据表的字段信息纠正方法、装置、设备及介质
CN117539861A (zh) * 2023-10-20 2024-02-09 国家开放大学 面向数据治理的关系数据表关联重建方法和装置
US12067023B2 (en) 2021-08-26 2024-08-20 Optum, Inc. Machine learning techniques for efficient data pattern recognition across databases

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331479A (zh) * 2014-11-07 2015-02-04 浪潮通用软件有限公司 一种基于相似度计算方法的数据排列方法
CN107766376A (zh) * 2016-08-19 2018-03-06 华为技术有限公司 数据对齐方法及装置
CN109543690A (zh) * 2018-11-27 2019-03-29 北京百度网讯科技有限公司 用于提取信息的方法和装置
CN109614433A (zh) * 2018-12-13 2019-04-12 杭州数梦工场科技有限公司 业务系统间数据血缘的识别方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331479A (zh) * 2014-11-07 2015-02-04 浪潮通用软件有限公司 一种基于相似度计算方法的数据排列方法
CN107766376A (zh) * 2016-08-19 2018-03-06 华为技术有限公司 数据对齐方法及装置
CN109543690A (zh) * 2018-11-27 2019-03-29 北京百度网讯科技有限公司 用于提取信息的方法和装置
CN109614433A (zh) * 2018-12-13 2019-04-12 杭州数梦工场科技有限公司 业务系统间数据血缘的识别方法、装置、设备及存储介质

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113010517A (zh) * 2021-03-08 2021-06-22 中国工商银行股份有限公司 数据表管理方法及装置
CN113010517B (zh) * 2021-03-08 2024-02-09 中国工商银行股份有限公司 数据表管理方法及装置
CN112860784A (zh) * 2021-03-29 2021-05-28 中信银行股份有限公司 血缘分析方法、装置、电子设备及计算机可读存储介质
CN112860784B (zh) * 2021-03-29 2024-05-17 中信银行股份有限公司 血缘分析方法、装置、电子设备及计算机可读存储介质
US12067023B2 (en) 2021-08-26 2024-08-20 Optum, Inc. Machine learning techniques for efficient data pattern recognition across databases
CN113742450A (zh) * 2021-08-30 2021-12-03 中信百信银行股份有限公司 用户数据等级落标的方法、装置、电子设备和存储介质
CN113742450B (zh) * 2021-08-30 2023-05-30 中信百信银行股份有限公司 用户数据等级落标的方法、装置、电子设备和存储介质
CN113760918A (zh) * 2021-09-13 2021-12-07 上海航空工业(集团)有限公司 一种确定数据血缘关系的方法、装置、计算机设备和介质
CN114896352A (zh) * 2022-04-06 2022-08-12 北京月新时代科技股份有限公司 无字段名的井文件字段名自动匹配方法、系统、介质和计算机设备
CN114996280A (zh) * 2022-08-01 2022-09-02 每日互动股份有限公司 一种数据表的字段信息纠正方法、装置、设备及介质
CN117539861A (zh) * 2023-10-20 2024-02-09 国家开放大学 面向数据治理的关系数据表关联重建方法和装置

Similar Documents

Publication Publication Date Title
CN112241421A (zh) 一种数据血缘确定方法和装置
JP7169369B2 (ja) 機械学習アルゴリズムのためのデータを生成する方法、システム
US6266658B1 (en) Index tuner for given workload
US6394263B1 (en) Autognomic decision making system and method
US7451139B2 (en) Document similarity calculation apparatus, clustering apparatus, and document extraction apparatus
US6389406B1 (en) Semiotic decision making system for responding to natural language queries and components thereof
US20120254183A1 (en) Method and System for Clustering Data Points
US6505184B1 (en) Autognomic decision making system and method
CN112162977B (zh) 一种面向mes的海量数据去冗余方法和系统
CN107656978B (zh) 一种基于函数依赖的多样性数据修复方法
US20160042017A1 (en) System Of And Method For Entity Representation Splitting Without The Need For Human Interaction
CN115048490B (zh) 一种基于深度学习的云制造服务流程推荐方法
CN108776673A (zh) 关系模式的自动转换方法、装置及存储介质
CN111460102A (zh) 一种基于自然语言处理的图表推荐系统及方法
CN114625748A (zh) Sql查询语句的生成方法、装置、电子设备及可读存储介质
CN109783650A (zh) 中文网络百科知识去燥方法、系统及知识库
CN112948469A (zh) 数据挖掘方法、装置、计算机设备及存储介质
CN113722460A (zh) 指标数据入库方法、装置、设备及存储介质
CN117390063A (zh) 一种基于Listwise排序学习的数据库查询器优化方法
De Falco et al. A novel grammar-based genetic programming approach to clustering
CN113571198B (zh) 转化率预测方法、装置、设备及存储介质
CN113742495B (zh) 基于预测模型的评级特征权重确定方法及装置、电子设备
CN107577690B (zh) 海量信息数据的推荐方法及推荐装置
US11544332B2 (en) Bipartite graph construction
CN114138743A (zh) 基于机器学习的etl任务自动配置方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20210119