CN111177119A - 基于数据库的全量数据比对方法、装置、设备及存储介质 - Google Patents

基于数据库的全量数据比对方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111177119A
CN111177119A CN201911333036.0A CN201911333036A CN111177119A CN 111177119 A CN111177119 A CN 111177119A CN 201911333036 A CN201911333036 A CN 201911333036A CN 111177119 A CN111177119 A CN 111177119A
Authority
CN
China
Prior art keywords
database
query statement
comparison
query
data
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
CN201911333036.0A
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.)
Ping An Asset Management Co Ltd
Original Assignee
Ping An Asset Management 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 Ping An Asset Management Co Ltd filed Critical Ping An Asset Management Co Ltd
Priority to CN201911333036.0A priority Critical patent/CN111177119A/zh
Publication of CN111177119A publication Critical patent/CN111177119A/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/21Design, administration or maintenance of databases
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Landscapes

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

Abstract

本发明公开了一种基于数据库的全量数据比对方法,属于自动化测试工具领域。该方法包括以下步骤:在数据自动比对工具中配置待比对的第一数据库的信息和第二数据库的信息;在所述数据自动比对工具中对应所述第一数据库和所述第二数据库添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置所述第一查询语句和所述第二查询语句的唯一主键;执行所述数据自动比对工具的bat文件实现对所述第一数据库和所述第二数据库的自动比对,生成比对结果。本发明利用python语言,对数据进行高效的处理分析,完成不同类型数据库之间的全量数据的自动化比对。

Description

基于数据库的全量数据比对方法、装置、设备及存储介质
技术领域
本发明涉及自动化测试工具领域,涉及一种基于数据库的全量数据比对方法、装置、设备及存储介质。
背景技术
在日常测试工作中,会遇到各种各样的数据准确性测试需求,例如在数据迁移,上下游数据同步等场景下,就需要核对数据迁移或者数据同步前后的准确性和一致性。遇到复杂、冗长、繁琐且海量的数据时,要全量对比验证数据的准确性成为了不可能完成的任务。如果抽样对比,选取的样本质量不同会导致部分数据问题出现遗漏,无法保证数据核对的准确性。
目前,传统的测试方法在同一数据库不同表间的数据比对,可以利用数据库内置函数进行全量对比处理。但是源数据和目标数据分布在不同的数据库时,无法利用内置函数进行核对,一般只能是选取部分样本数据进行分类抽样检查准确性,但是分类抽样检查的方法非常依赖测试同事选取的抽样数据的覆盖度,也经常因测试同事能力的高低对数据准确性测试的质量参差不齐,无法整体保证数据测试质量;另外如果涉及到不同数据库之间的特殊类型的数据(如oracle数据库的CLOB数据类型),那么只能通过人工肉眼比对验证,效率低下,准确性更加不可保证。
发明内容
本发明要解决的技术问题是为了克服现有技术中无法实现不同数据库之间的数据的全量比对问题,提出了一种基于数据库的全量数据比对方法、装置、设备及存储介质,利用python语言实现不同数据库之间全量数据的自动化比对。
本发明是通过下述技术方案来解决上述技术问题:
一种基于数据库的全量数据比对方法,包括以下步骤:
在数据自动比对工具中配置待比对的第一数据库的信息和第二数据库的信息;
在所述数据自动比对工具中对应所述第一数据库和所述第二数据库分别添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置所述第一查询语句和所述第二查询语句的唯一主键;
采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果。
优选地,包括以下步骤:
将所述比对结果一次性插入csv文件形成差异结果文件并输出。
优选地,所述采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果包括以下步骤:
利用python的三方函数库,根据所述第一数据的信息和所述第二数据库的信息分别连接所述第一数据库和所述第二数据库;
通过所述第一数据库的信息中记载的API接口和所述第二数据库的信息中记载的API接口,分别对应所述第一数据库和所述第二数据库执行所述第一查询语句和所述第二查询语句,输出查询结果并以Dataframe形式保存;
利用python的Pandas库遍历所述查询结果进行比对,输出比对结果并以Dataframe形式保存。
优选地,所述两个数据库为相同类型的数据库或者不同类型的数据库。
优选地,所述第一查询语句的唯一主键和所述第二查询语句的唯一主键为相同或者不同。
优选地,所述第一查询语句和所述第二查询语句包括函数。
本发明还公开了一种基于数据库的全量数据比对装置,包括:
配置模块,用于从预先配置有信息的若干数据库中获取两个数据库,所述两个数据库分别配置作为数据自动比对工具待比对的第一数据库和第二数据库;
查询语句设置模块,用于在所述数据自动比对工具中对应所述第一数据库和所述第二数据库分别添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置所述第一查询语句和所述第二查询语句的唯一主键;
比对模块,用于采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果。
优选地,所述基于数据库的全量数据比对装置还包括:
结果文件生成模块,用于将所述比对结果一次性插入csv文件形成差异结果文件并输出。
本发明还公开了一种计算机设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:
在数据自动比对工具中配置待比对的第一数据库的信息和第二数据库的信息;
在所述数据自动比对工具中对应所述第一数据库和所述第二数据库分别添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置所述第一查询语句和所述第二查询语句的唯一主键;
采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以实现以下步骤:
在数据自动比对工具中配置待比对的第一数据库的信息和第二数据库的信息;
在所述数据自动比对工具中对应所述第一数据库和所述第二数据库分别添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置所述第一查询语句和所述第二查询语句的唯一主键;
采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果。
本发明的积极进步效果在于:利用python语言,对数据进行高效的处理分析,完成不同类型数据库之间的全量数据的自动化比对;可以支持oracle,mysql,pg,hive等数据库表的结果比对,支持简单数理统计函数,例如sum、avg等,也可以有效支持较为特殊的数据类型,例如CLOB等。
附图说明
图1示出了本发明基于数据库的全量数据比对方法实施例一的流程图;
图2示出了实施例一中步骤03的一具体实施例的流程图;
图3示出了本发明基于数据库的全量数据比对方法实施例二的流程图;
图4示出了本发明基于数据库的全量数据比对装置第一实施例的结构图;
图5示出了第一实施例中比对模块的一具体实施例的结构图;
图6示出了本发明基于数据库的全量数据比对装置第二实施例的结构图;
图7示出了本发明计算机设备一实施例的硬件架构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
首先,本发明提出一种基于数据库的全量数据比对方法。
在实施例一中,如图1所示,所述的基于数据库的全量数据比对方法包括如下步骤:
步骤01:在数据自动比对工具中配置待比对的第一数据库的信息和第二数据库的信息。
所述数据自动比对工具可以是SQL Compare、DBDiff等现有工具。
这里的两个数据库(即第一数据库和第二数据库)分别对应待比对的源数据库(source)和目标数据库(target),这两个数据库可以是跨库的(例如一个属于本地数据库,另一个不属于本地数据库),也可以是不跨库的(例如同属于本地数据库)。两个数据库的类型可以是相同的或者不同的。
通常两个数据库的信息都是预先配置好的,数据库信息包括以下字段:environment、dbtype、host、usename、password、port、database等,这些数据库信息均配置在项目根目录下的配置文件中,通常是命名为数据库信息的excel文件,所述excel文件具体可以如下表所示:
Figure BDA0002330189310000051
由于两个数据库的信息都是预先配置好的,因此步骤01中只要从预先配置有信息的若干数据库中挑选两个数据库配置到数据自动比对工具中即可。
步骤02:在数据自动比对工具中对应第一数据库和第二数据库分别添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置第一查询语句和第二查询语句的唯一主键。
所述SQL语言为结构化查询语音,用于存取数据以及查询、更新和管理关系数据库系统。
所述主键为数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过主键的设置可以确定第一数据库和第二数据库要比对的数据。
这里第一查询语句和第二查询语句中设置的唯一主键可以是相同或者不同的。例如具体可以如下表所示,设置两个相同的主键(Source key和Target key):
Figure BDA0002330189310000061
此外,针对上下游数据库中的数据内容,可能因为一些逻辑处理导致数据加工不可直接比对的情况,本数据自动比对工具还支持SQL函数比对,即在第一查询语句和第二查询语句中还可以包含函数,函数可以是常见的sum、avg以及对字段的拼接处理等。
以对TQ_BD_BASICINFO表中的symbol字段(见Source SQL一列)进行数据拼接处理为例,数据拼接部分的字段用括号包含,并将该数据拼接部分的字段设置为主键,那么在比对的时候,先会将主键中的内容精准匹配出SQL语句中的查询字段,然后将查询结果作为唯一标识去第一数据库和第二数据库进行匹配比对。具体设置可以参考下表:
Figure BDA0002330189310000062
如上表所示,如果比对的字段需要用到函数的话,函数内容需要用括号括起来。
步骤03:采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果。
所述批处理方式具体可采用执行数据自动比对工具的bat文件的方式实现,bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为.bat或.cmd。在命令提示下输入批处理文件的名称或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本)可以简化日常或重复性任务。
具体地,如图2所示,步骤03可以进一步包括以下步骤:
步骤31:利用python的三方函数库,根据所述第一数据的信息和所述第二数据库的信息分别连接所述第一数据库和所述第二数据库。
所述三方函数库包括pymysql、cx_Oracle、psycopg2、hive等。
本数据自动比对工具通过python,针对特殊的数据类型可以穿透到具体内容的比对,例如如果要比对的字段是oracle数据库中的CLOB数据类型,正常的方法是无法比对出里面的内容的,但是通过python的oracle模块中自带的cx_Oracle.LOB模块,对该数据类型做了特殊处理,以获取clob中具体的内容去对比,使用者无需多余的操作,就可以正常的比对出里面内容的差异性。
步骤32:通过所述第一数据库的信息中记载的API接口和所述第二数据库的信息中记载的API接口,分别对应所述第一数据库和所述第二数据库执行所述第一查询语句和所述第二查询语句,输出查询结果并以Dataframe形式保存。
查询结果放在缓存中的,后续步骤33中会对这些结果进行比对。
步骤33:利用python的Pandas库遍历所述查询结果进行比对,输出比对结果并以Dataframe形式保存。
最后的差异结果以Dataframe形式在一个结果文件中存放。
本实施例打破了传统的测试方法,利用python语言,对数据进行高效的处理分析,完成全量数据的自动化比对。目前该数据自动比对工具至少可以支持oracle,mysql,pg,hive等数据库表的结果比对,支持简单数理统计函数,例如sum、avg等,也可以有效支持较为特殊的数据类型,例如CLOB等。
在实施例二中,基于实施例一的基础上,如图3所示,所述的基于数据库的全量数据比对方法包括如下步骤:
步骤01-步骤03同实施例一,此处不再赘述。
步骤04:将比对结果一次性插入csv文件形成差异结果文件并输出。
在得到比对结果后,这些比对结果是一次性插入到一csv文件中的,得到的差异结果文件可以入下表所示:
Figure BDA0002330189310000081
上表中,具体以主键为条件逐条展示,数据存在填写Y,不存在填写N;如果都存在,就展示该字段的差异值,简洁准确。
其次,本发明提出了一种基于数据库的全量数据比对装置,所述装置20可以被分割为一个或者多个模块。
例如,图4示出了所述基于数据库的全量数据比对装置20第一实施例的结构图,该实施例中,所述装置20可以被分割为配置模块201、查询语句设置模块202和比对模块203。以下描述将具体介绍所述模块201-203的具体功能。
所述配置模块201用于从预先配置有信息的若干数据库中获取两个数据库,所述两个数据库分别配置作为数据自动比对工具待比对的第一数据库和第二数据库。
所述数据自动比对工具可以是SQL Compare、DBDiff等现有工具。
这里的两个数据库(即第一数据库和第二数据库)分别对应待比对的源数据库(source)和目标数据库(target),这两个数据库可以是跨库的(例如一个属于本地数据库,另一个不属于本地数据库),也可以是不跨库的(例如同属于本地数据库)。两个数据库的类型可以是相同的或者不同的。
通常两个数据库的信息都是预先配置好的,数据库信息包括以下字段:environment、dbtype、host、usename、password、port、database等,这些数据库信息均配置在项目根目录下的配置文件中,通常是命名为数据库信息的excel文件,所述excel文件具体可以如下表所示:
Figure BDA0002330189310000091
由于两个数据库的信息都是预先配置好的,因此步骤01中只要从预先配置有信息的若干数据库中挑选两个数据库配置到数据自动比对工具中即可。
所述查询语句设置模块202用于在所述数据自动比对工具中对应所述第一数据库和所述第二数据库添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置所述第一查询语句和所述第二查询语句的唯一主键。
所述SQL语言为结构化查询语音,用于存取数据以及查询、更新和管理关系数据库系统。
所述主键为数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过主键的设置可以确定第一数据库和第二数据库要比对的数据。
这里第一查询语句和第二查询语句中设置的唯一主键可以是相同或者不同的。例如具体可以如下表所示,设置两个相同的主键(Source key和Target key):
Figure BDA0002330189310000101
此外,针对上下游数据库中的数据内容,可能因为一些逻辑处理导致数据加工不可直接比对的情况,本数据自动比对工具还支持SQL函数比对,即在第一查询语句和第二查询语句中还可以包含函数,函数可以是常见的sum、avg以及对字段的拼接处理等。
以对TQ_BD_BASICINFO表中的symbol字段(见Source SQL一列)进行数据拼接处理为例,数据拼接部分的字段用括号包含,并将该数据拼接部分的字段设置为主键,那么在比对的时候,先会将主键中的内容精准匹配出SQL语句中的查询字段,然后将查询结果作为唯一标识去第一数据库和第二数据库进行匹配比对。具体设置可以参考下表:
Figure BDA0002330189310000102
如上表所示,如果比对的字段需要用到函数的话,函数内容需要用括号括起来。
所述比对模块203用于采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果。
所述批处理方式具体可采用执行数据自动比对工具的bat文件的方式实现,bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为.bat或.cmd。在命令提示下输入批处理文件的名称或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本)可以简化日常或重复性任务。
具体地,如图5所示,模块203可以进一步划分为以下四个子模块:
连接子模块2031,用于利用python的三方函数库,根据所述第一数据的信息和所述第二数据库的信息分别连接所述第一数据库和所述第二数据库。
所述三方函数库包括pymysql、cx_Oracle、psycopg2、hive等。
本模块2031通过python,针对特殊的数据类型可以穿透到具体内容的比对,例如如果要比对的字段是oracle数据库中的CLOB数据类型,正常的方法是无法比对出里面的内容的,但是通过python的oracle模块中自带的cx_Oracle.LOB模块,对该数据类型做了特殊处理,以获取clob中具体的内容去对比,使用者无需多余的操作,就可以正常的比对出里面内容的差异性。
查询子模块2032,用于通过所述第一数据库的信息中记载的API接口和所述第二数据库的信息中记载的API接口,分别对应所述第一数据库和所述第二数据库执行所述第一查询语句和所述第二查询语句,输出查询结果并以Dataframe形式保存。
这里的查询结果放在缓存中的,后续供模块2033对这些结果进行比对。
比对子模块2033,用于利用python的Pandas库遍历所述查询结果进行比对,输出比对结果并以Dataframe形式保存。
最后的差异结果以Dataframe形式在一个结果文件中存放。
又例如,图6示出了所述基于数据库的全量数据比对装置20第二实施例的结构图,该实施例中,所述基于数据库的全量数据比对装置20还可以被分割为配置模块201、查询语句设置模块202、比对模块203和结果文件生成模块204。
其中,模块201-203同第一实施例,此处不再赘述。
所述结果文件生成模块204用于将所述比对结果一次性插入csv文件形成差异结果文件并输出。
在得到比对结果后,这些比对结果是一次性插入到一csv文件中的,得到的差异结果文件可以入下表所示:
Figure BDA0002330189310000121
上表中,具体以主键为条件逐条展示,数据存在填写Y,不存在填写N;如果都存在,就展示该字段的差异值,简洁准确。
再次,本发明还提出来一种计算机设备。
参阅图7所示,是本发明计算机设备一实施例的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22以及网络接口23。其中:
所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述计算机设备2的操作系统和各类应用软件,例如用于实现所述基于数据库的全量数据比对方法的计算机程序等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述计算机设备2的总体操作,例如执行与所述计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行用于实现所述基于数据库的全量数据比对方法的计算机程序等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他计算机设备之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有组件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
在本实施例中,存储于存储器21中的用于实现所述基于数据库的全量数据比对方法的计算机程序可以被一个或多个处理器(本实施例为处理器22)所执行,以完成以下步骤的操作:
步骤01:在数据自动比对工具中配置待比对的第一数据库的信息和第二数据库的信息;
步骤02:在所述数据自动比对工具中对应所述第一数据库和所述第二数据库分别添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置所述第一查询语句和所述第二查询语句的唯一主键;
步骤03:采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果。
进一步地,完成的步骤还可以包括:
步骤04:将所述比对结果一次性插入csv文件形成差异结果文件并输出。
此外,本发明一种计算机可读存储介质,所述计算机可读存储介质为非易失性可读存储介质,其内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以实现上述基于数据库的全量数据比对方法或装置的操作。
其中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如前述用于实现所述基于数据库的全量数据比对方法的计算机程序等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (10)

1.一种基于数据库的全量数据比对方法,其特征在于,包括以下步骤:
在数据自动比对工具中配置待比对的第一数据库的信息和第二数据库的信息;
在所述数据自动比对工具中对应所述第一数据库和所述第二数据库分别添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置所述第一查询语句和所述第二查询语句的唯一主键;
采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果。
2.根据权利要求1所述的基于数据库的全量数据比对方法,其特征在于,包括以下步骤:
将所述比对结果一次性插入csv文件形成差异结果文件并输出。
3.根据权利要求1所述的基于数据库的全量数据比对方法,其特征在于,
所述采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果包括以下步骤:
利用python的三方函数库,根据所述第一数据的信息和所述第二数据库的信息分别连接所述第一数据库和所述第二数据库;
通过所述第一数据库的信息中记载的API接口和所述第二数据库的信息中记载的API接口,分别对应所述第一数据库和所述第二数据库执行所述第一查询语句和所述第二查询语句,输出查询结果并以Dataframe形式保存;
利用python的Pandas库遍历所述查询结果进行比对,输出比对结果并以Dataframe形式保存。
4.根据权利要求1所述的基于数据库的全量数据比对方法,其特征在于,所述第一数据库和所述第二数据库为相同类型的数据库或者不同类型的数据库。
5.根据权利要求1所述的基于数据库的全量数据比对方法,其特征在于,所述第一查询语句的唯一主键和所述第二查询语句的唯一主键为相同或者不同。
6.根据权利要求1所述的基于数据库的全量数据比对方法,其特征在于,所述第一查询语句和所述第二查询语句包括函数。
7.一种基于数据库的全量数据比对装置,其特征在于,包括:
配置模块,用于从预先配置有信息的若干数据库中获取两个数据库,所述两个数据库分别配置作为数据自动比对工具待比对的第一数据库和第二数据库;
查询语句设置模块,用于在所述数据自动比对工具中对应所述第一数据库和所述第二数据库添加采用SQL语言编写的第一查询语句和第二查询语句,并分别设置所述第一查询语句和所述第二查询语句的唯一主键;
比对模块,用于采用批处理方式执行所述数据自动比对工具,通过所述第一查询语句和所述第二查询语句分别对应所述第一数据库和所述第二数据库进行查询,并自动比对所述查询的结果以生成比对结果。
8.根据权利要求7所述的基于数据库的全量数据比对装置,其特征在于,还包括:
结果文件生成模块,用于将所述比对结果一次性插入csv文件形成差异结果文件并输出。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-6中任一项所述的基于数据库的全量数据比对方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以实现如权利要求1-6中任一项所述的基于数据库的全量数据比对方法的步骤。
CN201911333036.0A 2019-12-23 2019-12-23 基于数据库的全量数据比对方法、装置、设备及存储介质 Pending CN111177119A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911333036.0A CN111177119A (zh) 2019-12-23 2019-12-23 基于数据库的全量数据比对方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911333036.0A CN111177119A (zh) 2019-12-23 2019-12-23 基于数据库的全量数据比对方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN111177119A true CN111177119A (zh) 2020-05-19

Family

ID=70655596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911333036.0A Pending CN111177119A (zh) 2019-12-23 2019-12-23 基于数据库的全量数据比对方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111177119A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377751A (zh) * 2021-06-02 2021-09-10 浪潮软件股份有限公司 一种集成数据比对方法
CN113742322A (zh) * 2020-11-17 2021-12-03 北京沃东天骏信息技术有限公司 一种数据质量检测方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304522A (zh) * 2018-01-25 2018-07-20 深圳市买买提信息科技有限公司 一种数据库之间差异的比对方法、装置及终端设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304522A (zh) * 2018-01-25 2018-07-20 深圳市买买提信息科技有限公司 一种数据库之间差异的比对方法、装置及终端设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742322A (zh) * 2020-11-17 2021-12-03 北京沃东天骏信息技术有限公司 一种数据质量检测方法和装置
CN113377751A (zh) * 2021-06-02 2021-09-10 浪潮软件股份有限公司 一种集成数据比对方法

Similar Documents

Publication Publication Date Title
CN110737594B (zh) 自动生成测试用例的数据库标准符合性测试方法及装置
CN106970929B (zh) 数据导入方法及装置
CN110704398A (zh) 从MySQL到Oracle的数据库迁移方法、装置及计算机设备
CN110990274B (zh) 一种生成测试案例的数据处理方法、装置及系统
CN110928802A (zh) 基于自动生成用例的测试方法、装置、设备及存储介质
CN108573019B (zh) 一种数据迁移方法、装置、电子设备及可读存储介质
CN110515795B (zh) 一种大数据组件的监控方法、装置、电子设备
CN114780641B (zh) 多库多表同步方法、装置、计算机设备和存储介质
CN107153609B (zh) 一种自动化测试方法和装置
CN111352851A (zh) 一种程序测试方法、装置、计算机设备及存储介质
CN111177119A (zh) 基于数据库的全量数据比对方法、装置、设备及存储介质
CN110958292A (zh) 文件上传方法、电子装置、计算机设备及存储介质
CN108121774B (zh) 一种数据表备份方法及终端设备
CN112416907A (zh) 一种数据库表数据导入导出方法、终端设备及存储介质
CN111767265B (zh) 一种连接操作中数据倾斜方法、系统及计算机设备
CN112416648A (zh) 数据校验方法及装置
CN117493309A (zh) 一种标准模型生成方法、装置、设备及存储介质
CN108959508B (zh) Sql数据生成方法及装置
CN107766228B (zh) 一种基于多语种的自动化测试方法和装置
CN115422180A (zh) 数据校验方法及系统
CN113742145A (zh) 一种测试固态硬盘性能的方法、系统、设备和存储介质
CN112417012A (zh) 数据处理方法及系统
CN108334621B (zh) 数据库操作方法、装置、设备及计算机可读存储介质
CN110795319A (zh) 内存数据库的性能测试方法、装置、设备及可读存储介质
AU2021106743A4 (en) Systems and methods for determining congruency in data sets

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