多数据库语句执行结果自动比对方法、系统、设备及介质与流程

未命名 09-12 阅读:83 评论:0


1.本发明涉及数据处理技术领域,尤其涉及多数据库语句执行结果自动比对方法、系统、设备及介质。


背景技术:

2.随着业务的不断发展以及市场的应用要求,现在市场上使用的数据库类型越来越多,譬如oracle、mysql以及分布式数据库tdsql等,原有类型的数据库无法满足应用需求,需要进行数据库的替换改造。其中,在数据库的改造过程中,将会面对庞大的查询语句(即sql语句)的修改,数据库的替换改造面临的最重要的难题就是保障查询语句在新数据库能够快速、准确的执行。
3.由此,通过优化查询语句来使得其在各个数据库中都能够准确执行,此时需要获取到查询语句在各个类型的数据库上的执行结果,并比对各个执行结果,获得执行结果的一致性,以为查询语句的优化提供参考。
4.然而目前比对方法仍需手动更换数据库或者输入查询语句,无法实现自动化的比对处理,导致比对效率较低。


技术实现要素:

5.有鉴于此,本发明提供一种利用多数据库语句执行结果自动比对方法、系统、设备及介质,能够自动化拦截及比对各个数据库的语句执行结果,提高语句执行结果比对的效率。
6.为解决上述技术问题,一方面,本发明提供一种语句执行结果自动比对方法,包括:中间件获取第一数据库的第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句;其中,第一语句执行结果为接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给第一数据库以使其执行查询语句得到的;中间件将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果;中间件获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果。
7.根据本发明的一些实施例,接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句,包括:基于接口调用请求进行参数初始化,得到配置参数;基于配置参数以及接口调用请求,生成第一数据库对应的查询语句。
8.根据本发明的一些实施例,基于配置参数以及接口调用请求,生成第一数据库对应的查询语句,包括:基于接口调用请求调用第一数据库;基于配置参数从第一数据库中获取语句标识信息;将语句标识信息与配置参数组装,得到第一数据库对应的查询语句。
9.根据本发明的一些实施例,中间件获取第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句的同时,还获取第一数据库执行计划,和/或第一数据库响应时间。
10.根据本发明的一些实施例,中间件获取第一语句执行结果后将其缓存至第一语句执行结果集,且在获取第二语句执行结果后将其缓存至第二语句执行结果集,其中,基于第一语句执行结果集与第二语句执行结果集进行逐字段比对,得到比对结果。
11.根据本发明的一些实施例,查询语句以及实际执行语句均为自定义语句。
12.第二方面,本发明实施例提供一种多数据库语句执行结果自动比对系统,包括接口调用模块以及中间件;其中,接口调用模块包括:接收模块,用于接收接口调用请求;调用模块,用于基于接口调用请求调用对应的第一数据库的查询语句,以使得第一数据库执行查询语句,得到第一语句执行结果;中间件拓展有语句执行结果比对插件,用于获取第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句;将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果;获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果。
13.根据本发明的一些实施例,调用模块还用于响应于接口调用请求指示调用两个或两个以上的接口,同时调用各个接口调用请求所对应的第一数据库的查询语句,实现多接口同时调用功能,以使得各个第一数据库执行对应的查询语句,得到各自对应的第一语句执行结果,进而使得语句执行结果比对插件同时获取各个第一语句执行结果,并行完成各个第一语句执行结果与各自对应的第二语句执行结果的比对任务,得到各个比对任务对应的比对结果。
14.根据本发明的一些实施例,调用模块包括:参数配置模块,用于基于接口调用请求进行参数初始化,得到配置参数;语句配置模块,用于基于配置参数以及接口调用请求,生成第一数据库对应的查询语句。
15.根据本发明的一些实施例,基于配置参数以及接口调用请求,生成第一数据库对应的查询语句,包括:基于接口调用请求调用第一数据库;基于配置参数从第一数据库中获取语句标识信息;将语句标识信息与配置参数组装,得到第一数据库对应的查询语句。
16.第三方面,本发明实施例提供一种电子设备,包括:处理器;和存储器,在存储器中存储有计算机程序指令,其中,在计算机程序指令被处理器运行时,使得处理器执行以下步骤:
17.获取第一数据库的第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句;将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果;获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果;其中,第一语句执行结果为接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给第一数据库以使其执行查询语句得到的。
18.第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器运行时,使得处理器执行以下步骤:
19.获取第一数据库的第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句;将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果;获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果;其中,第一语句执行结果为接口调
用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给第一数据库以使其执行查询语句得到的。
20.本发明的上述技术方案至少具有如下有益效果之一:
21.能够在接口调用的同时主动触发中间件,利用中间件来自动拦截各个数据库的语句执行结果,实现多个数据库的语句执行结果的自动比对,从而提高比对效率,减少人工比较成本。同时,中间件能够提供精准的语句执行结果对比,能够满足大数据量、字段级别对比。并且,通过中间件获取实际执行语句并发送至接口对应的下一数据库的方式,能够克服不同类型的数据所采用的语句编写语言不同的问题,无需重新编写查询语句,也节省了接口调用的次数,从而大大提高自动化比对的效率,也进一步保证了各数据库的语句执行结果的准确性。
22.进一步地,在拦截语句执行结果的同时,还能够获取第一数据库执行计划以及第一数据库响应时间,实现执行计划的查询、执行时间的查看,为表索引创建、查询语句编写提供指导,为后续查询语句优化提供技术支撑。
附图说明
23.图1为本发明实施例的多数据库语句执行结果自动比对系统的示意图;
24.图2为本发明实施例的多数据库语句执行结果自动比对系统中的中间件的示意图;
25.图3为本发明实施例的语句执行结果自动比对方法的流程图;
26.图4为本发明实施例的语句执行结果自动比对方法中的中间件、设置在应用层中的接口调用模块以及数据库的三端交互流程图;
27.图5为本发明实施例的语句执行结果自动比对方法中接口调用模块基于接口调用请求调用对应的第一数据库的查询语句的步骤的流程图;
28.图6为本发明实施例的语句执行结果自动比对方法中接口调用模块基于配置参数以及接口调用请求,生成第一数据库对应的查询语句的步骤的流程图;
29.图7为本发明实施例的电子设备的示意图。
具体实施方式
30.随着业务的不断发展以及市场的应用要求,现在市场上使用的数据库类型越来越多,譬如oracle、mysql以及分布式数据库tdsql等,原有类型的数据库无法满足应用需求,需要进行数据库的替换改造。其中,在数据库的改造过程中,将会面对庞大的查询语句(即sql语句)的修改,数据库的替换改造面临的最重要的难题就是保障查询语句在新数据库能够快速、准确的执行。
31.由此,通过优化查询语句来使得其在各个数据库中都能够准确执行,此时需要获取到查询语句在各个类型的数据库上的执行结果,并比对各个执行结果,获得执行结果的一致性,以为查询语句的优化提供参考。然而目前比对方法仍需手动更换数据库或者输入查询语句,无法实现自动化的比对处理,导致比对效率较低。
32.为了克服上述技术问题,申请人提出一种多数据库语句执行结果自动比对方法、系统,能够自动化拦截及比对各个数据库的语句执行结果,从而提高语句执行结果比对的
效率,同时为后续的查询语句优化提供有效参考,进而提高语句优化效率以及精确度。
33.下面将结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
34.首先,对本文中所提及到的术语名词进行介绍:
35.中间件:中间件是位于平台(硬件和操作系统)和应用层之间的通用服务,其具有标准的程序接口和协议。
36.数据库中间件:数据库中间件是解决数据库容量、性能瓶颈和分布式扩展问题的中间件服务,提供分库分表、读写分离、弹性扩容等能力,应对海量数据的高并发访问场景,有效提升数据库读写能力。
37.如图1所示,本发明实施例的多数据库语句执行结果自动比对系统1000,语句执行结果自动比对系统1000包括接口调用模块1010和中间件1020,其中,接口调用模块1010可为设置在应用层中的模块。
38.接口调用模块1010包括接收模块1011以及调用模块1012,接收模块1011用于接收接口调用请求。调用模块1012用于基于接口调用请求调用对应的第一数据库的查询语句,以使得第一数据库执行查询语句,得到第一语句执行结果。
39.中间件1020拓展有语句执行结果比对插件1021,语句执行结果比对插件1021用于获取第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句;将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果;获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果。通过上述扩展有语句执行结果比对插件1021的中间件1020能够实现多数据的语句执行结果的自动化比对,从而提高语句执行结果比对的效率。
40.可以理解地,图1中所示的数据库集中可包含一个、两个或多个第一数据库以及第二数据库,其中,本文中的第一数据库以及第二数据库中的“第一”、“第二”仅用于区别示意出不同的两个数据库,第一数据库指示由接口调用模块1010响应于接口调用请求所调用的执行查询语句的数据库,第二数据库指示由中间件1020所调用的执行实际查询语句的数据库,在此不对数据库集中的数据库调用顺序、数据库类型以及数据库数量进行限定。
41.在一实施例中,如图2所示,语句执行结果比对插件1021可包括数据库接口,以用于与各个数据库之间进行信息的获取及发送,中间件1020还包括中间件单元1022,中间件单元1022用于配置中间件1020中的各个接口以及参数等。具体地,中间件单元1022可包括插件管理器,插件管理器用于根据数据库的类型和/或查询语句的编程语言类型,从插件库中挑选并更新合适类型的语句执行结果比对插件作为当前语句执行结果比对插件,其中,插件库中的语句执行结果比对插件可根据实际需求进行设置,在此不作限定。
42.在一实施例中,语句执行结果比对插件1021可为mybatis语句执行结果比对插件,其中mybatis是一种java数据库持久层的中间件插件,能够支持自定义查询语句、存储过程以及高级映射。mybatis语句执行结果比对插件内部可封装有java数据库连接(java data connectivity,jdbc),jdbc为一种用于执行查询语句的java数据库接口(api),以为多种关系数据库提供统一访问,使开发者只需关注查询语句本身,而不需要花费精力去处理加载驱动、创建连接等繁杂过程,从而大大提高多数据库语句执行结果自动比对的灵活性和效率。
43.在一实施例中,调用模块1012还用于响应于接口调用请求指示调用两个或两个以上的接口,同时调用各个接口调用请求所对应的第一数据库的查询语句,实现多接口同时调用功能,以使得各个第一数据库执行对应的查询语句,得到各自对应的第一语句执行结果,进而使得语句执行结果比对插件1021同时获取各个第一语句执行结果,并行完成各个第一语句执行结果与各自对应的第二语句执行结果的比对任务,得到各个比对任务对应的比对结果。调用模块1012能够实现多接口同时调用,从而能够满足多个查询语句的语句执行结果的并行比对需求,即满足多比对任务的并行处理需求。
44.在一实施例中,调用模块1012可包括参数配置模块以及语句配置模块(图中未示出),参数配置模块用于基于接口调用请求进行参数初始化,得到配置参数;语句配置模块用于基于配置参数以及接口调用请求,生成第一数据库对应的查询语句。
45.在一实施例中,基于配置参数以及接口调用请求,生成第一数据库对应的查询语句的步骤,包括:基于接口调用请求调用第一数据库;基于配置参数从第一数据库中获取语句标识信息;将语句标识信息与配置参数组装,得到第一数据库对应的查询语句。
46.上述实施例中,多数据库语句执行结果自动比对系统通过扩展有语句执行结果比对插件的中间件,能够实现多数据的语句执行结果的自动化比对,提高语句执行结果比对的效率,减少人口比对的成本。此外,设置于应用层的接口调用模块还能够支持多接口同时调用,进一步满足多比对任务的并行处理需求。下面对多数据库语句执行结果自动比对系统中的中间件所实现的多数据库语句执行结果自动比对方法进行详细介绍。
47.如图3所示,本发明实施例的多数据库语句执行结果自动比对方法,应用于语句执行结果自动比对系统中的中间件,语句执行结果自动比对系统还包括接口调用模块,包括:
48.步骤110:中间件获取第一数据库的第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句。
49.中间件获取第一数据库的第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句,其中,实际执行语句可包括第一数据库所执行的查询语句的语句标识信息(sql id)以及配置参数,语句标识信息为每个查询语句的唯一标识,配置参数信息为查询语句中的动态参数。
50.在一实施例中,查询语句以及实际执行语句均为自定义语句,具体可根据实际应用需求进行自定义设置,在此不作限定。
51.其中,第一语句执行结果为接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给第一数据库以使其执行查询语句得到的,在此不作详述。
52.步骤120:中间件将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果。
53.中间件将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果。可以理解地,接口与数据库之间可为一对多的关系,即一个接口可对应一个、两个或多个数据库,接口与数据库之间的对应关系,可根据实际需求进行配置,在此不作限定。
54.具体地,可先通过接口调用模块响应于接口调用请求,调用该接口对应的第一数据库的查询语句,以使得第一数据库执行该查询语句,对于接口对应的余下一个、两个或多个数据库,都可通过中间件依次将实际执行语句发送给对应的余下各个数据库,以使得接
口对应的所有数据库都执行该查询语句。
55.不同编写语言下的同一查询语句具有相同的实际执行语句,通过中间件获取实际执行语句并发送至下一数据库的方式,能够克服不同类型的数据库所采用的语句编写语言不同的问题,适配各个数据库的编写语言格式,无需重新编写查询语句,也节省了接口调用的次数,从而大大提高自动化比对的效率,也进一步保证了各数据库的语句执行结果的准确性。
56.在一实施例中,中间件可在获取第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句的同时,还获取第一数据库执行计划,和/或第一数据库响应时间。其中,第一数据库执行计划为第一数据库执行查询语句的语句执行计划,即第一数据库执行查询语句的具体步骤,例如通过索引还是全表扫描访问表中的数据,连接查询的实现方式和连接的顺序等;第一数据库响应时间为第一数据库执行查询语句的时间。通过第一数据库执行计划的查看,可以为后续查询语句优化提供技术证据支撑;通过获取第一数据库响应时间,可以用来判断该查询语句的运行效率,进而为后续查询语句优化提供参考。
57.步骤130:中间件获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果。
58.在第二数据库执行实际执行语句,得到第二语句执行结果时,中间件可拦截第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果。可以理解地,在一实施例中,中间件也可在获取第二语句执行结果的同时,获取第二数据库执行计划,和/或第二数据库响应时间,以为后续查询语句优化提供参考。
59.在一实施例中,中间件可在获取第一语句执行结果后可将其缓存至第一语句执行结果集,且在获取第二语句执行结果后将其缓存至第二语句执行结果集,其中,基于第一语句执行结果集与第二语句执行结果集进行逐字段比对,得到比对结果。
60.在一实施例中,基于第一语句执行结果集与第二语句执行结果集进行逐字段比对的步骤可包括但不限于比对各个语句执行结果中的字段数量、各个相应字段的长度以及语义。
61.本实施例能够在接口调用的同时主动触发中间件,利用中间件来自动拦截各个数据库的语句执行结果,实现多个数据库的语句执行结果的自动比对,从而提高比对效率,减少人工比较成本。同时,中间件能够提供精准的语句执行结果对比,能够满足大数据量、字段级别对比。并且,通过中间件获取实际执行语句并发送至接口对应的下一数据库的方式,能够克服不同类型的数据所采用的语句编写语言不同的问题,无需重新编写查询语句,也节省了接口调用的次数,从而大大提高自动化比对的效率,也进一步保证了各数据库的语句执行结果的准确性。此外,在拦截语句执行结果的同时,还能够获取第一数据库执行计划以及第一数据库响应时间,实现执行计划的查询、执行时间的查看,为表索引创建、查询语句编写提供指导,为后续查询语句优化提供技术支撑。
62.如图4所示,下面以中间件、设置在应用层中的接口调用模块以及数据库集三端交互的形式,对上述多数据库语句执行结果自动比对方法的一实施例进行详细介绍。
63.步骤210:接口调用模块接收接口调用请求。
64.步骤220:接口调用模块基于接口调用请求调用对应的第一数据库的查询语句。
65.在一实施例中,如图5所示,步骤220具体包括:
66.步骤221:基于接口调用请求进行参数初始化,得到配置参数。
67.基于接口调用请求进行参数初始化,得到配置参数,其中,配置参数可为生成查询语句的动态参数。
68.步骤222:基于配置参数以及接口调用请求,生成第一数据库对应的查询语句。
69.在一实施例中,如图6所示,步骤222可包括:
70.步骤2221:基于接口调用请求调用第一数据库。
71.步骤2222:基于配置参数从第一数据库中获取语句标识信息。
72.在一实施例中,可基于接口调用请求调用第一数据库的持久层,然后基于配置参数从持久层中获取语句标识信息,从而将语句标识信息与配置参数组装,得到第一数据库对应的查询语句。
73.步骤2223:将语句标识信息与配置参数组装,得到第一数据库对应的查询语句。
74.对应地,在下述步骤250中,可利用中间件获取包含该语句标识信息与配置参数的实际执行语句。
75.步骤230:第一数据库执行查询语句,得到第一语句执行结果。
76.步骤240:中间件获取第一数据库的第一语句执行结果,并将其缓存至第一语句执行结果集,同时获取第一数据库执行计划和/或第一数据库响应时间。
77.步骤250:中间件基于第一语句执行结果获取第一数据库的实际执行语句,并将实际执行语句发送给接口调用请求对应的第二数据库。
78.步骤260:第二数据库执行实际执行语句,得到第二语句执行结果。
79.步骤270:中间件获取第二语句执行结果,并将其缓存至第二语句执行结果集。
80.步骤280:基于第一语句执行结果集与第二语句执行结果集进行逐字段比对,得到比对结果,并反馈至接口调用模块。
81.本实施例中通过在设置在应用层的接口调用模块以及数据库之间设置中间件,以利用该中间件实现多个数据库的语句执行结果的自动拦截以及比对,提高比对效率,减少人工比较成本。同时通过获取第一数据库执行计划以及第一数据库响应时间,能够实现执行计划的查询、执行时间的查看,为表索引创建、查询语句编写提供指导,为后续查询语句优化提供技术支撑。
82.本发明一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的多数据库语句执行结果自动比对方法。
83.存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
84.在一个具体的实施例中,图7示出了用于实现本发明实施例所提供的多数据库语句执行结果自动比对方法的电子设备700的结构示意图,电子设备700可以为计算机终端、移动终端或其它设备。
85.如图7所示,本发明实施例提供了一种电子设备700,包括:处理器701和存储器702,在存储器702中存储有计算机程序指令,其中,在计算机程序指令被处理器运行时,使得处理器701执行以下步骤:
86.获取第一数据库的第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句;将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果;获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果;其中,第一语句执行结果为接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给第一数据库以使其执行查询语句得到的。
87.进一步地,如图7所示,电子设备还包括网络接口703、输入设备704、硬盘705、和显示设备706。
88.上述各个接口和设备之间可以通过总线架构互连。总线架构可以是可以包括任意数量的互联的总线和桥。具体由处理器701代表的一个或者多个中央处理器(cpu),以及由存储器702代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。
89.网络接口703,可以连接至网络(如因特网、局域网等),从网络中获取相关数据,并可以保存在硬盘705中。
90.输入设备704,可以接收操作人员输入的各种指令,并发送给处理器701以供执行。输入设备704可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
91.显示设备706,可以将处理器701执行指令获得的结果进行显示。
92.存储器702,用于存储操作系统运行所必须的程序和数据,以及处理器701计算过程中的中间结果等数据。
93.可以理解,本发明实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。本文描述的装置和方法的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
94.在一些实施方式中,存储器702存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统7021和应用程序7022。
95.其中,操作系统7021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022,包含各种应用程序,例如浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序7022中。
96.上述处理器701,当调用并执行存储器702中所存储的应用程序和数据,具体的,可以是应用程序7022中存储的程序或指令时,获取第一数据库的第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句;将实际执行语句发送给接口调用请求
对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果;获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果;其中,第一语句执行结果为接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给第一数据库以使其执行查询语句得到的。
97.本发明上述实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成上述方法的步骤。
98.可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术功能的其它电子单元或其组合中。
99.对于软件实现,可通过执行本文功能的模块(例如过程、函数等)来实现本文的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
100.另外,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器运行时,使得处理器执行以下步骤:
101.获取第一数据库的第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句;将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果;获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果;其中,第一语句执行结果为接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给第一数据库以使其执行查询语句得到的。
102.在本技术所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
103.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
104.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
105.5以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:
1.一种多数据库语句执行结果自动比对方法,其特征在于,应用于语句执行结果自动比对系统中的中间件,所述语句执行结果自动比对系统还包括接口调用模块,所述方法包括如下步骤:所述中间件获取第一数据库的第一语句执行结果,并基于所述第一语句执行结果获取所述第一数据库的实际执行语句;其中,所述第一语句执行结果为所述接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给所述第一数据库以使其执行查询语句得到的;所述中间件将所述实际执行语句发送给所述接口调用请求对应的第二数据库,以使得所述第二数据库执行所述实际执行语句,得到第二语句执行结果;所述中间件获取所述第二语句执行结果,并基于所述第一语句执行结果与第二语句执行结果进行比对,得到比对结果。2.根据权利要求1所述的方法,其特征在于,所述接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句,包括:基于所述接口调用请求进行参数初始化,得到配置参数;基于所述配置参数以及所述接口调用请求,生成所述第一数据库对应的查询语句。3.根据权利要求2所述的方法,其特征在于,所述基于所述配置参数以及所述接口调用请求,生成所述第一数据库对应的查询语句,包括:基于所述接口调用请求调用所述第一数据库;基于所述配置参数从所述第一数据库中获取语句标识信息;将所述语句标识信息与所述配置参数组装,得到所述第一数据库对应的查询语句。4.根据权利要求1所述的方法,其特征在于,所述中间件获取所述第一语句执行结果,并基于所述第一语句执行结果获取所述第一数据库的实际执行语句的同时,还获取所述第一数据库执行计划,和/或第一数据库响应时间。5.根据权利要求1所述的方法,其特征在于,所述中间件获取所述第一语句执行结果后将其缓存至第一语句执行结果集,且在获取所述第二语句执行结果后将其缓存至第二语句执行结果集,其中,基于所述第一语句执行结果集与所述第二语句执行结果集进行逐字段比对,得到比对结果。6.根据权利要求1所述的方法,其特征在于,所述查询语句以及所述实际执行语句均为自定义语句。7.一种多数据库语句执行结果自动比对系统,其特征在于,包括:接口调用模块,包括:接收模块,用于接收接口调用请求;调用模块,用于基于所述接口调用请求调用对应的第一数据库的查询语句,以使得所述第一数据库执行查询语句,得到第一语句执行结果;中间件,拓展有语句执行结果比对插件,用于获取所述第一语句执行结果,并基于所述第一语句执行结果获取所述第一数据库的实际执行语句;将所述实际执行语句发送给所述接口调用请求对应的第二数据库,以使得所述第二数据库执行所述实际执行语句,得到第二语句执行结果;获取所述第二语句执行结果,并基于所述第一语句执行结果与第二语句执行结果进行比对,得到比对结果。
8.根据权利要求7所述的系统,其特征在于,所述调用模块,还用于响应于所述接口调用请求指示调用两个或两个以上的接口,同时调用各个所述接口调用请求所对应的第一数据库的查询语句,实现多接口同时调用功能,以使得各个所述第一数据库执行对应的查询语句,得到各自对应的第一语句执行结果,进而使得所述语句执行结果比对插件同时获取各个所述第一语句执行结果,并行完成各个所述第一语句执行结果与各自对应的第二语句执行结果的比对任务,得到各个比对任务对应的比对结果。9.根据权利要求7所述的系统,其特征在于,所述调用模块包括:参数配置模块,用于基于所述接口调用请求进行参数初始化,得到配置参数;语句配置模块,用于基于所述配置参数以及所述接口调用请求,生成所述第一数据库对应的查询语句。10.根据权利要求9所述的系统,其特征在于,所述基于所述配置参数以及所述接口调用请求,生成所述第一数据库对应的查询语句,包括:基于所述接口调用请求调用所述第一数据库;基于所述配置参数从所述第一数据库中获取语句标识信息;将所述语句标识信息与所述配置参数组装,得到所述第一数据库对应的查询语句。11.一种电子设备,其特征在于,包括:处理器;和存储器,在所述存储器中存储有计算机程序指令,其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:获取第一数据库的第一语句执行结果,并基于所述第一语句执行结果获取所述第一数据库的实际执行语句;将所述实际执行语句发送给接口调用请求对应的第二数据库,以使得所述第二数据库执行所述实际执行语句,得到第二语句执行结果;获取所述第二语句执行结果,并基于所述第一语句执行结果与第二语句执行结果进行比对,得到比对结果;其中,所述第一语句执行结果为接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给所述第一数据库以使其执行查询语句得到的。12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序指令,所述计算机程序指令被处理器运行时,使得所述处理器执行以下步骤:获取第一数据库的第一语句执行结果,并基于所述第一语句执行结果获取所述第一数据库的实际执行语句;将所述实际执行语句发送给接口调用请求对应的第二数据库,以使得所述第二数据库执行所述实际执行语句,得到第二语句执行结果;获取所述第二语句执行结果,并基于所述第一语句执行结果与第二语句执行结果进行比对,得到比对结果;其中,所述第一语句执行结果为接口调用模块响应于接收接口调用请求调用对应的第一数据库的查询语句并发送给所述第一数据库以使其执行查询语句得到的。

技术总结
本发明涉及数据处理技术领域,具体提供一种多数据库语句执行结果自动比对方法、系统、设备及介质,该方法包括:中间件获取第一数据库的第一语句执行结果,并基于第一语句执行结果获取第一数据库的实际执行语句;中间件将实际执行语句发送给接口调用请求对应的第二数据库,以使得第二数据库执行实际执行语句,得到第二语句执行结果;中间件获取第二语句执行结果,并基于第一语句执行结果与第二语句执行结果进行比对,得到比对结果。通过上述方式,本申请能够自动化拦截及比对各个数据库的语句执行结果,提高语句执行结果比对的效率。提高语句执行结果比对的效率。提高语句执行结果比对的效率。


技术研发人员:毛三 吕争让 易东
受保护的技术使用者:建信金融科技有限责任公司
技术研发日:2023.06.12
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐