CN115757174A - 一种数据库的差异检测方法及装置 - Google Patents

一种数据库的差异检测方法及装置 Download PDF

Info

Publication number
CN115757174A
CN115757174A CN202211526715.1A CN202211526715A CN115757174A CN 115757174 A CN115757174 A CN 115757174A CN 202211526715 A CN202211526715 A CN 202211526715A CN 115757174 A CN115757174 A CN 115757174A
Authority
CN
China
Prior art keywords
database
production
production database
detected
file
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
CN202211526715.1A
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.)
China Guangfa Bank Co Ltd
Original Assignee
China Guangfa Bank 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 China Guangfa Bank Co Ltd filed Critical China Guangfa Bank Co Ltd
Priority to CN202211526715.1A priority Critical patent/CN115757174A/zh
Publication of CN115757174A publication Critical patent/CN115757174A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库的差异检测方法及装置,所述方法包括:读取待检测生产数据库的表结构文件;根据所述表结构文件建立生产数据库和测试数据库;将所述待检测生产数据库的投产脚本文件解析为SQL文件并根据所述SQL文件对所述生产数据库进行模拟执行,生成第一生产数据库;将所述第一生产数据库与所述测试数据库进行差异对比,生成对比报告。本发明技术方案提供的一种数据库的差异检测方法及装置,可以在非直连生产数据库的情况下生成对比报告,且对投产脚本进行模拟执行,还可以避免因脚本遗漏引起生产故障。

Description

一种数据库的差异检测方法及装置
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据库的差异检测方法及装置。
背景技术
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。每次的需求投产,基本会涉及到数据库变更,包括数据库结构的调整及数据的添加。由于在日常开发过程及测试过程,虽然测试数据库的改动严格按照流程规范修改,但难免有漏网之鱼,加上版本迭代过程中,由于紧急纳版或拆版,会有脚本登记的纰漏,因此在投产前,需要对生产环境的数据库和测试环境数据库进行比对,以及对投产的脚本检查。
目前比较主流的方案是应用互联网云服务上的比对工具,以及成熟的数据库管理软件Navicat等工具。但上述工具都必须直连数据库,对于银行等需要数据保护的特殊应用场景,其生产数据库是不可直连的,且数据访问需要经过严格的权限控制,只有数据库相关的管理人员才能查询数据库的相关数据信息,不便于检查工作的开展。在实际应用中除了数据库的比对,每次投产的数据库脚本也会对数据库进行修改,现有工具只能在某个环境执行SQL脚本后,进行表结构对比,需要一个独立的环境去运行脚本,并且这个环境要与生产环境一致,缺乏对投产脚本的检查。且数据库管理工具与生产数据库之间的直连方案也需要一定的手动操作,才能完成一系列的比对工作,效率相对低下。
发明内容
本申请提供了一种数据库的差异检测方法及装置,可以在非直连生产数据库的情况下生成对比报告,且对投产脚本进行模拟执行,还可以避免因脚本遗漏引起生产故障。
第一方面,本申请提供了一种数据库的差异检测方法,包括:
读取待检测生产数据库的表结构文件;
根据所述表结构文件建立生产数据库和测试数据库;
将所述待检测生产数据库的投产脚本文件解析为SQL文件并根据所述SQL文件对所述生产数据库进行模拟执行,生成第一生产数据库;
将所述第一生产数据库与所述测试数据库进行差异对比,生成对比报告。
这样,通过待检测数据库的表结构文件建立生产数据库和测试数据库两个虚拟的数据库,可以在不与待检测生产数据库进行直连的情况下进行生产数据库与测试数据库间的差异对比,可有效应对如银行等对生产环境具有严格管控要求的场景需求。进一步的,还对待检测生产数据库的投产脚本进行解析,根据解析后的SQL对建模生成的生产数据库进行模拟执行,生成第一生产数据库,通过对第一生产数据库和测试数据库进行差异对比,不仅可以获取生产数据库与测试数据库之间的差异对比结果,还可以避免因脚本遗漏引起的生产故障,为投产的数据库提供可靠的安全保障。
在一种实现方式中,所述读取待检测生产数据库的表结构文件前,还包括:
加载所述待检测生产数据库的配置信息;其中,所述待检测生产数据库的配置信息包括所述待检测生产数据库的类型、链接、账号和密码;
根据所述待检测生产数据库的配置信息读取所述待检测生产数据库的表结构信息并存储至本地内存生成所述待检测生产数据库的待检测表结构文件。
在一种实现方式中,所述根据所述表结构文件建立生产数据库和测试数据库,具体包括:
读取所述待检测生产数据库的表结构文件并提取字段信息;其中,所述字段信息包括表名、表字段、表字段类型、表字段长是否为空、表字段长度和表索引;
根据所述表结构文件和所述字段信息在本地内存建立所述生产数据库和所述测试数据库;其中所述生产数据库和所述测试数据库为虚拟数据库。
在一种实现方式中,所述将所述待检测生产数据库的投产脚本文件解析为SQL文件并根据所述SQL文件对所述生产数据库进行模拟执行,生成第一生产数据库,具体包括:
加载所述待检测生产数据库的投产脚本文件;
过滤所述投产脚本文件中的脚本注释后进行SQL语义分析并解析为可读的SQL;
根据所述可读的SQL对所述生产数据库进行模拟执行,生成所述第一生产数据库。
6、在一种实现方式中,所述将所述第一生产数据库与所述测试数据库进行差异对比,具体包括:
根据所述字段信息中的表名对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的表名差集;
根据表名相交集合下的列字段对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的表字段差集;
根据表名相交集合下的数据表对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的索引差集。
在一种实现方式中,所述对比报告包括所述表名差集、所述表字段差集和所述索引差集。
第二方面,本发明实施例提供一种数据库的差异检测装置,包括文件读取模块、数据库建立模块、数据处理模块和数据库对比模块,具体为:
所述文件读取模块用于读取待检测生产数据库的表结构文件;
所述数据库建立模块用于根据所述表结构文件建立生产数据库和测试数据库;
所述数据处理模块用于将所述待检测生产数据库的投产脚本文件解析为SQL文件并根据所述SQL文件对所述生产数据库进行模拟执行,生成第一生产数据库;
所述数据库对比模块用于将所述第一生产数据库与所述测试数据库进行差异对比,生成对比报告。
本申请还提供一种数据库的差异检测装置,包括文件读取模块、数据库建立模块、数据处理模块和数据库对比模块。由文件读取模块获取待检测生产数据库的表结构文件,并由数据库建立模块根据读取的表结构文件,建立生产数据库和测试数据库两个虚拟的数据库。因此,可以在不与待检测生产数据库进行直连的情况下进行生产数据库与测试数据库间的差异对比,可有效应对如银行等对生产环境具有严格管控要求的场景需求。进一步的,还对待检测生产数据库的投产脚本进行解析,根据解析后的SQL对建模生成的生产数据库进行模拟执行,生成第一生产数据库,通过对第一生产数据库和测试数据库进行差异对比,不仅可以获取生产数据库与测试数据库之间的差异对比结果,还可以避免因脚本遗漏引起的生产故障,为投产的数据库提供可靠的安全保障。
在一种实现方式中,所述文件读取模块在读取待检测生产数据库的表结构文件前,还包括:
加载所述待检测生产数据库的配置信息;其中,所述待检测生产数据库的配置信息包括所述待检测生产数据库的类型、链接、账号和密码;
根据所述待检测生产数据库的配置信息读取所述待检测生产数据库的表结构信息并存储至本地内存。
在一种实现方式中,所述数据库建立模块包括文件读取单元和数据库建模单元。具体为:
所述文件读取单元用于读取所述待检测生产数据库的表结构文件并提取字段信息;其中,所述字段信息包括表名、表字段、表字段类型、表字段长是否为空、表字段长度和表索引。
所述数据库建模单元用于根据所述表结构文件和所述字段信息在本地内存建立所述生产数据库和所述测试数据库;其中所述生产数据库和所述测试数据库为虚拟数据库。
在一种实现方式中,所述数据处理模块包括脚本加载单元、脚本解解析单元和脚本执行单元,具体为;
所述脚本加载单元用于加载所述待检测生产数据库的投产脚本文件;
所述脚本解析单元用于过滤所述投产脚本文件中的脚本注释后进行SQL语义分析并解析为可读的SQL;
所述脚本执行单元用于根据所述可读的SQL对所述生产数据库进行模拟执行,生成所述第一生产数据库。
在一种实现方式中,所述数据库对比模块包括表对比单元、表字段对比单元和索引对比单元,具体为:
所述表对比单元用于根据所述字段信息中的表名对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的表名差集;
所述表字段对比单元用于根据表名相交集合下的列字段对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的表字段差集;
所述索引对比单元用于根据表名相交集合下的数据表对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的索引差集。
在一种实现方式中,所述对比报告包括所述表名差集、所述表字段差集和所述索引差集。
第三方面,本申请还提供一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的数据库的差异检测方法。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的差异检测方法。
附图说明
图1是本发明实施例提供的一种数据库的差异检测方法的流程示意图;
图2是本发明实施例提供的一种数据库的差异检测装置的模块结构图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)DDL:是对数据库内部的对象进行创建,删除,修改等的操作语言。数据库模式定义语DDL(Data Definition Language)是用于描述数据库中要存储的现实世界实体的语言。
(2)数据表(Table):简称表,由一组数据记录组成,数据库中的数据是以表为单位进行组织的。一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。表实际上是一个二维表格,例如,一个班所有学生的考试成绩,可以存放在一个表中,表中的每一行对应一个学生,这一行包括学生的学号,姓名及各门课程成绩。
实施例1
参见图1,图1是本发明实施例提供的一种数据库的差异检测方法的流程示意图。本发明实施例提供一种数据库的差异检测方法,包括步骤101至步骤104,各项步骤具体如下:
步骤101:读取待检测生产数据库的表结构文件;
步骤102:根据所述表结构文件建立生产数据库和测试数据库;
步骤103:将所述待检测生产数据库的投产脚本文件解析为SQL文件并根据所述SQL文件对所述生产数据库进行模拟执行,生成第一生产数据库;
步骤104:将所述第一生产数据库与所述测试数据库进行差异对比,生成对比报告。
本发明实施例中,在读取待检测生产数据库的表结构文件前,还包括:加载待检测生产数据库的相关配置信息,包括待检测生产数据库的类型、链接、账号、密码等。根据获取的配置信息读取待检测生产数据库的表结构信息并进行加载后存储至本地内存,生成待检测生辰数据库的表结构文件。本发明实施例提供的一种数据库的差异检测方法在生成待检测表结构文件后可以在不与待检测生产数据库进行直连的情况下进行生产数据库与测试数据库间的差异对比,可有效应对如银行等对生产环境具有严格管控要求的场景需求。
本发明实施例中,还根据预设的方式读取待检测生产数据库的表结构文件。优选的,可采用远程连接或离线待检测数据库的表结构文件后,根据Poi和Java类库读取待检测生产数据库结构文件并提取字段信息。其中。字段信息包括:表名、表字段、表字段类型、表字段长是否为空、表字段长度和表索引。在完成待检测生产数据库的表结构文件读取后,根据待检测生产数据库的表结构文件在本地内存进行建模,生成两个虚拟数据库,分别为生产数据库和测试数据库。
在建模生成两个虚拟数据库后,本发明实施例还包括加载待检测生产数据库的投产脚本文件,过滤该投产脚本文件中脚本注释后进行SQL语义分析,并解析为可读的SQL。优选的,本发明实施例中基于Java类库通过本地读取的方式加载待检测生产数据库的投产脚本文件,过滤脚本注释后通过阿里巴巴开源的Druid类库进行SQL语义分析,并解析为可读的SQL。根据解析出来的SQL对生产数据库进行模拟执行,对生产数据库的结构进行修改,生成第一生产数据库。
在本法发明实施例中,生成第一生产数据库后还包括对第一生产数据库和测试数据库进行差异对比。具体的:根据字段信息中的表名对第一生产数据库和测试数据库进行遍历查询,生成两个数据库的表名差集;根据表名相交集合下的列字段对第一生产数据库和测试数据库进行遍历查询,生成两个数据库的表字段差集;根据表名相交集合下的数据表对第一生产数据库和测试数据库进行遍历查询,生成两个数据库的索引差集。优选的,本发明实施例还包括生成第一生产数据库和测试数据库的对比报告并将该对比报告保存至本地。其中,该对比报告包括第一生产数据库和测试数据库间的表名差集、表字段差集和索引差集。
本发明实施例中,还提供了一种数据库的差异检测设备,包括处理器、存储器以及存储在存储器中且被配置为由处理器执行的计算机程序,处理器执行计算机程序时实现上述的数据库的差异检测方法。
本发明实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的数据库的差异检测方法。示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在数据库的差异检测设备中的执行过程。
所述数据库的差异检测设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述数据库的差异检测设备可包括,但不仅限于,处理器、存储器、显示器。本领域技术人员可以理解,上述部件仅仅是数据库的差异检测设备的示例,并不构成对数据库的差异检测设备的限定,可以包括比所述部件更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据库的差异检测设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述数据库的差异检测设备的控制中心,利用各种接口和线路连接整个所述数据库的差异检测设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述数据库的差异检测设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、文字转换功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、文字消息数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述数据库的差异检测设备集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例提供的一种数据库的差异检测方法,通过待检测数据库的表结构文件建立生产数据库和测试数据库两个虚拟的数据库。可以在不与待检测生产数据库进行直连的情况下进行生产数据库与测试数据库间的差异对比,可有效应对如银行等对生产环境具有严格管控要求的场景需求。进一步的,还对待检测生产数据库的投产脚本进行解析,根据解析后的SQL对建模生成的生产数据库进行模拟执行,生成第一生产数据库,通过对第一生产数据库和测试数据库进行差异对比,不仅可以获取生产数据库与测试数据库之间的差异对比结果,还可以避免因脚本遗漏引起的生产故障,为投产的数据库提供可靠的安全保障。
实施例2
参见图2,图2是本发明实施例提供的一种数据库的差异检测装置的模块机构图。本发明实施例提供一种数据库的差异检测装置,包括文件读取模块201、数据库建立模块202、数据处理模块203和数据库对比模块204,具体为:
所述文件读取模块201用于读取待检测生产数据库的表结构文件;所述数据库建立模块202用于根据所述表结构文件建立生产数据库和测试数据库;所述数据处理模块203用于将所述待检测生产数据库的投产脚本文件解析为SQL文件并根据所述SQL文件对所述生产数据库进行模拟执行,生成第一生产数据库;所述数据库对比模块204用于将所述第一生产数据库与所述测试数据库进行差异对比,生成对比报告。
本发明实施例中,文件读取模块201在读取待检测生产数据库的表结构文件前,还包括:加载所述待检测生产数据库的配置信息;其中,所述待检测生产数据库的配置信息包括所述待检测生产数据库的类型、链接、账号和密码;根据所述待检测生产数据库的配置信息读取所述待检测生产数据库的表结构信息并存储至本地内存。
本发明实施例中,数据库建立模块202还包括文件读取单元和数据库建模单元。其中,文件读取单元用于读取所述待检测生产数据库的表结构文件并提取字段信息;其中,所述字段信息包括表名、表字段、表字段类型、表字段长是否为空、表字段长度和表索引。数据库建模单元用于根据所述表结构文件和所述字段信息在本地内存建立所述生产数据库和所述测试数据库;其中所述生产数据库和所述测试数据库为虚拟数据库。
本发明实施例中,数据处理模块203包括脚本加载单元、脚本解解析单元和脚本执行单元。其中,脚本加载单元用于加载所述待检测生产数据库的投产脚本文件;脚本解析单元用于过滤所述投产脚本文件中的脚本注释后进行SQL语义分析并解析为可读的SQL;脚本执行单元用于根据所述可读的SQL对所述生产数据库进行模拟执行,生成所述第一生产数据库。
本发明实施例中,数据库对比模块204包括表对比单元、表字段对比单元和索引对比单元。其中,表对比单元用于根据所述字段信息中的表名对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的表名差集;表字段对比单元用于根据表名相交集合下的列字段对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的表字段差集;索引对比单元用于根据表名相交集合下的数据表对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的索引差集。
优选的,本发明实施例还包括生成第一生产数据库和测试数据库的对比报告并将该对比报告保存至本地。其中,该对比报告包括第一生产数据库和测试数据库间的表名差集、表字段差集和索引差集。
所属领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不在赘述。
本发明实施例提供一种数据库的差异检测装置,包括文件读取模块、数据库建立模块、数据处理模块和数据库对比模块。由文件读取模块获取待检测生产数据库的表结构文件,并由数据库建立模块根据读取的表结构文件,建立生产数据库和测试数据库两个虚拟的数据库。因此,可以在不与待检测生产数据库进行直连的情况下进行生产数据库与测试数据库间的差异对比,可有效应对如银行等对生产环境具有严格管控要求的场景需求。进一步的,还对待检测生产数据库的投产脚本进行解析,根据解析后的SQL对建模生成的生产数据库进行模拟执行,生成第一生产数据库,通过对第一生产数据库和测试数据库进行差异对比,不仅可以获取生产数据库与测试数据库之间的差异对比结果,还可以避免因脚本遗漏引起的生产故障,为投产的数据库提供可靠的安全保障。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。

Claims (10)

1.一种数据库的差异检测方法,其特征在于,包括:
读取待检测生产数据库的表结构文件;
根据所述表结构文件建立生产数据库和测试数据库;
将所述待检测生产数据库的投产脚本文件解析为SQL文件并根据所述SQL文件对所述生产数据库进行模拟执行,生成第一生产数据库;
将所述第一生产数据库与所述测试数据库进行差异对比,生成对比报告。
2.如权利要求1所述的一种数据库的差异检测方法,其特征在于,所述读取待检测生产数据库的表结构文件前,还包括:
加载所述待检测生产数据库的配置信息;其中,所述待检测生产数据库的配置信息包括所述待检测生产数据库的类型、链接、账号和密码;
根据所述待检测生产数据库的配置信息读取所述待检测生产数据库的表结构信息并存储至本地内存生成所述待检测生产数据库的待检测表结构文件。
3.如权利要求1所述的一种数据库的差异检测方法,其特征在于,所述根据所述表结构文件建立生产数据库和测试数据库,具体包括:
读取所述待检测生产数据库的表结构文件并提取字段信息;其中,所述字段信息包括表名、表字段、表字段类型、表字段长是否为空、表字段长度和表索引;
根据所述表结构文件和所述字段信息在本地内存建立所述生产数据库和所述测试数据库;其中所述生产数据库和所述测试数据库为虚拟数据库。
4.如权利要求1所述的一种数据库的差异检测方法,其特征在于,所述将所述待检测生产数据库的投产脚本文件解析为SQL文件并根据所述SQL文件对所述生产数据库进行模拟执行,生成第一生产数据库,具体包括:
加载所述待检测生产数据库的投产脚本文件;
过滤所述投产脚本文件中的脚本注释后进行SQL语义分析并解析为可读的SQL;
根据所述可读的SQL对所述生产数据库进行模拟执行,生成所述第一生产数据库。
5.如权利要求3所述的一种数据库的差异检测方法,其特征在于,所述将所述第一生产数据库与所述测试数据库进行差异对比,具体包括:
根据所述字段信息中的表名对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的表名差集;
根据表名相交集合下的列字段对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的表字段差集;
根据表名相交集合下的数据表对所述第一生产数据库和所述测试数据库进行遍历查询,生成两个数据库的索引差集。
6.如权利要求5所述的一种数据库的差异检测方法,其特征在于,所述对比报告包括所述表名差集、所述表字段差集和所述索引差集。
7.一种数据库的差异检测装置,其特征在于,包括文件读取模块、数据库建立模块、数据处理模块和数据库对比模块,具体为:
所述文件读取模块用于读取待检测生产数据库的表结构文件;
所述数据库建立模块用于根据所述表结构文件建立生产数据库和测试数据库;
所述数据处理模块用于将所述待检测生产数据库的投产脚本文件解析为SQL文件并根据所述SQL文件对所述生产数据库进行模拟执行,生成第一生产数据库;
所述数据库对比模块用于将所述第一生产数据库与所述测试数据库进行差异对比,生成对比报告。
8.如权利要求7所述的一种数据库的差异检测装置,其特征在于,所述文件读取模块在读取待检测生产数据库的表结构文件前,还包括:
加载所述待检测生产数据库的配置信息;其中,所述待检测生产数据库的配置信息包括所述待检测生产数据库的类型、链接、账号和密码;
根据所述待检测生产数据库的配置信息读取所述待检测生产数据库的表结构信息并存储至本地内存。
9.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6任意一项所述的数据库的差异检测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至6中任意一项所述的数据库的差异检测方法。
CN202211526715.1A 2022-11-29 2022-11-29 一种数据库的差异检测方法及装置 Pending CN115757174A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211526715.1A CN115757174A (zh) 2022-11-29 2022-11-29 一种数据库的差异检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211526715.1A CN115757174A (zh) 2022-11-29 2022-11-29 一种数据库的差异检测方法及装置

Publications (1)

Publication Number Publication Date
CN115757174A true CN115757174A (zh) 2023-03-07

Family

ID=85341833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211526715.1A Pending CN115757174A (zh) 2022-11-29 2022-11-29 一种数据库的差异检测方法及装置

Country Status (1)

Country Link
CN (1) CN115757174A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117348916A (zh) * 2023-12-06 2024-01-05 中邮消费金融有限公司 脚本生成方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130166513A1 (en) * 2011-12-27 2013-06-27 Infosys Limited Methods for analyzing a database and devices thereof
CN104866580A (zh) * 2015-05-26 2015-08-26 梁猛 一种数据库变更对现有业务影响的快速侦测方法
CN106599300A (zh) * 2016-12-28 2017-04-26 中国建设银行股份有限公司 一种分布式***数据库结构对比方法和装置
CN108009087A (zh) * 2017-11-29 2018-05-08 广州品唯软件有限公司 数据库测试方法、装置及计算机可读存储介质
CN108614777A (zh) * 2018-05-08 2018-10-02 山东浪潮通软信息科技有限公司 一种基于真实业务的金融交易测试***及测试方法
CN112559346A (zh) * 2020-12-14 2021-03-26 北京三快在线科技有限公司 一种业务测试的方法及装置
CN114116494A (zh) * 2021-11-30 2022-03-01 上海金仕达软件科技有限公司 基于脚本同步执行的测试方法、装置及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130166513A1 (en) * 2011-12-27 2013-06-27 Infosys Limited Methods for analyzing a database and devices thereof
CN104866580A (zh) * 2015-05-26 2015-08-26 梁猛 一种数据库变更对现有业务影响的快速侦测方法
CN106599300A (zh) * 2016-12-28 2017-04-26 中国建设银行股份有限公司 一种分布式***数据库结构对比方法和装置
CN108009087A (zh) * 2017-11-29 2018-05-08 广州品唯软件有限公司 数据库测试方法、装置及计算机可读存储介质
CN108614777A (zh) * 2018-05-08 2018-10-02 山东浪潮通软信息科技有限公司 一种基于真实业务的金融交易测试***及测试方法
CN112559346A (zh) * 2020-12-14 2021-03-26 北京三快在线科技有限公司 一种业务测试的方法及装置
CN114116494A (zh) * 2021-11-30 2022-03-01 上海金仕达软件科技有限公司 基于脚本同步执行的测试方法、装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117348916A (zh) * 2023-12-06 2024-01-05 中邮消费金融有限公司 脚本生成方法、装置、设备及存储介质
CN117348916B (zh) * 2023-12-06 2024-03-26 中邮消费金融有限公司 脚本生成方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN110908997B (zh) 数据血缘构建方法、装置、服务器及可读存储介质
CN111522816A (zh) 基于数据库引擎的数据处理方法、装置、终端及介质
CN110737594B (zh) 自动生成测试用例的数据库标准符合性测试方法及装置
CN108334609B (zh) Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质
CN110795455A (zh) 依赖关系解析方法、电子装置、计算机设备及可读存储介质
JP2010524060A (ja) 分散コンピューティングにおけるデータマージング
CN111400387A (zh) 导入导出数据的转换方法、装置、终端设备及存储介质
CN108345658B (zh) 算法计算轨迹的分解处理方法、服务器及存储介质
CN110765750A (zh) 报表数据录入方法及终端设备
CN111966760A (zh) 基于Hive数据仓库的测试数据生成方法及装置
CN115757174A (zh) 一种数据库的差异检测方法及装置
CN110704635B (zh) 一种知识图谱中三元组数据的转换方法及装置
CN109324838B (zh) 单片机程序的执行方法、执行装置及终端
CN115357625A (zh) 结构化数据比对方法、装置、电子设备及存储介质
CN114168122A (zh) 数据脚本的生成方法及装置
CN114297236A (zh) 一种数据血缘分析方法、终端设备及存储介质
CN113722296A (zh) 一种农业信息处理方法、装置、电子设备及存储介质
CN113504904A (zh) 用户定义函数实现方法、装置、计算机设备和存储介质
CN108334621B (zh) 数据库操作方法、装置、设备及计算机可读存储介质
CN110727677A (zh) 数据仓库内表格的血缘关系追溯的方法和装置
CN111143156A (zh) 大数据平台垃圾任务采集***、方法及计算机***
CN116755684B (zh) OAS Schema的生成方法、装置、设备及介质
CN116010349B (zh) 基于元数据的数据检核方法和装置、电子设备和存储介质
CN115292194B (zh) 流程调试的方法、电子设备及计算机可读存储介质
CN116756184B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20230307

RJ01 Rejection of invention patent application after publication