一种确定数据关联关系的方法和装置制造方法及图纸

技术编号:26762368 阅读:30 留言:0更新日期:2020-12-18 23:10
本发明专利技术公开了一种确定数据关联关系的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:从关联分析请求中获取待解析的源代码及数据库列表;获取每个数据库的第一库表名和第一库表字段名,并获取源代码中包括的第二库表名和第二库表字段名;对源代码中包括的每个库表字段,根据该库表字段的第二库表字段名及对应的第二库表名获取对应的数据库标识以确定数据关联关系。该实施方式能够实现通过对上传的源代码的分析建立数据关联关系,从而避免了源代码的安全风险,并且可以实现多种层次的关联关系分析,使得关联关系分析更加明晰明确。

【技术实现步骤摘要】
一种确定数据关联关系的方法和装置
本专利技术涉及计算机
,尤其涉及一种确定数据关联关系的方法和装置。
技术介绍
在互联网业务中,时常会发生的是一个数据字段的变更会影响到多个业务,一个业务对某个数据字段的修改,会影响到多个数据库,进而影响到多个业务。通常,这种连锁反应关系我们称为血缘关系。为了在进行数据字段修改时,避免对其他相互关联的数据库或业务造成困扰,需要进行血缘关系分析。目前,常见的分析方法一般有:1)使用Hive(在Hadoop上的数据仓库基础构架)本身自带的工具类LineageInfo,来分析一条HQL(HiveQL的缩写)中的源表和目标表之间的血缘关系;2)对业务脚本进行代码分析,以生成文件目录、来源表、目标表之间的血缘关系;3)录入Git(Git是一种开放源码的版本控制软件,可以下载代码)地址和账号密码,构造源码分析服务,下载Git代码并进行源码分析,以生成表字段到其他表,到各个库,到各个业务的血缘关系。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:1)使用hive的工具类LineageInfo进行分析,只能得到表与其他表的血缘关系,无法得到更确切的其他层次间的关系,例如:业务与库表的关系等;2)纯脚本分析的方法有局限性,如果主业务是编译后的代码,则无法获得主业务代码的业务关系3)录入主业务源码Git地址和账号密码来分析源码以得到血缘关系的方法,由于需要录入账号密码,因此具有较大的安全风险。专利技术内容有鉴于此,本专利技术实施例提供一种确定数据关联关系的方法和装置,能够实现通过对上传的源代码的分析建立数据关联关系,从而避免了源代码的安全风险,并且可以实现多种层次的关联关系分析,使得关联关系分析更加明晰明确。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种确定数据关联关系的方法。一种确定数据关联关系的方法,包括:从关联分析请求中获取待解析的源代码及数据库列表;获取每个数据库的第一库表名和第一库表字段名,并获取所述源代码中包括的第二库表名和第二库表字段名;对所述源代码中包括的每个库表字段,根据所述库表字段的第二库表字段名及对应的第二库表名获取对应的数据库标识以确定数据关联关系。可选地,获取所述源代码中包括的第二库表名和第二库表字段名包括:遍历所述源代码中的源码文件,以获取每个源码文件中包括的函数名;从函数中获取第二库表名和第二库表字段名。可选地,从函数中获取第二库表名和第二库表字段名包括:判断所述函数中是否包含有库表名和库表字段名;若包含,则使用正则表达式过滤出第二库表名和第二库表字段名。可选地,根据所述库表字段的第二库表字段名及对应的第二库表名获取对应的数据库标识之后,还包括:若获取到的数据库标识有多个,则后续由人工进行进一步地分析以确定数据关联关系。可选地,所述方法还包括:确定数据关联关系完成之后,删除所述源代码。可选地,所述关联分析请求还包括业务标识,并且,所述数据关联关系包括业务、数据库、库表和库表字段四个层次的关联关系。根据本专利技术实施例的另一方面,提供了一种确定数据关联关系的装置。一种确定数据关联关系的装置,包括:信息获取模块,用于从关联分析请求中获取待解析的源代码及数据库列表;信息解析模块,用于获取每个数据库的第一库表名和第一库表字段名,并获取所述源代码中包括的第二库表名和第二库表字段名;关系确定模块,用于对所述源代码中包括的每个库表字段,根据所述库表字段的第二库表字段名及对应的第二库表名获取对应的数据库标识以确定数据关联关系。可选地,所述信息解析模块还用于:遍历所述源代码中的源码文件,以获取每个源码文件中包括的函数名;从函数中获取第二库表名和第二库表字段名。可选地,所述信息解析模块还用于:判断所述函数中是否包含有库表名和库表字段名;若包含,则使用正则表达式过滤出第二库表名和第二库表字段名。可选地,还包括人工处理模块,用于:根据所述库表字段的第二库表字段名及对应的第二库表名获取对应的数据库标识之后,若获取到的数据库标识有多个,则后续由人工进行进一步地分析以确定数据关联关系。可选地,所述装置还包括代码删除模块,用于:确定数据关联关系完成之后,删除所述源代码。可选地,所述关联分析请求还包括业务标识,并且,所述数据关联关系包括业务、数据库、库表和库表字段四个层次的关联关系。根据本专利技术实施例的又一方面,提供了一种确定数据关联关系的电子设备。一种确定数据关联关系的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例所提供的确定数据关联关系的方法。根据本专利技术实施例的再一方面,提供了一种计算机可读介质。一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术实施例所提供的确定数据关联关系的方法。上述专利技术中的一个实施例具有如下优点或有益效果:通过从关联分析请求中获取待解析的源代码及数据库列表,然后获取数据库的第一库表名及第一库表字段名和源代码中包括的第二库表名和第二库表字段名,再根据源代码中包括的每个库表字段的第二库表字段名及对应的第二库表名获取对应的数据库标识即可实现通过对上传的源代码的分析建立数据关联关系,从而避免了源代码的安全风险,并且可以实现多种层次的关联关系分析,使得关联关系分析更加明晰明确。另外,本专利技术在对源代码进行关联关系分析完毕后还可以自动删除源代码,从而进一步提高了源代码的安全性。根据本专利技术的实施例,通过在关联分析请求中增加数据库标识以及业务标识,并保存数据库与库表名和库表字段名之间的关联关系,实现了可以建立业务、数据库、库表以及库表字段四个层次的关联关系,关联关系覆盖范围更广,并且,本专利技术还通过增加人工处理,以准确地确定疑难的关联关系和其他脚本代码的关联关系,从而尽量覆盖所有的关联关系,使得当需要进行数据变更或代码变更时,对业务系统以及数据库的影响降到最小。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的确定数据关联关系的方法的主要步骤示意图;图2是本专利技术一个实施例的血缘分析请求页面形式示意图;图3是本专利技术一个实施例的血缘分析过程的实现流程示意图;图4是根据本专利技术实施例的确定数据关联关系的装置的主要模块示意图;图5是本专利技术实施例可以应用于其中的示例性系统架构图;图6是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,本文档来自技高网...

【技术保护点】
1.一种确定数据关联关系的方法,其特征在于,包括:/n从关联分析请求中获取待解析的源代码及数据库列表;/n获取每个数据库的第一库表名和第一库表字段名,并获取所述源代码中包括的第二库表名和第二库表字段名;/n对所述源代码中包括的每个库表字段,根据所述库表字段的第二库表字段名及对应的第二库表名获取对应的数据库标识以确定数据关联关系。/n

【技术特征摘要】
1.一种确定数据关联关系的方法,其特征在于,包括:
从关联分析请求中获取待解析的源代码及数据库列表;
获取每个数据库的第一库表名和第一库表字段名,并获取所述源代码中包括的第二库表名和第二库表字段名;
对所述源代码中包括的每个库表字段,根据所述库表字段的第二库表字段名及对应的第二库表名获取对应的数据库标识以确定数据关联关系。


2.根据权利要求1所述的方法,其特征在于,获取所述源代码中包括的第二库表名和第二库表字段名包括:
遍历所述源代码中的源码文件,以获取每个源码文件中包括的函数名;
从函数中获取第二库表名和第二库表字段名。


3.根据权利要求2所述的方法,其特征在于,从函数中获取第二库表名和第二库表字段名包括:
判断所述函数中是否包含有库表名和库表字段名;
若包含,则使用正则表达式过滤出第二库表名和第二库表字段名。


4.根据权利要求1所述的方法,其特征在于,根据所述库表字段的第二库表字段名及对应的第二库表名获取对应的数据库标识之后,还包括:
若获取到的数据库标识有多个,则后续由人工进行进一步地分析以确定数据关联关系。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定数据关联关系完成之后,删除所述源代码...

【专利技术属性】
技术研发人员:曾文杰
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1