CN110442564A - 增量数据校验方法、存储介质 - Google Patents
增量数据校验方法、存储介质 Download PDFInfo
- Publication number
- CN110442564A CN110442564A CN201910665579.6A CN201910665579A CN110442564A CN 110442564 A CN110442564 A CN 110442564A CN 201910665579 A CN201910665579 A CN 201910665579A CN 110442564 A CN110442564 A CN 110442564A
- Authority
- CN
- China
- Prior art keywords
- incremental
- data
- incremental data
- database
- record
- 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.)
- Granted
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供增量数据校验方法、存储介质,方法包括:数据库A成功同步一增量数据至数据库B后,同步程序发送增量消息至MQ消息队列,所述增量消息包括所述一增量数据的主键id和类型字段;增量数据校验程序在MQ消息队列收到增量消息后,依据其中的主键id和类型字段分别查询数据库A和数据B,对所述一增量数据进行校验。
Description
技术领域
本发明涉及数据校验领域,具体涉及增量数据校验方法、存储介质。
背景技术
如今,很多系统都存在有一个对应的服务端,而每一个系统中也都存在有一个对应的数据库。因为互联网的方式,用户数据大量增加,所以数据库中的数据量越来越大。同时,互联网系统应用更新换代频繁,会出现一个系统中的新旧版本同时使用的情况。此场景下,就存在新版本系统连接新数据库使用,旧版本系统连接旧数据库使用的情况,为了兼容新旧数据,可能需要进行数据迁移,将旧有数据库信息迁移至新数据库中。
此时,在两个新旧版本之中,存在两种数据迁移方式:一种是存量数据的迁移,即以某一时刻为时间点,全量迁移该时刻之前的所有旧有数据库里的数据至新库中;另一种是通过增量程序,增量的迁移旧有数据至新数据库中。然而,不管是全量还是增量数据迁移到新库,后续都存在新的增量数据从旧库同步到新库中(这边同步程序为通用的同步方式),不过,为了最后的数据一致性,都会需要有一个数据一致性校验工具来完成这样两边的数据校验工作,即只针对增量数据来进行新旧库的数据校验工作。
上述校验工作,旧有程序一般是这样处理的:在新旧库中每一条记录都有一个唯一主键ID来标识唯一的一条记录,同时,旧库中每一条记录中都存在有更新时间这个字段。当进行增量数据校验时,首先有一个定时任务,每隔一段时间定时扫描旧库中的某一张表,根据更新时间字段查询某一段时间之内的增量变更数据;之后,逐条处理这些数据,根据ID查询这些数据在新库中是否存在,不存在则新增,存在则进行比较,根据各自业务进行比较校验数据迁移是否正常。这样就存在一种情况,每次都是已定时任务一批批地查询数据,并进行比较,如果定时任务间隔时间比较长,则校验的时间段就比较长,比如半小时间隔,同时,如果数据量继续增大,却无法自动化的扩容,增大数据的校验工作,因为处理数据校验的能力就那么大,单位时间内的增量数据如果变多的话,则定时任务处理的数据也变多,如果半小时之内无法处理这半小时之内的新增数据,则定时任务会推延,造成该时间段内的数据无法校验完毕,同时还会影响下一个阶段的数据校验。
因此,有必要提供一种全新的数据校验方法,以解决上述问题。
发明内容
本发明所要解决的技术问题是:提供一种全新的增量数据校验方法、存储介质,提高数据校验的实时性,避免待校验数据堆积。
为了解决上述技术问题,本发明采用的技术方案为:
增量数据校验方法,包括:
数据库A成功同步一增量数据至数据库B后,同步程序发送增量消息至MQ消息队列,所述增量消息包括所述一增量数据的主键id和类型字段;
增量数据校验程序在MQ消息队列收到增量消息后,依据其中的主键id和类型字段分别查询数据库A和数据B,对所述一增量数据进行校验。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述增量数据校验方法所包含的步骤。
本发明的有益效果在于:本发明特设MQ消息队列和订阅了队列的增量数据校验程序;在数据库之间结束一数据的同步后,发送与该数据对应的增量消息至MQ消息队列,排队等待校验,而增量数据校验程序将实时地消化队列中的增量消息,即对对应的数据进行校验。由此,本发明能在每个数据完成同步后即安排进入队列等待被校验,从而实现较为实时性地对同步后的增量数据进行校验,从而避免待校验数据的堆积。
附图说明
图1为本发明实施例一种增量数据校验方法的流程示意图;
图2为本发明实施例一的一种增量数据校验方法的流程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:在每个数据完成同步后即安排进入队列等待被校验。
本发明涉及的技术术语解释:
请参照图1,本发明提供一种增量数据校验方法,包括:
数据库A成功同步一增量数据至数据库B后,同步程序发送增量消息至MQ消息队列,所述增量消息包括所述一增量数据的主键id和类型字段;
增量数据校验程序在MQ消息队列收到增量消息后,依据其中的主键id和类型字段分别查询数据库A和数据B,对所述一增量数据进行校验。
进一步地,还包括:
当定时监控MQ消息队列的增量数据监控程序监控到队列中增量消息的数量堆积到预设阈值时,增加订阅MQ消息队列的增量数据校验程序的数量。
由上述描述可知,能够实现动态地扩容增量数据校验程序,从而提高校验的吞吐量,提高校验效率,解决增量数据堆积而引起无法校验的问题。
进一步地,依据MQ消息队列中堆积的增量消息的数量确定新增的增量数据校验程序的数量。
由上述描述可知,对应队列中堆积的待校验增量消息来动态地增加校验程序的数量,更具灵活性和实用性,能实现资源合理利用。
进一步地,所述依据其中的主键id和类型字段分别查询数据库A和数据B,对所述一增量数据进行校验,具体为:
依据所述一增量数据的主键id和类型字段分别从数据库A中获取对应的第一记录,从数据库B中获取对应的第二记录;
若第二记录为空,则在数据库B中增加所述第一记录;
对比第一记录和第二记录,若数据不一致,则依据第一记录修改第二记录。
由上述描述可知,能自动开展数据校验以及数据修复工作,确保数据同步的正确性和完整性。
进一步地,所述依据第一记录修改第二记录,具体为:
依据业务映射规则,将数据库A的所述第一记录映射至数据库B,并覆盖所述第二记录。
由上述描述可知,采用直接覆盖的方式进行数据修复,更直接高效。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述增量数据校验方法所包含的步骤。
从上述描述可知,对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。所述程序执行后,能实现各方法对应的有益效果。
其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
实施例一
请参照图2,本实施例提供一种全新的增量数据校验方法,不仅提高数据校验的实时性,而且能动态地扩容开展数据校验工作的消费者数量,使得校验的吞吐量得到提升。
本实施例在数据同步功能的程序基础之上,对增量数据校验过程进行改造,方法包括:
S1:通过同步程序在数据库A中的数据发生变更的时候,同步变更数据至数据库B。
可选地,所述同步程序可以是一个用于数据同步的程序,也可以是通过日志或者扫库或者其他方式来实现增量数据的同步。
S2:数据库A成功同步一增量数据至数据库B后,同步程序发送增量消息至MQ消息队列,所述增量消息包括所述一增量数据的主键id和类型字段;
具体而言,当同步程序已经成功把一条数据从数据库A同步到数据库B中后,将会主动发送一条增量消息至MQ消息队列中。该增量消息与同步成功的增量数据相对应。
所述增量消息的格式支持自定义,至少包括对应当前同步成功的增量消息的主键id和类型字段。可以根据主键id和类型字段从数据库中高效且准确地查询到对应的数据。
需要说明的是,若数据同步失败,则无需发送对应的增量消息至MQ消息队列。对应该步骤,即新增一个对应增量数据的增量消息至MQ消息队列中,目的在于当增量行为发生后,其他服务能通过这个增量消息感知到,并进行后续操作。
S3:增量数据校验程序在MQ消息队列收到增量消息后,依据其中的主键id和类型字段分别查询数据库A和数据B,对所述一增量数据进行校验。
所述增量数据校验程序,也可以成为增量数据校验模块,其专门订阅MQ中的增量消息,当收到增量消息时,说明对应的这条增量数据是已经同步成功的了。此时,根据增量消息中的唯一标识主键id,便可查询到新库中的对应记录,进行数据校验以及数据修复工作。
增量数据校验程序对当前订阅到的增量数据的校验过程,具体包括:
首先,依据当前订阅到的增量数据中记载的主键id和类型字段从数据库A中获取对应的第一记录,从数据库B中获取对应的第二记录;若第二记录为空,即数据库B中不存在数据库A这一增量数据的记载,则在数据库B中增加这一增量数据;
若第二记录存在数据,则对比第一记录和第二记录,若数据不一致,则保持一致,具体将第一记录同步到第二记录中,可选地,通过依据业务映射规则,将数据库A的第一记录映射至数据库B,直接覆盖第二记录。
S4:专门设置一个增量数据监控程序定时监控MQ消息队列的增量数据,当监控到MQ消息队列中的增量消息的数量达到预设阈值时,则动态扩容。
其中,监控程序每次执行监控的时间间隔支持自定义,从而根据灵活性。所述动态扩容,即横向增加增量数据校验程序的部署,以最快的速度提高MQ消息队列的增量数据的消费(处理)效率,避免待校验增量数据堆积而引起无法校验的问题发生。
优选地,扩容的校验程序数量将自动依据MQ消息队列中当前堆积的增量消息的数量来确定,实现资源的合理、充分运用,既能保证待校验增量消息的及时消费,又能确保系统运行不受影响。
通过本实施例,一是可以较为实时地、高效地处理同步之后的,增量数据校验工作;二是,当待校验增量数据激增时,可以通过新增加消费者的方式,动态地扩容数据校验工作的消费者数量,消除了背景技术中所述的现有技术存在的问题,从而提高了数据校验的实时性以及校验的吞吐量。
实施例二
本实施例对应实施例一,提供一个具体运用场景:
A,B两个数据库,有一个同步程序当数据库A中进行数据变更时,会同步数据至B数据库中。
此时,当同步程序中已经成功把一条数据从A同步到B数据库中后,将会主动发送一条增量消息至MQ中。该消息格式可以根据业务而定,一般是存在类型字段type以及数据的主键id。类型用来表示是那种类型的数据,id表示数据库中对应数据的唯一主键,可以根据id从数据库中查询到的对应数据。
有一个消息消费程序,专门从MQ中订阅增量消息。当消费程序订阅到一条消息后,根据消息中的唯一标识id以及类型,可以查询到新库中的对应记录,进行数据校验以及数据修复工作。
具体的数据修复工作包括如下,根据type与id从A库中查询出记录出来,之后从B库中也查询出对应记录出来,根据具体校验的业务规则进行数据校验以及数据修复工作。比如,数据不存在B库中的,则新增;A与B库中的数据不一致的情况,需要根据业务映射规则,重新从A库记录中覆盖信息至B库记录中。
如上步骤,就是一条增量数据的实时校验步骤。同时,本实施例还有消息堆积监控功能。具体实现如下:
有一个专门的增量数据监控程序,每隔一段时间监控MQ中增量数据队列中的数量,当MQ中增量队列的数量堆积到一定数量时,比如说1000,则说明此时,已经有待校验增量数据堆积的情况,无法及时消费完毕。此时,只需要新增加消费者程序即可,通过横向部署多个消费者程序,即可解决增量数据堆积引起的无法数据校验的问题。
新增加消费者程序,比如,每一个消费者程序中都存在有100个线程,如果有100个增量消息则这个消费者程序就可以处理了。如果MQ此时有1000个增量消息待消费,则会消息堆积等待缓慢处理。如果此时,新增加9个消费者程序,就可以快速地消费增量消息。
实施例三
本实施例对应实施例一和实施例二,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述实施例一或实施例二所述的增量数据校验方法所包含的步骤。具体步骤内容在此不进行复述,详细请参阅实施例一和实施例二的记载。
综上所述,本发明提供的增量数据校验方法、存储介质,不仅提供了一种全新、高效地、实时性高的增量数据校验方法,从而避免数据堆积;而且,支持动态地扩容增量数据校验程序,从而提高校验的吞吐量,再次提高校验效率;进一步地,能保证校验的准确性,从而更具实用性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.增量数据校验方法,其特征在于,包括:
数据库A成功同步一增量数据至数据库B后,同步程序发送增量消息至MQ消息队列,所述增量消息包括所述一增量数据的主键id和类型字段;
增量数据校验程序在MQ消息队列收到增量消息后,依据其中的主键id和类型字段分别查询数据库A和数据B,对所述一增量数据进行校验。
2.如权利要求1所述的增量数据校验方法,其特征在于,还包括:
当定时监控MQ消息队列的增量数据监控程序监控到队列中增量消息的数量堆积到预设阈值时,增加订阅MQ消息队列的增量数据校验程序的数量。
3.如权利要求2所述的增量数据校验方法,其特征在于,依据MQ消息队列中堆积的增量消息的数量确定新增的增量数据校验程序的数量。
4.如权利要求1所述的增量数据校验方法,其特征在于,所述依据其中的主键id和类型字段分别查询数据库A和数据B,对所述一增量数据进行校验,具体为:
依据所述一增量数据的主键id和类型字段分别从数据库A中获取对应的第一记录,从数据库B中获取对应的第二记录;
若第二记录为空,则在数据库B中增加所述第一记录;
对比第一记录和第二记录,若数据不一致,则依据第一记录修改第二记录。
5.如权利要求4所述的增量数据校验方法,其特征在于,所述依据第一记录修改第二记录,具体为:
依据业务映射规则,将数据库A的所述第一记录映射至数据库B,并覆盖所述第二记录。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-5任意一项所述的增量数据校验方法所包含的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910665579.6A CN110442564B (zh) | 2019-07-23 | 2019-07-23 | 增量数据校验方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910665579.6A CN110442564B (zh) | 2019-07-23 | 2019-07-23 | 增量数据校验方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442564A true CN110442564A (zh) | 2019-11-12 |
CN110442564B CN110442564B (zh) | 2022-02-08 |
Family
ID=68431231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910665579.6A Active CN110442564B (zh) | 2019-07-23 | 2019-07-23 | 增量数据校验方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442564B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522832A (zh) * | 2020-05-09 | 2020-08-11 | 深圳市铭墨科技有限公司 | 一种大数据实时更新方法、系统、设备和存储介质 |
CN114547033A (zh) * | 2022-02-22 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种关键产品数据的管理方法、系统、设备和存储介质 |
US20220245143A1 (en) * | 2019-10-24 | 2022-08-04 | Huawei Technologies Co., Ltd. | Data Synchronization Method and Device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067361A1 (en) * | 2005-09-21 | 2007-03-22 | Infoblox Inc. | Semantic replication |
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和系统 |
CN109033186A (zh) * | 2018-06-27 | 2018-12-18 | 东软集团股份有限公司 | 数据一致性检测方法、装置、存储介质及电子设备 |
CN109558458A (zh) * | 2018-12-30 | 2019-04-02 | 贝壳技术有限公司 | 数据同步方法、配置平台、交易平台及数据同步系统 |
-
2019
- 2019-07-23 CN CN201910665579.6A patent/CN110442564B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067361A1 (en) * | 2005-09-21 | 2007-03-22 | Infoblox Inc. | Semantic replication |
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和系统 |
CN109033186A (zh) * | 2018-06-27 | 2018-12-18 | 东软集团股份有限公司 | 数据一致性检测方法、装置、存储介质及电子设备 |
CN109558458A (zh) * | 2018-12-30 | 2019-04-02 | 贝壳技术有限公司 | 数据同步方法、配置平台、交易平台及数据同步系统 |
Non-Patent Citations (1)
Title |
---|
WXYH_00: "RabbitMQ自动扩展消费者源码分析", 《CSDN博客》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220245143A1 (en) * | 2019-10-24 | 2022-08-04 | Huawei Technologies Co., Ltd. | Data Synchronization Method and Device |
CN111522832A (zh) * | 2020-05-09 | 2020-08-11 | 深圳市铭墨科技有限公司 | 一种大数据实时更新方法、系统、设备和存储介质 |
CN111522832B (zh) * | 2020-05-09 | 2024-04-19 | 深圳市铭墨科技有限公司 | 一种大数据实时更新方法、系统、设备和存储介质 |
CN114547033A (zh) * | 2022-02-22 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种关键产品数据的管理方法、系统、设备和存储介质 |
CN114547033B (zh) * | 2022-02-22 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 一种关键产品数据的管理方法、系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110442564B (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844198B (zh) | 一种分布式调度自动化测试平台及方法 | |
CN110442564A (zh) | 增量数据校验方法、存储介质 | |
CN103905537A (zh) | 分布式环境下管理工业实时数据存储的系统 | |
CN102413156B (zh) | 一种分布式数据存储系统和方法 | |
CN102968442A (zh) | 网络地图瓦片服务聚合的方法和系统 | |
CN108197155A (zh) | 信息数据同步方法、装置及计算机可读存储介质 | |
CN103259870A (zh) | 一种Web应用服务方法和系统 | |
CN110099084B (zh) | 一种保证存储服务可用性的方法、系统及计算机可读介质 | |
CN105635311A (zh) | 一种云管理平台中资源池信息同步的方法 | |
CN101815095A (zh) | 一种san存储资源统一管理和分配方法 | |
CN110399207A (zh) | 分布式存储系统中定时任务处理方法、系统及存储介质 | |
CN104144202A (zh) | Hadoop分布式文件系统的访问方法、系统和装置 | |
CN106202082A (zh) | 组装基础数据缓存的方法及装置 | |
WO2017181430A1 (zh) | 分布式系统的数据库复制方法及装置 | |
CN108965054A (zh) | 一种客户端与服务端数据快速交互方法 | |
CN102081757A (zh) | 一种报表制作方法及其系统 | |
CN114398359A (zh) | 订单数据自动化对账方法、装置及存储介质 | |
WO2024051454A1 (zh) | 处理事务日志的方法及装置 | |
CN108234551A (zh) | 一种数据处理方法及装置 | |
CN107025257A (zh) | 一种事务处理方法及装置 | |
CN103686300A (zh) | 业务指南的同步方法及系统 | |
CN116304390B (zh) | 时序数据处理方法、装置、存储介质及电子设备 | |
CN112199432A (zh) | 一种基于分布式的高性能数据etl装置及控制方法 | |
CN107844566A (zh) | 一种dump控制方法及其系统 | |
CN102541906B (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 |