CN111367894B - 基于数据库迁移的数据对比方法及装置 - Google Patents
基于数据库迁移的数据对比方法及装置 Download PDFInfo
- Publication number
- CN111367894B CN111367894B CN202010245393.8A CN202010245393A CN111367894B CN 111367894 B CN111367894 B CN 111367894B CN 202010245393 A CN202010245393 A CN 202010245393A CN 111367894 B CN111367894 B CN 111367894B
- Authority
- CN
- China
- Prior art keywords
- database
- target
- transaction
- source
- data comparison
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于数据库迁移的数据对比方法及装置,基于数据库迁移的数据对比方法包括:获取源数据库类型以及目标数据库类型;根据预设的数据库表名以及预设的入参字段生成查询语句;根据所述源数据库类型以及所述标数据库类型确定数据库驱动连接;根据所述查询语句以及数据库驱动连接对比源数据库与目标数据库中的数据。本发明克服了金融和通讯领域深度依赖ORACLE数据库,以及在国产化数据库转型中业务迁移时对迁移后业务正确性和数据一致性验证困难的问题,尤其是目前业界缺乏这种可以提供批量、可重复执行、简单易用、可分批次执行交易单元对比多库执行结果方法的情况。
Description
技术领域
本发明涉及信息技术领域,具体涉及国产化数据库技术在金融和通讯领域的应用技术领域,特别是涉及一种基于数据库迁移的数据对比方法及装置。
背景技术
目前在金融和通讯领域,ORACLE、DB2等国外公司的数据库软件占据大部分市场,但是随着国家信息科技产业规划及国产化战略的发展,“自主可控、安全可信、高效可用”的国产化信息产品已逐步的在各个行业机构全面使用。去ORACLE及ORACLE数据库向国产化数据库迁移已成为一种主流趋势。在数据库迁移的过程中,如何快速、有效的自动检查出同一笔交易Oracle数据库和国产化数据库中的数据是否一致成为一大难点,解决这一问题才是数据库国产化替代过程中的一个基础保障,目前大多数使用人工对比的方法,分别去两个甚至多个数据库中对比数据,耗时耗力,
传统的对比方式是针对整个数据库数据的比较,这种全量数据对比针对普通的应用数据量较小的情况下是可行的,但也是一种重量级的对比,耗时较高且不易精确对比具体交易的数据一致性,从而对于软件工程中的精细化管理的要求不能满足。对于金融行业、通讯行业中动辄数据体量达T量级的应用,这种传统的数据对比方式显然是不符合互联网行业特性和业务发展需求的。
综上,当前传统方法缺乏一种灵活、快捷、高效、精确的对比两库甚至多库同笔交易数据一致性的校验方法。
发明内容
针对现有技术中的问题,本发明提供的基于数据库迁移的数据对比方法及装置,克服大数据量级数据库在业务功能迁移过程中,无法灵活、快捷、高效、精确地对比单笔交易做迁移前后的数据一致性的问题,使用户把业务从ORACLE、DB这种商业数据库迁移至国产化数据库过程中能够对业务迁移结果透明可控,同时大幅降低迁移后对同笔交易结果一致性比的成本和提升对比效率。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种基于数据库迁移的数据对比方法,包括:
获取源数据库类型以及目标数据库类型;
根据预设的数据库表名以及预设的入参字段生成查询语句;
根据所述源数据库类型以及所述标数据库类型确定数据库驱动连接;
根据所述查询语句以及数据库驱动连接对比源数据库与目标数据库中的数据。
优选地,所述根据预设的表名以及预设的入参字段生成查询语句,包括:
将查询保留字与用户定义的目标对比字段,以生成所述查询语句。
优选地,基于数据库迁移的数据对比方法还包括:
初始化所述源数据库以及所述目标数据库。
优选地,所述初始化所述源数据库以及所述目标数据库包括:
获取所述源数据库的连接以及目标数据库的连接;
以JDBC的方式在所述源数据库类型以及所述目标数据库执行查询语句,并将执行结果压栈。
优选地,所述以JDBC的方式在所述源数据库类型以及所述目标数据库执行查询语句,并将执行结果压栈,包括:
将期望值压入期望值栈;
将所述源数据库的执行结果压入源库值栈;
将目标数据库的执行结果压入目标值栈。
优选地,所述根据所述查询语句以及数据库驱动连接对比源数据库与目标数据库中的数据,包括:
对比所述期望值栈、源库值栈以及目标值栈各自中的值是否相同,以生成所述源数据库与目标数据库中的数据的对比结果。
第二方面,本发明提供一种基于数据库迁移的数据对比装置,该装置包括:
类型获取单元,用于获取源数据库类型以及目标数据库类型;
查询语句生成单元,用于根据预设的数据库表名以及预设的入参字段生成查询语句;
驱动连接确定单元,用于根据所述源数据库类型以及所述标数据库类型确定数据库驱动连接;
数据对比单元,用于根据所述查询语句以及数据库驱动连接对比源数据库与目标数据库中的数据。
优选地,所述查询语句生成单元具体用于将查询保留字与用户定义的目标对比字段,以生成所述查询语句。
优选地,基于数据库迁移的数据对比装置还包括:
数据库初始化单元,用于初始化所述源数据库以及所述目标数据库;所述数据库初始化单元包括:
连接获取模块,用于获取所述源数据库的连接以及目标数据库的连接;
查询语句查询模块,用于以JDBC的方式在所述源数据库类型以及所述目标数据库执行查询语句,并将执行结果压栈。
优选地,所述查询语句查询模块包括:
期望值压入模块,用于将期望值压入期望值栈;
源执行结果压入模块,用于将所述源数据库的执行结果压入源库值栈;
目标执行结果压入模块,用于将目标数据库的执行结果压入目标值栈。
优选地,所述数据对比单元具体用于对比所述期望值栈、源库值栈以及目标值栈各自中的值是否相同,以生成所述源数据库与目标数据库中的数据的对比结果。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现基于数据库迁移的数据对比方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现基于数据库迁移的数据对比方法的步骤。
从上述描述可知,本发明实施例提供的基于数据库迁移的数据对比方法及装置,首先设置前置条件(交易单元名称、交易前置条件、交易预期结果),接着,根据交易前置条件中的表名及预设入参字段生成查询单元,以及根据交易前置条件中的数据库类型在适配对应的数据库驱动连接,根据交易单元名称来判断执行对应的交易单元,在对应的数据库中执行查询单元,统计查询单元在各目标库中执行的结果与源库做字段一致性比对,目标库与源库当前交易处理结果一致时再与期望值做对比。本发明克服了金融和通讯领域深度依赖ORACLE数据库,以及在国产化数据库转型中业务迁移时对迁移后业务正确性和数据一致性验证困难的问题,尤其是目前业界缺乏这种可以提供批量、可重复执行、简单易用、可分批次执行交易单元对比多库执行结果方法的情况,具体地,本发明的有益效果如下:
操作简单:用户仅需填写需要验证的业务单元、业务交易的入参、期望的结果,启动执行后即可得到两个或多个库之间同笔交易的影响结果是否一致。
效率高:支持批量交易单元的并行操作,单个交易单独配置对应交易处理器、入参、期望结果,批量并行运行后给出校验报表,该批量交易单元支持多次重复执行。
扩展性好:支持横向扩展多种类型数据库同笔交易的数据一致性校验,一次配置可以验证多类型库的比对。
复用性高:支持对已经配置的交易单元多次重复执行,用来对数据库迁移后多次回归验证时重复执行。
成本低:无需使用人员具备专业的技术能力,仅需使用人明确输入物和期望结果,执行完成后给出对应报表,供技术人员分析。
产出高:因无需专业技术人员进行代码编写,仅需在给定模板中填写具体信息即可,支持在短时间内大批量交易单元校验单元的设置。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例中基于数据库迁移的数据对比方法流程示意图一;
图2为本发明的实施例中基于数据库迁移的数据对比方法步骤200的流程示意图;
图3为本发明的实施例中基于数据库迁移的数据对比方法流程示意图二;
图4为本发明的实施例中基于数据库迁移的数据对比方法步骤500的流程示意图;
图5为本发明的实施例中基于数据库迁移的数据对比方法步骤502的流程示意图;
图6为本发明的实施例中基于数据库迁移的数据对比方法步骤400的流程示意图;
图7为本发明的具体应用实例中基于数据库迁移的数据对比方法的流程示意图;
图8为本发明的具体应用实例中基于数据库迁移的数据对比方法的思维导图;
图9为本发明的具体应用实例中基于数据库迁移的数据对比方法客户端的结构示意图;
图10为本发明的具体应用实例中基于数据库迁移的数据对比装置结构示意图;
图11为本发明的具体应用实例中查询账户信息表示意图;
图12为本发明的具体应用实例中多数据对比执行结果示意图;
图13为本发明的具体应用实例中基于数据库迁移的数据对比装置的结构示意图一;
图14为本发明的具体应用实例中基于数据库迁移的数据对比装置的结构示意图二;
图15为本发明的具体应用实例中数据库初始化单元的结构示意图;
图16为本发明的具体应用实例中查询语句查询模块的结构示意图;
图17为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
鉴于现有技术中针对数据库迁移前后对比方式为针对整个数据库数据的比较,此种方式耗时较高且不易精确,对于软件工程中的精细化管理的要求不能满足。基于此,本发明的实施例提供一种基于数据库迁移的数据对比方法的具体实施方式,参见图1,该方法具体包括如下内容:
步骤100:获取源数据库类型以及目标数据库类型。
步骤100在实施时,具体为:根据用户配置的数据库字典表来自动适配对应的数据库,进而配置连接池,另外,支持客户输入端的文本类型为EXCEL、XML。
步骤200:根据预设的数据库表名以及预设的入参字段生成查询语句。
根据模板中的数据库表名Account、字段名(用户名NAME、身份证号码IDENTIFYID、银行卡账号CARDID、金额AMOUNT)组装查询单元执行时所需查询语句。
步骤300:根据所述源数据库类型以及所述标数据库类型确定数据库驱动连接。
具体地,读取输入端中的第一条记录,通过获取目标数据库名,并根据该名称自动路由到适合的驱动,然后建立数据库连接。
步骤400:根据所述查询语句以及数据库驱动连接对比源数据库与目标数据库中的数据。
具体地,由用户设定当前交易的期望结果,由步骤100至400给出当前交易在两库、多库中执行结果,并将执行结果与期望结果进行对比。
从上述描述可知,本发明实施例提供的基于数据库迁移的数据对比方法,首先设置前置条件(交易单元名称、交易前置条件、交易预期结果),接着,根据交易前置条件中的表名及预设入参字段生成查询单元,以及根据交易前置条件中的数据库类型在适配对应的数据库驱动连接,根据交易单元名称来判断执行对应的交易单元,在对应的数据库中执行查询单元,统计查询单元在各目标库中执行的结果与源库做字段一致性比对,目标库与源库当前交易处理结果一致时再与期望值做对比。本发明克服了金融和通讯领域深度依赖ORACLE数据库,以及在国产化数据库转型中业务迁移时对迁移后业务正确性和数据一致性验证困难的问题,尤其是目前业界缺乏这种可以提供批量、可重复执行、简单易用、可分批次执行交易单元对比多库执行结果方法的情况。
一实施例中,参见图2,步骤200具体包括:
步骤201:将查询保留字与用户定义的目标对比字段,以生成所述查询语句。
生成查询语句的过程为:SELECT NAME,IDENTIFYID,CARDID,AMOUNT FROMACCOUNT;其中SELECT、FROM为SQL保留字,装置将这些保留字(SELECT+空格)与用户定义的目标对比字段(NAME、IDENTIFYID、CARDID、AMOUNT)通过“逗号”+“_”分隔符连接起来,最后连接SQL结束符分号“;”。
一实施例中,参见图3,基于数据库迁移的数据对比方法还包括:
步骤500:初始化所述源数据库以及所述目标数据库。参见图4,步骤500具体包括:
步骤501:获取所述源数据库的连接以及目标数据库的连接。
步骤502:以JDBC的方式在所述源数据库类型以及所述目标数据库执行查询语句,并将执行结果压栈。
在步骤501以及步骤502中,同时获取源数据库和目标数据库的连接,初始化成功后启动查询语句,并以JDBC方式分别在源和目标数据库执行。可以理解的是,JDBC是指Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC是Java和数据库之间的一个桥梁,能够执行SQL语句。由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现。
一实施例中,参见图5,步骤502具体包括:
步骤5021:将期望值压入期望值栈。
步骤5022:将所述源数据库的执行结果压入源库值栈。
步骤5023:将目标数据库的执行结果压入目标值栈。
一实施例中,参见图6,步骤400进一步包括:
步骤401:对比所述期望值栈、源库值栈以及目标值栈各自中的值是否相同,以生成所述源数据库与目标数据库中的数据的对比结果。
具体地,将期望值压入“期望值栈”,源数据库的执行结果压入“源库值栈”,目标数据库的执行结果压入“目标值栈”。之后分别遍历“期望值栈”、“源库值栈”、“目标库值栈”,分别对比三个值栈中相同交易的执行结果,如果同一交易执行结果在三个栈中的值相同,则表示当前交易目标库元数据及业务逻辑迁移成功,同时将核对结果回写至用户在客户端填写的文件中的“对比结果”域中,供用户来核查当前批次交易执行情况。
从上述描述可知,本发明实施例提供的基于数据库迁移的数据对比方法,首先设置前置条件(交易单元名称、交易前置条件、交易预期结果),接着,根据交易前置条件中的表名及预设入参字段生成查询单元,以及根据交易前置条件中的数据库类型在适配对应的数据库驱动连接,根据交易单元名称来判断执行对应的交易单元,在对应的数据库中执行查询单元,统计查询单元在各目标库中执行的结果与源库做字段一致性比对,目标库与源库当前交易处理结果一致时再与期望值做对比。本发明克服了金融和通讯领域深度依赖ORACLE数据库,以及在国产化数据库转型中业务迁移时对迁移后业务正确性和数据一致性验证困难的问题,尤其是目前业界缺乏这种可以提供批量、可重复执行、简单易用、可分批次执行交易单元对比多库执行结果方法的情况,具体地,本发明的有益效果如下:
操作简单:用户仅需填写需要验证的业务单元、业务交易的入参、期望的结果,启动执行后即可得到两个或多个库之间同笔交易的影响结果是否一致。
效率高:支持批量交易单元的并行操作,单个交易单独配置对应交易处理器、入参、期望结果,批量并行运行后给出校验报表,该批量交易单元支持多次重复执行。
扩展性好:支持横向扩展多种类型数据库同笔交易的数据一致性校验,一次配置可以验证多类型库的比对。
复用性高:支持对已经配置的交易单元多次重复执行,用来对数据库迁移后多次回归验证时重复执行。
成本低:无需使用人员具备专业的技术能力,仅需使用人明确输入物和期望结果,执行完成后给出对应报表,供技术人员分析。
产出高:因无需专业技术人员进行代码编写,仅需在给定模板中填写具体信息即可,支持在短时间内大批量交易单元校验单元的设置。
为进一步地说明本方案,本发明以银行系统为例(用户的账户信息功能在数据库由Oracle迁移到PostgreSQL过程),提供基于数据库迁移的数据对比方法的具体应用实例,该具体应用实例具体包括如下内容,参见图7、参见图8以及图9。
本方法可以客户端的形式安装在任何一台PC机上,该客户端是一个封装的Java可执行jar包,并在已安装JRE可执行环境的机器上可以跨平台运行。
S0:获取交易单元名称、交易前置条件以及交易预期结果。
首先由用户填写交易单元、当前交易涉及到的数据库表、当前交易的前置条件、当前交易的期望结果,参见图10。另外支持多数据库的数据库一致性对比、支持多交易单元批量执行、支持交易单元重复执行。支持客户在输入端的文本类型为EXCEL、XML,当前案具体应用实例例中使用的是EXCEL。支持生产不停机场景对生产实际交易单元的一致性校验。可以理解的是,步骤S0提供了连接数据源的配置,用户只需在给定字典中填写具体的数据库名即可,无需填写专业的数据库连接池配置信息,根据用户在可供选择的字典中选择指定的数据库,装置提供自动适配数据连接池配置功能。用户根据提供的模板填写交易单元名称、填写涉及当前交易要校验的数据库名称(通常情况这个值设为默认值,允许多选)、当前交易关联的数据库表(支持多表)、当前交易前置条件(入参)、当前交易关注字段(出参)、当前交易期望结果,参见图11,依次填写查询账户信息的交易单元所需的信息。
S1:读取校验的数据库类型。
根据用户配置的数据库字典表来自动适配对应的数据库,配置连接池;读取输入端中的第一条记录CheckAccount的待校验交易单元,通过获取目标数据库名:PostgreSQL后,根据这个名称自动路由到适合PostgreSQL的驱动,然后建立数据库连接。可以理解的是,该步骤执行完毕后已经具备和目标数据库通信的条件。
S2:组装查询语言。
根据模板中的数据库表名Account、字段名(用户名NAME、身份证号码IDENTIFYID、银行卡账号CARDID、金额AMOUNT)组装查询单元执行时所需SQL语句。组装原理是装置将SQL保留字与用户定义的目标对比字段组合成待执行的查询语句。具体地,组装过程为:SELECTNAME,IDENTIFYID,CARDID,AMOUNT FROM ACCOUNT;其中SELECT、FROM为SQL保留字,装置将这些保留字(SELECT+空格)与用户定义的目标对比字段(NAME、IDENTIFYID、CARDID、AMOUNT)通过“逗号”+“_”分隔符连接起来,最后连接SQL结束符分号“;”。
S3:适配对应的数据库驱动。
读取模板中数据库类型(PostgreSQL),适配对应的数据库驱动,自测数据库连通是否已经完全就绪,驱动提供测试连接状态功能。
S4:初始化源数据库以及目标数据库。
注入交易单元名称,加载查询单元,初始化时会同时获取源数据库和目标数据库的连接,初始化成功后启动将查询单元对应的SQL语句,并通过JDBC方式分别在源和目标数据库执行,执行结束后将执行结果压栈(如图12所示)。交易单元中的期望值压入“期望值栈”,源库的执行结果压入“源库值栈”,目标库的执行结果压入“目标值栈”。
期望值:Jim_22025619601207_2220104236_2347.3,在用户编写的查询单元中以及已经给出,取出后和交易名称“CheckAccount”一并压入“期望值栈”。
源库值:通过查询语句在源库中查询结果并通过连接符“_”连接,SQL执行结果为Jim_22025619601207_2220104236_2347.3,和交易名称“CheckAccount”一并压入“源库值栈”。
目标库值:通过查询语句在目标库中的执行结果并通过连接符“_”连接,SQL执行结果为Jim_22025619601207_2220104236_2347.3,和交易名称“CheckAccount”一并压入“目标库值栈”。完成三栈压栈动作后,完成第一个交易单元查询动作的执行。
接着,轮流读取用户在客户端输入文件中输入的下一个交易单元,并依次执行步骤S1至S4,直至用户在客户端输入文件中填写的最后一个交易单元执行完毕。
S5:对比期望值栈、源库值栈以及目标值栈各自中的值是否相同,以生成源数据库与目标数据库中的数据的对比结果。
步骤S5在实施时,分别遍历“期望值栈”、“源库值栈”、“目标库值栈”,以交易单元为索引分别对比三个值栈中相同交易单元的执行结果,如果同一交易单元执行结果在三个栈中的值相同,则表示当前交易单元目标库元数据及业务逻辑迁移成功,同时将核对结果回写至用户在客户端填写的文件中的“对比结果”域中,供用户来核查当前批次交易单元执行情况。在本具体应用实例中,对比三个值均为:Jim_22025619601207_2220104236_2347.3,说明该交易单元迁移结果一致,迁移通过验证,最后释放连接资源。
从上述描述可知,本发明实施例提供的基于数据库迁移的数据对比方法,首先设置前置条件(交易单元名称、交易前置条件、交易预期结果),接着,根据交易前置条件中的表名及预设入参字段生成查询单元,以及根据交易前置条件中的数据库类型在适配对应的数据库驱动连接,根据交易单元名称来判断执行对应的交易单元,在对应的数据库中执行查询单元,统计查询单元在各目标库中执行的结果与源库做字段一致性比对,目标库与源库当前交易处理结果一致时再与期望值做对比。本发明克服了金融和通讯领域深度依赖ORACLE数据库,以及在国产化数据库转型中业务迁移时对迁移后业务正确性和数据一致性验证困难的问题,尤其是目前业界缺乏这种可以提供批量、可重复执行、简单易用、可分批次执行交易单元对比多库执行结果方法的情况,具体地,本发明的有益效果如下:
操作简单:用户仅需填写需要验证的业务单元、业务交易的入参、期望的结果,启动执行后即可得到两个或多个库之间同笔交易的影响结果是否一致。
效率高:支持批量交易单元的并行操作,单个交易单独配置对应交易处理器、入参、期望结果,批量并行运行后给出校验报表,该批量交易单元支持多次重复执行。
扩展性好:支持横向扩展多种类型数据库同笔交易的数据一致性校验,一次配置可以验证多类型库的比对。
复用性高:支持对已经配置的交易单元多次重复执行,用来对数据库迁移后多次回归验证时重复执行。
成本低:无需使用人员具备专业的技术能力,仅需使用人明确输入物和期望结果,执行完成后给出对应报表,供技术人员分析。
产出高:因无需专业技术人员进行代码编写,仅需在给定模板中填写具体信息即可,支持在短时间内大批量交易单元校验单元的设置。
基于同一发明构思,本申请实施例还提供了基于数据库迁移的数据对比装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于基于数据库迁移的数据对比装置解决问题的原理与基于数据库迁移的数据对比方法相似,因此基于数据库迁移的数据对比装置的实施可以参见基于数据库迁移的数据对比方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现基于数据库迁移的数据对比方法的基于数据库迁移的数据对比装置的具体实施方式,参见图13,基于数据库迁移的数据对比装置具体包括如下内容:
类型获取单元10,用于获取源数据库类型以及目标数据库类型;
查询语句生成单元20,用于根据预设的数据库表名以及预设的入参字段生成查询语句;
驱动连接确定单元30,用于根据所述源数据库类型以及所述标数据库类型确定数据库驱动连接;
数据对比单元40,用于根据所述查询语句以及数据库驱动连接对比源数据库与目标数据库中的数据。
优选地,所述查询语句生成单元具体用于将查询保留字与用户定义的目标对比字段,以生成所述查询语句。
优选地,参见图14,基于数据库迁移的数据对比装置还包括:
数据库初始化单元50,用于初始化所述源数据库以及所述目标数据库;参见图15,所述数据库初始化单元50包括:
连接获取模块501,用于获取所述源数据库的连接以及目标数据库的连接;
查询语句查询模块502,用于以JDBC的方式在所述源数据库类型以及所述目标数据库执行查询语句,并将执行结果压栈。
优选地,参见图16,所述查询语句查询模块502包括:
期望值压入模块5021,用于将期望值压入期望值栈;
源执行结果压入模块5022,用于将所述源数据库的执行结果压入源库值栈;
目标执行结果压入模块5023,用于将目标数据库的执行结果压入目标值栈。
优选地,所述数据对比单元具体用于对比所述期望值栈、源库值栈以及目标值栈各自中的值是否相同,以生成所述源数据库与目标数据库中的数据的对比结果。
从上述描述可知,本发明实施例提供的基于数据库迁移的数据对比装置,首先设置前置条件(交易单元名称、交易前置条件、交易预期结果),接着,根据交易前置条件中的表名及预设入参字段生成查询单元,以及根据交易前置条件中的数据库类型在适配对应的数据库驱动连接,根据交易单元名称来判断执行对应的交易单元,在对应的数据库中执行查询单元,统计查询单元在各目标库中执行的结果与源库做字段一致性比对,目标库与源库当前交易处理结果一致时再与期望值做对比。本发明克服了金融和通讯领域深度依赖ORACLE数据库,以及在国产化数据库转型中业务迁移时对迁移后业务正确性和数据一致性验证困难的问题,尤其是目前业界缺乏这种可以提供批量、可重复执行、简单易用、可分批次执行交易单元对比多库执行结果方法的情况,具体地,本发明的有益效果如下:
操作简单:用户仅需填写需要验证的业务单元、业务交易的入参、期望的结果,启动执行后即可得到两个或多个库之间同笔交易的影响结果是否一致。
效率高:支持批量交易单元的并行操作,单个交易单独配置对应交易处理器、入参、期望结果,批量并行运行后给出校验报表,该批量交易单元支持多次重复执行。
扩展性好:支持横向扩展多种类型数据库同笔交易的数据一致性校验,一次配置可以验证多类型库的比对。
复用性高:支持对已经配置的交易单元多次重复执行,用来对数据库迁移后多次回归验证时重复执行。
成本低:无需使用人员具备专业的技术能力,仅需使用人明确输入物和期望结果,执行完成后给出对应报表,供技术人员分析。
产出高:因无需专业技术人员进行代码编写,仅需在给定模板中填写具体信息即可,支持在短时间内大批量交易单元校验单元的设置。
本申请的实施例还提供能够实现上述实施例中的基于数据库迁移的数据对比方法中全部步骤的一种电子设备的具体实施方式,参见图17,电子设备具体包括如下内容:
处理器(processor)1201、存储器(memory)1202、通信接口(CommunicationsInterface)1203和总线1204;
其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备、接口设备以及用户端设备等相关设备之间的信息传输。
处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的基于数据库迁移的数据对比方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:获取源数据库类型以及目标数据库类型;
步骤200:根据预设的数据库表名以及预设的入参字段生成查询语句;
步骤300:根据所述源数据库类型以及所述标数据库类型确定数据库驱动链接;
步骤400:根据所述查询语句以及数据库驱动链接对比源数据库与目标数据库中的数据。
从上述描述可知,本申请实施例中的电子设备,首先设置前置条件(交易单元名称、交易前置条件、交易预期结果),接着,根据交易前置条件中的表名及预设入参字段生成查询单元,以及根据交易前置条件中的数据库类型在适配对应的数据库驱动连接,根据交易单元名称来判断执行对应的交易单元,在对应的数据库中执行查询单元,统计查询单元在各目标库中执行的结果与源库做字段一致性比对,目标库与源库当前交易处理结果一致时再与期望值做对比。本发明克服了金融和通讯领域深度依赖ORACLE数据库,以及在国产化数据库转型中业务迁移时对迁移后业务正确性和数据一致性验证困难的问题,尤其是目前业界缺乏这种可以提供批量、可重复执行、简单易用、可分批次执行交易单元对比多库执行结果方法的情况,具体地,本发明的有益效果如下:
操作简单:用户仅需填写需要验证的业务单元、业务交易的入参、期望的结果,启动执行后即可得到两个或多个库之间同笔交易的影响结果是否一致。
效率高:支持批量交易单元的并行操作,单个交易单独配置对应交易处理器、入参、期望结果,批量并行运行后给出校验报表,该批量交易单元支持多次重复执行。
扩展性好:支持横向扩展多种类型数据库同笔交易的数据一致性校验,一次配置可以验证多类型库的比对。
复用性高:支持对已经配置的交易单元多次重复执行,用来对数据库迁移后多次回归验证时重复执行。
成本低:无需使用人员具备专业的技术能力,仅需使用人明确输入物和期望结果,执行完成后给出对应报表,供技术人员分析。
产出高:因无需专业技术人员进行代码编写,仅需在给定模板中填写具体信息即可,支持在短时间内大批量交易单元校验单元的设置。
本申请的实施例还提供能够实现上述实施例中的基于数据库迁移的数据对比方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于数据库迁移的数据对比方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:获取源数据库类型以及目标数据库类型;
步骤200:根据预设的数据库表名以及预设的入参字段生成查询语句;
步骤300:根据所述源数据库类型以及所述标数据库类型确定数据库驱动链接;
步骤400:根据所述查询语句以及数据库驱动链接对比源数据库与目标数据库中的数据。
从上述描述可知,本申请实施例中的计算机可读存储介质,首先设置前置条件(交易单元名称、交易前置条件、交易预期结果),接着,根据交易前置条件中的表名及预设入参字段生成查询单元,以及根据交易前置条件中的数据库类型在适配对应的数据库驱动连接,根据交易单元名称来判断执行对应的交易单元,在对应的数据库中执行查询单元,统计查询单元在各目标库中执行的结果与源库做字段一致性比对,目标库与源库当前交易处理结果一致时再与期望值做对比。本发明克服了金融和通讯领域深度依赖ORACLE数据库,以及在国产化数据库转型中业务迁移时对迁移后业务正确性和数据一致性验证困难的问题,尤其是目前业界缺乏这种可以提供批量、可重复执行、简单易用、可分批次执行交易单元对比多库执行结果方法的情况,具体地,本发明的有益效果如下:
操作简单:用户仅需填写需要验证的业务单元、业务交易的入参、期望的结果,启动执行后即可得到两个或多个库之间同笔交易的影响结果是否一致。
效率高:支持批量交易单元的并行操作,单个交易单独配置对应交易处理器、入参、期望结果,批量并行运行后给出校验报表,该批量交易单元支持多次重复执行。
扩展性好:支持横向扩展多种类型数据库同笔交易的数据一致性校验,一次配置可以验证多类型库的比对。
复用性高:支持对已经配置的交易单元多次重复执行,用来对数据库迁移后多次回归验证时重复执行。
成本低:无需使用人员具备专业的技术能力,仅需使用人明确输入物和期望结果,执行完成后给出对应报表,供技术人员分析。
产出高:因无需专业技术人员进行代码编写,仅需在给定模板中填写具体信息即可,支持在短时间内大批量交易单元校验单元的设置。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种基于数据库迁移的数据对比方法,其特征在于,包括:
获取源数据库类型以及目标数据库类型;
根据预设的数据库表名以及预设的入参字段生成查询语句;
根据所述源数据库类型以及所述目标数据库类型确定数据库驱动连接;
获取所述源数据库的连接以及目标数据库的连接;
以JDBC的方式在所述源数据库以及所述目标数据库执行所述查询语句,并将执行结果压栈,其中,将所述源数据库的执行结果压入源库值栈,将目标数据库的执行结果压入目标值栈;
对比同一交易单元分别在期望值栈、所述源库值栈以及所述目标值栈中的值是否相同,以生成该交易单元在所述源数据库与目标数据库中的数据对比结果,其中,所述期望值栈存储各交易单元各自对应的期望值。
2.根据权利要求1所述的基于数据库迁移的数据对比方法,其特征在于,所述根据预设的表名以及预设的入参字段生成查询语句,包括:
将查询保留字与用户定义的目标对比字段进行组合,以生成所述查询语句。
3.一种基于数据库迁移的数据对比装置,其特征在于,包括:
类型获取单元,用于获取源数据库类型以及目标数据库类型;
查询语句生成单元,用于根据预设的数据库表名以及预设的入参字段生成查询语句;
驱动连接确定单元,用于根据所述源数据库类型以及所述目标数据库类型确定数据库驱动连接;
连接获取模块,用于获取所述源数据库的连接以及目标数据库的连接;
查询语句查询模块,用于以JDBC的方式在所述源数据库以及所述目标数据库执行所述查询语句,并将执行结果压栈,其中,将所述源数据库的执行结果压入源库值栈,将目标数据库的执行结果压入目标值栈;
数据对比单元,用于对比同一交易单元分别在期望值栈、所述源库值栈以及所述目标值栈中的值是否相同,以生成该交易单元在所述源数据库与目标数据库中的数据对比结果,其中,所述期望值栈存储各交易单元各自对应的期望值。
4.根据权利要求3所述的基于数据库迁移的数据对比装置,其特征在于,所述查询语句生成单元具体用于将查询保留字与用户定义的目标对比字段进行组合,以生成所述查询语句。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至2任一项所述基于数据库迁移的数据对比方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至2任一项所述基于数据库迁移的数据对比方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245393.8A CN111367894B (zh) | 2020-03-31 | 2020-03-31 | 基于数据库迁移的数据对比方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245393.8A CN111367894B (zh) | 2020-03-31 | 2020-03-31 | 基于数据库迁移的数据对比方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367894A CN111367894A (zh) | 2020-07-03 |
CN111367894B true CN111367894B (zh) | 2023-08-18 |
Family
ID=71210780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010245393.8A Active CN111367894B (zh) | 2020-03-31 | 2020-03-31 | 基于数据库迁移的数据对比方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367894B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817934A (zh) * | 2021-01-21 | 2021-05-18 | 厦门熵基科技有限公司 | 一种数据迁移方法、装置、设备和计算机可读存储介质 |
CN117931767A (zh) * | 2023-12-15 | 2024-04-26 | 北京宇信科技集团股份有限公司 | 一种数据库迁移平台和数据库迁移方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440273A (zh) * | 2013-08-06 | 2013-12-11 | 北京航空航天大学 | 一种数据跨平台迁移方法及装置 |
CN106970920A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种用于数据库数据迁移的方法与设备 |
CN109002474A (zh) * | 2018-06-15 | 2018-12-14 | 北京信安世纪科技股份有限公司 | 一种数据迁移方法及装置 |
CN110209650A (zh) * | 2019-05-05 | 2019-09-06 | 苏宁易购集团股份有限公司 | 数据规整迁移方法、装置、计算机设备和存储介质 |
CN110532241A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 利用MySQL Binlog进行不停机数据迁移方法 |
-
2020
- 2020-03-31 CN CN202010245393.8A patent/CN111367894B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440273A (zh) * | 2013-08-06 | 2013-12-11 | 北京航空航天大学 | 一种数据跨平台迁移方法及装置 |
CN106970920A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种用于数据库数据迁移的方法与设备 |
CN109002474A (zh) * | 2018-06-15 | 2018-12-14 | 北京信安世纪科技股份有限公司 | 一种数据迁移方法及装置 |
CN110209650A (zh) * | 2019-05-05 | 2019-09-06 | 苏宁易购集团股份有限公司 | 数据规整迁移方法、装置、计算机设备和存储介质 |
CN110532241A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 利用MySQL Binlog进行不停机数据迁移方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111367894A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7996816B2 (en) | Method and apparatus for dynamically binding service component implementations for specific unit test cases | |
US10684966B1 (en) | Orchestrating dataflows with inferred data store interactions | |
CN111367894B (zh) | 基于数据库迁移的数据对比方法及装置 | |
CN110633200A (zh) | 用于测试智能合约的方法和设备 | |
CN111949543B (zh) | 基于分布式平台的测试方法、装置、电子设备及存储介质 | |
CN111125064B (zh) | 一种生成数据库模式定义语句的方法和装置 | |
CN105389261A (zh) | 异步测试的方法及装置 | |
CN112699055A (zh) | 一种维护成本较低的软件自动化测试方法及系统 | |
CN111782211A (zh) | 基于Vue组件的参数页面动态生成方法及装置 | |
CN112860584B (zh) | 基于工作流模型的测试方法及装置 | |
CN114238527A (zh) | 基于对象关系映射的数据处理方法和数据处理装置 | |
CN109388406A (zh) | 转换java代码的方法及装置、存储介质、电子装置 | |
CN117743145A (zh) | 一种基于编码模板的测试脚本生成方法、装置及处理设备 | |
CN117744651A (zh) | 一种语言大模型融合nlu的槽位信息抽取方法及装置 | |
CN111143463B (zh) | 一种基于主题模型的银行数据仓库的构建方法及装置 | |
CN117234582A (zh) | 一种项目代码处理方法、装置、电子设备及存储介质 | |
CN111090638B (zh) | 一种数据库迁移中交易功能的对比方法及装置 | |
CN116860636A (zh) | 单元测试代码生成方法、装置、设备及存储介质 | |
CN111259619A (zh) | 配置对象的控制方法、装置、存储介质及验证平台 | |
CN114356454B (zh) | 对账数据处理方法、设备、存储介质及程序产品 | |
CN114138815A (zh) | 一种应用程序的多数据库兼容实现方法、设备及介质 | |
CN113901025A (zh) | 数据库管理方法、装置、设备和存储介质 | |
KR102117165B1 (ko) | 바이너리 분석을 위한 중간 언어 테스트 방법 및 장치 | |
CN117574822B (zh) | 用于芯片的面向优化设计测试方法、计算机设备及介质 | |
CN116562204B (zh) | 芯片验证方法及装置、电子设备、计算机可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |