CN110162461B - 数据同步验证方法、装置和计算机设备 - Google Patents

数据同步验证方法、装置和计算机设备 Download PDF

Info

Publication number
CN110162461B
CN110162461B CN201910305183.0A CN201910305183A CN110162461B CN 110162461 B CN110162461 B CN 110162461B CN 201910305183 A CN201910305183 A CN 201910305183A CN 110162461 B CN110162461 B CN 110162461B
Authority
CN
China
Prior art keywords
data
updated
judging
downstream
upstream
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
Application number
CN201910305183.0A
Other languages
English (en)
Other versions
CN110162461A (zh
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 Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910305183.0A priority Critical patent/CN110162461B/zh
Publication of CN110162461A publication Critical patent/CN110162461A/zh
Application granted granted Critical
Publication of CN110162461B publication Critical patent/CN110162461B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请揭示了一种数据同步验证方法、装置和计算机设备,其中方法包括:获取所述GoldenGate工具中发生数据更新的第一上游表,其中所述GoldenGate工具中配置第一上游表,及其对应的第一下游表;在所述第一上游表中查找更新的第一数据,并在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据;若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求;若达到预设的匹配要求,则判定数据同步成功,否则判定数据同步失败。本申请的数据同步验证方法、装置和计算机设备,只需要人工进行少量的配置工作,无论字段的类型和长度都可以自动化进行增删改的跨库同步验证,节约大量的人力成本。

Description

数据同步验证方法、装置和计算机设备
技术领域
本申请涉及到数据同步验证领域,特别是涉及到一种数据同步验证方法、装置和计算机设备。
背景技术
使用Goldengate工具同步数据的时候,需要将配置好的上游表和下游表载入到Goldengate工具中,由于配置的上游表和下游表存在错误,所以存在同步数据失败的问题。现有技术都是通过测试人员进行人工检测,当只有少量的如几组上游表和下游表的时候,可以通过人工快速检测完成,但是当存在当量的如几千组、几万组上游表和下游表的时候,则无法通过人工快速检测完成,测试效率低下,耗费人力。
发明内容
本申请的主要目的为提供一种数据同步验证方法、装置和计算机设备,旨在解决人工检测使用Goldengate工具同步数据时,测试效率低下,耗费人力的问题。
为了实现上述发明目的,本申请提出一种数据同步验证方法,包括:
获取所述GoldenGate工具中发生数据更新的第一上游表,其中所述GoldenGate工具中配置第一上游表,及其对应的第一下游表;
在所述第一上游表中查找更新的第一数据,并在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据;
若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求;
若达到预设的匹配要求,则判定数据同步成功,否则判定数据同步失败。
进一步地,所述在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤,包括:
在所述第一时间长度后,第一次在所述第一下游表中查找更新的数据;
若第一次未查找到所述更新的数据,则在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据;
若在第二时间长度内查找到所述更新的数据,则将所述更新的数据记为所述第二数据。
进一步地,所述在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据的步骤之后,还包括:
若未查找到所述第二数据,则判定所述数据同步失败。
进一步地,所述在第一时间长度后到与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤之后,还包括:
如果在第一下游表中未查找到更新的数据,则生成一个数据为空的第二数据。
进一步地,所述判断所述第一数据和第二数据是否达到预设的匹配要求的步骤,包括:
判断所述第一数据的第一字段类型与第二数据的第二字段类型是否相同;
若所述第一字段类型与所述第二字段类型不相同,则判定所述第一数据和第二数据没有达到预设的匹配要求;
若所述第一字段类型与所述第二字段类型相同,则判断所述第一数据的第一字段长度与第二数据的第二字段长度是否匹配;
若所述第一字段长度与所述第二字段长度不匹配,则判定所述第一数据和第二数据没有达到预设的匹配要求;
若所述第一字段长度与所述第二字段长度匹配,则判断所述第一数据的第一数值和第二数据的第二数值是否相同;
若所述第一数值和第二数值相同,则判定所述第一数据和第二数据达到预设的匹配要求,否则判定所述第一数据和第二数据没有达到预设的匹配要求。
进一步地,所述判定数据同步失败的步骤之后,包括:
将所述第一数据和第二数据不匹配的原因生成报告信息,并在测试前台显示。
进一步地,所述将所述第一数据和第二数据不相同的原因生成报告信息,并在测试前台显示的步骤之后,还包括:
以所述测试前台开始显示所述报告信息的时间开始,在第三时间长度内判断在测试前台显示的报告信息是否被关闭;
若否,则自动关闭所述测试前台显示的报告信息,并将所述报告信息发送给预设的电子邮箱。
本申请实施例还提供一种数据同步验证装置,包括:
获取单元,用于获取所述GoldenGate工具中发生数据更新的第一上游表,其中所述GoldenGate工具中配置第一上游表,及其对应的第一下游表;
查找单元,用于在所述第一上游表中查找更新的第一数据,并在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据;
判断单元,用于若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求;
判定单元,用于若达到预设的匹配要求,则判定数据同步成功,否则判定数据同步失败。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的数据同步验证方法、装置和计算机设备,只需要人工进行少量的配置工作,无论字段的类型和长度都可以自动化进行增删改的跨库同步验证,节约大量的人力成本。
附图说明
图1为本申请一实施例的数据同步验证方法的流程示意图;
图2为本申请一实施例的数据同步验证装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例中提供一种数据同步验证方法,包括步骤:
S1、获取所述GoldenGate工具中发生数据更新的第一上游表,其中所述GoldenGate工具中配置第一上游表,及其对应的第一下游表;
S2、在所述第一上游表中查找更新的第一数据,并在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据;
S3、若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求;
S4、若达到预设的匹配要求,则判定数据同步成功,否则判定数据同步失败。
如上述步骤S1所述,上述GoldenGate工具使用数据同步的工具。上述上游表和下游表是测试人员预先配置好后,载入到上述GoldenGate工具中的数据表,当上游表发生数据更新,GoldenGate工具会将上游表中更新的数据更新到对应的下游表中。在本实施例中,判断上游表是否发生数据更新的方法包括:实时检测所述GoldenGate工具是否启动进行数据更新,如果启动,则说明某一个上游表中发生了数据更新,然后可以根据其更新的路径,得到上述的第一上游表,对应的,也会确定与上述第一上游表对应的第一下游表。上述数据更新包括增加数据、删除数据、修改数据等。
如上述步骤S2所述,会预先设置一张列表,在列表中记录有配置到GoldenGate工具中的上游表的上游表名,下游表的下游表名,以及上游表和下游表对应的数据库连接串等。上述列表可以是用户预先准备的列表,如通过测试人员手动配置的列表,或者是通过Goldengate工具利用同步表信息查询链接自动下载链路中上、下游一一对应的表名和表名对应数据库连接串等自动生成。上述第一数据即为第一上游表中发生增加数据、删除数据、修改数据的数据,同样的,上述第二数据为第一下游表中发生增加数据、删除数据、修改数据的数据。当上游表中的数据有更新的时候,GoldenGate工具必然后将上游表更新的第一数据同步到与上游表对应的下游表中,但是,上游表和下游表的配置关系可能存在错误,所以上游表中的第一数据存在无法成功同步到下游表中的情况,或者存在将第一数据向下游表中插入错误的情况等,此时需要获取到上游表中的第一数据,以及下游表中的第二数据,然后将两者进行比较,已确定同步是否成功。在上述列表中查找上游表名对应的上游数据库连接串,依据该上游数据库连接串连接到上游表所在的数据库,然后在上游表中得到更新的第一数据。因为利用GoldenGate工具同步数据时,下游表的数据更新是晚于上游表的更新时间的,即存在一个GoldenGate工具将上游表的第一数据复制黏贴到下游表的时间。所以,本申请为了验证的准确、流畅性,设置了一个时间长度,该第一时间长度一般为一分钟。在到下游表中查找第二数据的时候,同样需要在上述列表中查找下游表名对应的下游数据库连接串,然后依据该下游数据库连接串连接到下游表所在的数据库,最后在下游表查找对应的第二数据,此时,由于存在同步失败等情况,所以可能无法获取到第二数据。
如上述步骤S3和S4所述,即为按照预设的匹配规则进行比较第一数据和第二数据是否匹配,如果匹配则判定判定数据同步成功,否则判定数据同步失败。比如,第一数据为第一删除数据,第二数据为第二删除数据,如果第一删除数据和第二删除数据匹配,则认为数据同步成功;又比如,第一数据为第一修改数据,第二数据为第二修改数据,如果第一修改数据和第二修改数据匹配,则认为数据同步成功等。上述的预设的匹配要求包括多种,比如,要求第一数据和第二数据完成相同,才判定为两者匹配;又或者,根据上游表的格式、以及下游表的格式设定的匹配要求,要求第一数据和第二数据分别转换成同一格式的第三数据的时候,两组第三数据相同等,才判定为第一数据和第二数据匹配等等。
在一个实施例中,上述在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤,包括:
S21、在所述第一时间长度后,第一次在所述第一下游表中查找更新的数据;
S22、若第一次未查找到所述更新的数据,则在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据;
S23、若在第二时间长度内查找到所述更新的数据,则将所述更新的数据记为所述第二数据。
在本实施例中,即为如果在上述第一时间长度后的第二时间长度内多次在第一下游表中查找第二数据,具体的,在第一时间长度后,立即进行第一次查找第二数据,如果没有查找到第二数据,则等待一个时间长度后,再一次在第一下游表中查找第二数据;此时,如果查找到第二数据,则停止后续的查找过程,如果没有查找到第二数据,则继续查找,直到在第二时间长度内查到第二数据为止。本实施例中,上述第二时间长度可以为10分钟,可以一分钟为时间间隔,查找一次第二数据。本实施例中,查找第二数据的具体方法有多种,比如,第一下游表本身会对更新后的数据进行时间标记,可以根据标记的时间判断出第一下游表中是否有更新的数据,从而获取到对应的跟新的数据(第二数据);或者,将第一下游数据表设定为修订模式,读取第一下游表中是否有修订痕迹,若有,则将修订部分记为更新的数据。在一具体实施例中,读取第一下游表的数据量,若发生变化,则读取第一下游表中是否有修订痕迹,若有,则将修订部分记为更新的数据(第二数据),然后将下游表接收修订,以便于下一次获取第一下游表中更新的数据等。
在一个实施例中,上述在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据的步骤之后,还包括:
S221、若在第二时间长度内未查找到所述第二数据,则判定所述数据同步失败。
在本实施例中,如果在第二时间长度内仍然没有查找到第二数据,则可以判定第一上游表中的更新数据没有同步到其对应的第一下游表中,可判定所述数据同步失败。
在一个实施例中,上述在第一时间长度后到与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤之后,还包括:
如果在第一下游表中未查找到更新的数据,则生成一个数据为空的第二数据。
在本实施例中,在后续的如上述若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求的步骤S3中,利用第一数据与空的第二数据进行匹配,则匹配结果必然是不匹配,仍然可以判断出数据同步失败的结果。
在一个实施例中,上述判断所述第一数据和第二数据是否达到预设的匹配要求的步骤,包括:
判断所述第一数据的第一字段类型与第二数据的第二字段类型是否相同;
若所述第一字段类型与所述第二字段类型不相同,则判定所述第一数据和第二数据没有达到预设的匹配要求;
若所述第一字段类型与所述第二字段类型相同,则判断所述第一数据的第一字段长度与第二数据的第二字段长度是否匹配;
若所述第一字段长度与所述第二字段长度不匹配,则判定所述第一数据和第二数据没有达到预设的匹配要求;
若所述第一字段长度与所述第二字段长度匹配,则判断所述第一数据的第一数值和第二数据的第二数值是否相同;
若所述第一数值和第二数值相同,则判定所述第一数据和第二数据达到预设的匹配要求,否则判定所述第一数据和第二数据没有达到预设的匹配要求。
在本实施例中,即为具体判断所述第一数据和第二数据是否达到预设的匹配要求的过程。首先要求第一数据和第二数据的字段类型是相同的,否则,第二数据可能不是第一上游表中同步过来的数据(比如,第二数据是测试人员输入的数据,或者通过其他途径更新到第一下游表中的其他数据等),所以,如果第一数据和第二数据的字段类型不同,可以直接判定第一数据和第二数据不匹配;进一步地,如果判定所述第一数据和第二数据的字段类型相同,则需要判断第一数据的字段长度是否匹配,如果第一数据和第二数据的编码格式相同,则第一数据和第二数据的匹配要求为字段长度相同,如果第一数据和第二数据的编码格式不相同,则要求两则的字段长度与编码格式的要求相对应,比如,第一上游表为gbk编码格式,其一个中文占用两个字节,第一下游表为utf8编码格式下,其一个中文占用三个字节,那么第一下游字段长度为第一上游字段长度的1.5倍,此时才会判定第一数据和第二数据相匹配。最后,如果字段长度也匹配,则判定所述第一数据的第一数值和第二数据的第二数值是否匹配,如果相同,则判定所述第一数据和第二数据相同。上述第一数值和第二数值即为第一数据和第二数据所表达的具体含义,比如,第一数据为1,其表达的含义为“是”,第二数据为8,其表达的含义也为“是”,那么第一数据1的第一数值和第二数据8的第二数值是相同的。
在一个实施例中,上述判定数据同步失败的步骤之后,包括:
将所述第一数据和第二数据不匹配的原因生成报告信息,并在测试前台显示。
在本实施例中,如果判定数据同步失败,必然会知道数据同步失败的原因(第一数据和第二数据不匹配的原因),那么将该同步失败的原因形成报告信息,发送到测试前台,以便于测试人员查看。在一个具体实施例中,还会将报告信息存储到一个指定的存储空间中,方便测试人员快速的找到报告信息以进行复查、研究等工作。
进一步地,上述将所述第一数据和第二数据不相同的原因生成报告信息,并在测试前台显示的步骤之后,还包括:
以所述测试前台开始显示所述报告信息的时间开始,在第三时间长度内判断在测试前台显示的报告信息是否被关闭;
若否,则自动关闭所述测试前台显示的报告信息,并将所述报告信息发送给预设的电子邮箱。
在本实施例中,因为是自动进行验证上游表的数据是否正确的同步到下游表中,所以测试人员不会一直在测试前台,所以显示在测试前台的报告信息测试人员可能不会第一时间查看到,所以,监控测试前台显示的报告信息在第三时间长度内是否被关闭,如果被关闭说明测试人员查看到到,如果没有关闭,则认为测试前台没有测试人员,则自动关闭测试前台的报告信息,然后将报告信息发送到预设的电子邮箱中,该电子邮箱一般为指定的测试人员的邮箱,以便于测试人员及时连接测试情况,进行处理等。
本申请实施例的数据同步验证方法,只需要人工进行少量的配置工作,无论字段的类型和长度都可以自动化进行增删改的跨库同步验证,节约大量的人力成本。
参照图2,本申请实施例中还提供一种数据同步验证装置,包括:
获取单元10,用于获取所述GoldenGate工具中发生数据更新的第一上游表,其中所述GoldenGate工具中配置第一上游表,及其对应的第一下游表;
查找单元20,用于在所述第一上游表中查找更新的第一数据,并在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据;
判断单元30,用于若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求;
判定单元40,用于若达到预设的匹配要求,则判定数据同步成功,否则判定数据同步失败。
如上述获取单元10,上述上游表和下游表是测试人员预先配置好后,载入到上述GoldenGate工具中的数据表,当上游表发生数据更新,GoldenGate工具会将上游表中更新的数据更新到对应的下游表中。在本实施例中,判断上游表是否发生数据更新的方法包括:实时检测所述GoldenGate工具是否启动进行数据更新,如果启动,则说明某一个上游表中发生了数据更新,然后可以根据其更新的路径,得到上述的第一上游表,对应的,也会确定与上述第一上游表对应的第一下游表。上述数据更新包括增加数据、删除数据、修改数据等。
如上述查找单元20,会预先设置一张列表,在列表中记录有配置到GoldenGate工具中的上游表的上游表名,下游表的下游表名,以及上游表和下游表对应的数据库连接串等。上述列表可以是用户预先准备的列表,如通过测试人员手动配置的列表,或者是通过Goldengate工具利用同步表信息查询链接自动下载链路中上、下游一一对应的表名和表名对应数据库连接串等自动生成。上述第一数据即为第一上游表中发生增加数据、删除数据、修改数据的数据,同样的,上述第二数据为第一下游表中发生增加数据、删除数据、修改数据的数据。当上游表中的数据有更新的时候,GoldenGate工具必然后将上游表更新的第一数据同步到与上游表对应的下游表中,但是,上游表和下游表的配置关系可能存在错误,所以上游表中的第一数据存在无法成功同步到下游表中的情况,或者存在将第一数据向下游表中插入错误的情况等,此时需要获取到上游表中的第一数据,以及下游表中的第二数据,然后将两者进行比较,已确定同步是否成功。在上述列表中查找上游表名对应的上游数据库连接串,依据该上游数据库连接串连接到上游表所在的数据库,然后在上游表中得到更新的第一数据。因为利用GoldenGate工具同步数据时,下游表的数据更新是晚于上游表的更新时间的,即存在一个GoldenGate工具将上游表的第一数据复制黏贴到下游表的时间。所以,本申请为了验证的准确、流畅性,设置了一个时间长度,该第一时间长度一般为一分钟。在到下游表中查找第二数据的时候,同样需要在上述列表中查找下游表名对应的下游数据库连接串,然后依据该下游数据库连接串连接到下游表所在的数据库,最后在下游表查找对应的第二数据,此时,由于存在同步失败等情况,所以可能无法获取到第二数据。
如上述判断单元30和判定单元40,即为按照预设的匹配规则进行比较第一数据和第二数据是否匹配,如果匹配则判定判定数据同步成功,否则判定数据同步失败。比如,第一数据为第一删除数据,第二数据为第二删除数据,如果第一删除数据和第二删除数据匹配,则认为数据同步成功;又比如,第一数据为第一修改数据,第二数据为第二修改数据,如果第一修改数据和第二修改数据匹配,则认为数据同步成功等。上述的预设的匹配要求包括多种,比如,要求第一数据和第二数据完成相同,才判定为两者匹配;又或者,根据上游表的格式、以及下游表的格式设定的匹配要求,要求第一数据和第二数据分别转换成同一格式的第三数据的时候,两组第三数据相同等,才判定为第一数据和第二数据匹配等等。
在一个实施例中,上述查找单元20,包括:
第一查找模块,用于在所述第一时间长度后,第一次在所述第一下游表中查找更新的数据;
第二查找模块,用于若第一次未查找到所述更新的数据,则在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据;
第一执行模块,用于若在第二时间长度内查找到所述更新的数据,则将所述更新的数据记为所述第二数据。
在本实施例中,即为如果在上述第一时间长度后的第二时间长度内多次在第一下游表中查找第二数据,具体的,在第一时间长度后,立即进行第一次查找第二数据,如果没有查找到第二数据,则等待一个时间长度后,再一次在第一下游表中查找第二数据;此时,如果查找到第二数据,则停止后续的查找过程,如果没有查找到第二数据,则继续查找,直到在第二时间长度内查到第二数据为止。本实施例中,上述第二时间长度可以为10分钟,可以一分钟为时间间隔,查找一次第二数据。本实施例中,查找第二数据的具体方法有多种,比如,第一下游表本身会对更新后的数据进行时间标记,可以根据标记的时间判断出第一下游表中是否有更新的数据,从而获取到对应的跟新的数据(第二数据);或者,将第一下游数据表设定为修订模式,读取第一下游表中是否有修订痕迹,若有,则将修订部分记为更新的数据。在一具体实施例中,读取第一下游表的数据量,若发生变化,则读取第一下游表中是否有修订痕迹,若有,则将修订部分记为更新的数据(第二数据),然后将下游表接收修订,以便于下一次获取第一下游表中更新的数据等。
在一个实施例中,上述查找单元20还包括:
第二执行模块,用于若在第二时间长度内未查找到所述第二数据,则判定所述数据同步失败。
在本实施例中,如果在第二时间长度内仍然没有查找到第二数据,则可以判定第一上游表中的更新数据没有同步到其对应的第一下游表中,可判定所述数据同步失败。
在一个实施例中,上述数据同步验证装置还包括:
生成单元,用于如果在第一下游表中未查找到更新的数据,则生成一个数据为空的第二数据。
在本实施例中,在运行上述判断单元30时,利用第一数据与空的第二数据进行匹配,则匹配结果必然是不匹配,仍然可以判断出数据同步失败的结果。
在一个实施例中,上述判断单元30,包括:
第一判断模块,用于判断所述第一数据的第一字段类型与第二数据的第二字段类型是否相同;
第一判定模块,用于若所述第一字段类型与所述第二字段类型不相同,则判定所述第一数据和第二数据没有达到预设的匹配要求;
第二判断模块,用于若所述第一字段类型与所述第二字段类型相同,则判断所述第一数据的第一字段长度与第二数据的第二字段长度是否匹配;
第二判定模块,用于若所述第一字段长度与所述第二字段长度不匹配,则判定所述第一数据和第二数据没有达到预设的匹配要求;
第三判断模块,用于若所述第一字段长度与所述第二字段长度匹配,则判断所述第一数据的第一数值和第二数据的第二数值是否相同;
第三判定模块,用于若所述第一数值和第二数值相同,则判定所述第一数据和第二数据达到预设的匹配要求,否则判定所述第一数据和第二数据没有达到预设的匹配要求。
在本实施例中,即为具体判断所述第一数据和第二数据是否达到预设的匹配要求的过程。首先要求第一数据和第二数据的字段类型是相同的,否则,第二数据可能不是第一上游表中同步过来的数据(比如,第二数据是测试人员输入的数据,或者通过其他途径更新到第一下游表中的其他数据等),所以,如果第一数据和第二数据的字段类型不同,可以直接判定第一数据和第二数据不匹配;进一步地,如果判定所述第一数据和第二数据的字段类型相同,则需要判断第一数据的字段长度是否匹配,如果第一数据和第二数据的编码格式相同,则第一数据和第二数据的匹配要求为字段长度相同,如果第一数据和第二数据的编码格式不相同,则要求两则的字段长度与编码格式的要求相对应,比如,第一上游表为gbk编码格式,其一个中文占用两个字节,第一下游表为utf8编码格式下,其一个中文占用三个字节,那么第一下游字段长度为第一上游字段长度的1.5倍,此时才会判定第一数据和第二数据相匹配。最后,如果字段长度也匹配,则判定所述第一数据的第一数值和第二数据的第二数值是否匹配,如果相同,则判定所述第一数据和第二数据相同。上述第一数值和第二数值即为第一数据和第二数据所表达的具体含义,比如,第一数据为1,其表达的含义为“是”,第二数据为8,其表达的含义也为“是”,那么第一数据1的第一数值和第二数据8的第二数值是相同的。
在一个实施例中,上述数据同步验证装置,还包括:
显示单元,用于将所述第一数据和第二数据不匹配的原因生成报告信息,并在测试前台显示。
在本实施例中,如果判定数据同步失败,必然会知道数据同步失败的原因(第一数据和第二数据不匹配的原因),那么将该同步失败的原因形成报告信息,发送到测试前台,以便于测试人员查看。在一个具体实施例中,还会将报告信息存储到一个指定的存储空间中,方便测试人员快速的找到报告信息以进行复查、研究等工作。
进一步地,上述数据同步验证装置,还包括:
显示判断单元,用于以所述测试前台开始显示所述报告信息的时间开始,在第三时间长度内判断在测试前台显示的报告信息是否被关闭;
发送单元,用于若在第三时间长度内在测试前台显示的报告信息没有被关闭,则自动关闭所述测试前台显示的报告信息,并将所述报告信息发送给预设的电子邮箱。
在本实施例中,因为是自动进行验证上游表的数据是否正确的同步到下游表中,所以测试人员不会一直在测试前台,所以显示在测试前台的报告信息测试人员可能不会第一时间查看到,所以,监控测试前台显示的报告信息在第三时间长度内是否被关闭,如果被关闭说明测试人员查看到到,如果没有关闭,则认为测试前台没有测试人员,则自动关闭测试前台的报告信息,然后将报告信息发送到预设的电子邮箱中,该电子邮箱一般为指定的测试人员的邮箱,以便于测试人员及时连接测试情况,进行处理等。
本申请实施例的数据同步验证装置,只需要人工进行少量的配置工作,无论字段的类型和长度都可以自动化进行增删改的跨库同步验证,节约大量的人力成本。
参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于上游表、下游表等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据同步验证方法。
上述处理器执行上述的数据同步验证方法,包括:获取所述GoldenGate工具中发生数据更新的第一上游表,其中所述GoldenGate工具中配置第一上游表,及其对应的第一下游表;在所述第一上游表中查找更新的第一数据,并在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据;若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求;若达到预设的匹配要求,则判定数据同步成功,否则判定数据同步失败。
在一个实施例中,所述在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤,包括:在所述第一时间长度后,第一次在所述第一下游表中查找更新的数据;若第一次未查找到所述更新的数据,则在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据;若在第二时间长度内查找到所述更新的数据,则将所述更新的数据记为所述第二数据。
在一个实施例中,所述在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据的步骤之后,还包括:若未查找到所述第二数据,则判定所述数据同步失败。
在一个实施例中,所述在第一时间长度后到与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤之后,还包括:如果在第一下游表中未查找到更新的数据,则生成一个数据为空的第二数据。
在一个实施例中,所述判断所述第一数据和第二数据是否达到预设的匹配要求的步骤,包括:判断所述第一数据的第一字段类型与第二数据的第二字段类型是否相同;若所述第一字段类型与所述第二字段类型不相同,则判定所述第一数据和第二数据没有达到预设的匹配要求;若所述第一字段类型与所述第二字段类型相同,则判断所述第一数据的第一字段长度与第二数据的第二字段长度是否匹配;若所述第一字段长度与所述第二字段长度不匹配,则判定所述第一数据和第二数据没有达到预设的匹配要求;若所述第一字段长度与所述第二字段长度匹配,则判断所述第一数据的第一数值和第二数据的第二数值是否相同;若所述第一数值和第二数值相同,则判定所述第一数据和第二数据达到预设的匹配要求,否则判定所述第一数据和第二数据没有达到预设的匹配要求。
在一个实施例中,所述判定数据同步失败的步骤之后,包括:将所述第一数据和第二数据不匹配的原因生成报告信息,并在测试前台显示。
在一个实施例中,所述将所述第一数据和第二数据不相同的原因生成报告信息,并在测试前台显示的步骤之后,还包括:以所述测试前台开始显示所述报告信息的时间开始,在第三时间长度内判断在测试前台显示的报告信息是否被关闭;若否,则自动关闭所述测试前台显示的报告信息,并将所述报告信息发送给预设的电子邮箱。
本发明实施例的数据同步验证方法,只需要人工进行少量的配置工作,无论字段的类型和长度都可以自动化进行增删改的跨库同步验证,节约大量的人力成本。
本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现数据同步验证方法,包括步骤:获取所述GoldenGate工具中发生数据更新的第一上游表,其中所述GoldenGate工具中配置第一上游表,及其对应的第一下游表;在所述第一上游表中查找更新的第一数据,并在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据;若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求;若达到预设的匹配要求,则判定数据同步成功,否则判定数据同步失败。
上述执行的数据同步验证方法,只需要人工进行少量的配置工作,无论字段的类型和长度都可以自动化进行增删改的跨库同步验证,节约大量的人力成本。
在一个实施例中,所述在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤,包括:在所述第一时间长度后,第一次在所述第一下游表中查找更新的数据;若第一次未查找到所述更新的数据,则在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据;若在第二时间长度内查找到所述更新的数据,则将所述更新的数据记为所述第二数据。
在一个实施例中,所述在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据的步骤之后,还包括:若未查找到所述第二数据,则判定所述数据同步失败。
在一个实施例中,所述在第一时间长度后到与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤之后,还包括:如果在第一下游表中未查找到更新的数据,则生成一个数据为空的第二数据。
在一个实施例中,所述判断所述第一数据和第二数据是否达到预设的匹配要求的步骤,包括:判断所述第一数据的第一字段类型与第二数据的第二字段类型是否相同;若所述第一字段类型与所述第二字段类型不相同,则判定所述第一数据和第二数据没有达到预设的匹配要求;若所述第一字段类型与所述第二字段类型相同,则判断所述第一数据的第一字段长度与第二数据的第二字段长度是否匹配;若所述第一字段长度与所述第二字段长度不匹配,则判定所述第一数据和第二数据没有达到预设的匹配要求;若所述第一字段长度与所述第二字段长度匹配,则判断所述第一数据的第一数值和第二数据的第二数值是否相同;若所述第一数值和第二数值相同,则判定所述第一数据和第二数据达到预设的匹配要求,否则判定所述第一数据和第二数据没有达到预设的匹配要求。
在一个实施例中,所述判定数据同步失败的步骤之后,包括:将所述第一数据和第二数据不匹配的原因生成报告信息,并在测试前台显示。
在一个实施例中,所述将所述第一数据和第二数据不相同的原因生成报告信息,并在测试前台显示的步骤之后,还包括:以所述测试前台开始显示所述报告信息的时间开始,在第三时间长度内判断在测试前台显示的报告信息是否被关闭;若否,则自动关闭所述测试前台显示的报告信息,并将所述报告信息发送给预设的电子邮箱。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (6)

1.一种数据同步验证方法,其特征在于,包括:
获取GoldenGate工具中发生数据更新的第一上游表,其中所述GoldenGate工具中配置第一上游表,及其对应的第一下游表;
在所述第一上游表中查找更新的第一数据,并在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据;
若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求;
若达到预设的匹配要求,则判定数据同步成功,否则判定数据同步失败;
所述在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤,包括:
在所述第一时间长度后,第一次在所述第一下游表中查找更新的数据;
若第一次未查找到所述更新的数据,则在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据;
若在第二时间长度内查找到所述更新的数据,则将所述更新的数据记为所述第二数据;
所述在第二时间长度内,在所述第一下游表中按照预设时间间隔查找所述更新的数据的步骤之后,还包括:
若未查找到所述第二数据,则判定所述数据同步失败;
所述在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据的步骤之后,还包括:
如果在第一下游表中未查找到更新的数据,则生成一个数据为空的第二数据;
所述判断所述第一数据和第二数据是否达到预设的匹配要求的步骤,包括:
判断所述第一数据的第一字段类型与第二数据的第二字段类型是否相同;
若所述第一字段类型与所述第二字段类型不相同,则判定所述第一数据和第二数据没有达到预设的匹配要求;
若所述第一字段类型与所述第二字段类型相同,则判断所述第一数据的第一字段长度与第二数据的第二字段长度是否匹配;
若所述第一字段长度与所述第二字段长度不匹配,则判定所述第一数据和第二数据没有达到预设的匹配要求;
若所述第一字段长度与所述第二字段长度匹配,则判断所述第一数据的第一数值和第二数据的第二数值是否相同;
若所述第一数值和第二数值相同,则判定所述第一数据和第二数据达到预设的匹配要求,否则判定所述第一数据和第二数据没有达到预设的匹配要求。
2.根据权利要求1所述的数据同步验证方法,其特征在于,所述判定数据同步失败的步骤之后,包括:
将所述第一数据和第二数据不匹配的原因生成报告信息,并在测试前台显示。
3.根据权利要求2所述的数据同步验证方法,其特征在于,所述将所述第一数据和第二数据不匹配的原因生成报告信息,并在测试前台显示的步骤之后,还包括:
以所述测试前台开始显示所述报告信息的时间开始,在第三时间长度内判断在测试前台显示的报告信息是否被关闭;
若否,则自动关闭所述测试前台显示的报告信息,并将所述报告信息发送给预设的电子邮箱。
4.一种数据同步验证装置,用于实现如权利要求1至3中任一项所述的数据同步验证方法,其特征在于,包括:
获取单元,用于获取GoldenGate工具中发生数据更新的第一上游表,其中所述GoldenGate工具中配置第一上游表,及其对应的第一下游表;
查找单元,用于在所述第一上游表中查找更新的第一数据,以及在第一时间长度后在与所述第一上游表对应的第一下游表中查找更新的第二数据;
判断单元,用于若查找到所述第二数据,则判断所述第一数据和第二数据是否达到预设的匹配要求;
判定单元,用于若达到预设的匹配要求,则判定数据同步成功,否则判定数据同步失败。
5.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3中任一项所述方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的方法的步骤。
CN201910305183.0A 2019-04-16 2019-04-16 数据同步验证方法、装置和计算机设备 Active CN110162461B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910305183.0A CN110162461B (zh) 2019-04-16 2019-04-16 数据同步验证方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910305183.0A CN110162461B (zh) 2019-04-16 2019-04-16 数据同步验证方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN110162461A CN110162461A (zh) 2019-08-23
CN110162461B true CN110162461B (zh) 2023-08-15

Family

ID=67639610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910305183.0A Active CN110162461B (zh) 2019-04-16 2019-04-16 数据同步验证方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN110162461B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112307124A (zh) * 2020-11-03 2021-02-02 平安普惠企业管理有限公司 数据库同步验证方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104537018A (zh) * 2014-12-18 2015-04-22 深圳市科漫达智能管理科技有限公司 一种数据同步的方法、装置及系统
CN105867978A (zh) * 2016-04-11 2016-08-17 平安科技(深圳)有限公司 Ogg版本部署方法和系统
CN105975502A (zh) * 2016-04-25 2016-09-28 南京优测信息科技有限公司 一种基于cdc方式实现增量抽取数据的方法
WO2017071337A1 (zh) * 2015-10-26 2017-05-04 中兴通讯股份有限公司 管理数据库表数据的方法、装置及系统
CN107122361A (zh) * 2016-02-24 2017-09-01 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN107609188A (zh) * 2017-10-09 2018-01-19 上海新炬网络信息技术股份有限公司 基于GoldenGate的数据同步校验方法
CN108536822A (zh) * 2018-04-09 2018-09-14 平安普惠企业管理有限公司 数据迁移方法、装置、系统及存储介质
CN109086295A (zh) * 2018-06-13 2018-12-25 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备及存储介质
CN109376196A (zh) * 2018-09-25 2019-02-22 浪潮软件集团有限公司 一种redo日志批量同步方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104537018A (zh) * 2014-12-18 2015-04-22 深圳市科漫达智能管理科技有限公司 一种数据同步的方法、装置及系统
WO2017071337A1 (zh) * 2015-10-26 2017-05-04 中兴通讯股份有限公司 管理数据库表数据的方法、装置及系统
CN107122361A (zh) * 2016-02-24 2017-09-01 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN105867978A (zh) * 2016-04-11 2016-08-17 平安科技(深圳)有限公司 Ogg版本部署方法和系统
CN105975502A (zh) * 2016-04-25 2016-09-28 南京优测信息科技有限公司 一种基于cdc方式实现增量抽取数据的方法
CN107609188A (zh) * 2017-10-09 2018-01-19 上海新炬网络信息技术股份有限公司 基于GoldenGate的数据同步校验方法
CN108536822A (zh) * 2018-04-09 2018-09-14 平安普惠企业管理有限公司 数据迁移方法、装置、系统及存储介质
CN109086295A (zh) * 2018-06-13 2018-12-25 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备及存储介质
CN109376196A (zh) * 2018-09-25 2019-02-22 浪潮软件集团有限公司 一种redo日志批量同步方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Oracle GoldenGate Veridata数据验证技术的研究与应用;王文阁;;电力信息与通信技术(第11期);全文 *

Also Published As

Publication number Publication date
CN110162461A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
CN108874644B (zh) 数据监控方法、装置、计算机设备及存储介质
CN108874661B (zh) 测试映射关系库生成方法、装置、计算机设备和存储介质
CN108959067B (zh) 搜索引擎的测试方法、装置及计算机可读存储介质
WO2019037418A1 (zh) 代码管理方法、装置、计算机设备和计算机可读存储介质
CN104765635B (zh) 一种核对apk内多国语言的方法及其系统
CN110162461B (zh) 数据同步验证方法、装置和计算机设备
CN113505078B (zh) 配置文件更新方法、装置、设备及存储介质
CN109462661B (zh) 数据同步方法、装置、计算机设备和存储介质
CN110263032B (zh) 数据库中表结构对比方法、装置、计算机设备和存储介质
CN110362478A (zh) 应用升级测试方法、装置、计算机设备和存储介质
US20120310849A1 (en) System and method for validating design of an electronic product
US20180173615A1 (en) Software integration testing with unstructured database
CN113918384A (zh) 数据保存方法、装置、设备及存储介质
CN114153796A (zh) 文件异常检测方法、装置及系统
CN112817931B (zh) 一种增量版本文件的生成方法及装置
CN110674249B (zh) 一种信息处理方法及装置
CN112612773A (zh) 数据库同步测试方法、装置、计算机设备及存储介质
CN111858299B (zh) 一种自动化差异分析验证的方法
CN112445829B (zh) 数据核对的方法、装置、设备及存储介质
CN113778997B (zh) 一种数据库版本管理方法、系统及设备
CN115374218A (zh) 一种异构数据库的数据同步方法、装置、设备及介质
CN112000664B (zh) 数据同步方法、装置、电子设备及可读存储介质
CN117033518A (zh) 数据同步方法、装置、计算机设备和存储介质
CN117372175A (zh) 保险产品配置的方法、装置、设备及存储介质
CN115718697A (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