CN112579591A - 数据校验方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据校验方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112579591A CN112579591A CN201910940335.4A CN201910940335A CN112579591A CN 112579591 A CN112579591 A CN 112579591A CN 201910940335 A CN201910940335 A CN 201910940335A CN 112579591 A CN112579591 A CN 112579591A
- Authority
- CN
- China
- Prior art keywords
- data
- primary key
- key value
- line data
- database
- 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
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据校验方法、装置、电子设备及计算机可读存储介质,该方法包括:从第一数据库随机获取第一数据表;从源数据库中查询所述第一数据表的主键值范围;根据预设的随机算法从所述主键值范围确定待校验的目标主键值;从源数据库中查询目标主键值对应的参考行数据,以及从第二数据库中查询目标主键值对应的待校验行数据,第二数据库作为源数据库的备份;对参考行数据与待校验行数据进行校验,若校验结果指示参考行数据与待校验行数据不一致,则利用参考行数据更新待校验行数据。采用本发明,可以减小对源数据库的性能消耗,提高源数据库与源数据库对应的备份数据库之间的数据一致性校验效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据校验方法、装置、电子设备及计算机可读存储介质。
背景技术
数据库作为存放数据的仓库,具有极大的存储空间,可以存储百万条、千万条甚至上亿条数据。为了防止数据丢失,可以为源数据库设置备份数据库以进行数据备份。备份数据库在备份源数据库的数据的过程中,需要将源数据库的数据与目标数据库的数据进行逐行比对,以进行一致性校验。在数据量较大时,逐行比对增大了对源数据库的性能消耗,并且比对时间过长也降低了源数据库与源数据库对应的备份数据库之间的数据一致性校验效率。
发明内容
本发明实施例提供了一种数据校验方法、装置、电子设备及计算机可读存储介质,可以减小对源数据库的性能消耗,提高源数据库与源数据库对应的备份数据库之间的数据一致性校验效率。
第一方面,本发明实施例提供了一种数据校验方法,包括:
从第一数据库随机获取第一数据表;
从源数据库中查询所述第一数据表的主键值范围;
根据预设的随机算法从所述主键值范围确定待校验的目标主键值;
从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,其中,所述第二数据库作为所述源数据库的备份;
对所述参考行数据与所述待校验行数据进行校验,若校验结果指示所述参考行数据与所述待校验行数据不一致,则利用所述参考行数据更新所述待校验行数据。
可选地,所述从第一数据库随机获取第一数据表之前,所述方法还包括:
获取所述源数据库包括的多个数据表的元数据;
将所述多个数据表的元数据存储到所述第一数据库中。
可选地,所述若校验结果指示所述参考行数据与所述待校验行数据不一致之后,所述利用所述参考行数据更新所述待校验行数据之前,所述方法还包括:
按照预设查询次数从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,并对所述参考行数据与所述待校验行数据进行校验;
若校验结果指示所述参考行数据与所述待校验行数据不一致的次数达到预设次数阈值,则执行所述利用所述参考行数据更新所述待校验行数据的步骤。
可选地,所述对所述参考行数据与所述待校验行数据进行校验,包括:
利用消息摘要算法计算所述参考行数据的摘要信息,并计算所述待校验行数据的摘要信息;
若所述参考行数据的摘要信息与所述待校验行数据的摘要信息不同,则确定所述参考行数据与所述待校验行数据的校验结果为所述参考行数据与所述待校验行数据不一致。
可选地,所述根据预设的随机算法从所述主键值范围确定待校验的目标主键值,包括:
根据预设的随机算法从所述主键值范围随机选取一个主键值;
将所述随机选取的主键值作为待校验的目标主键值。
可选地,所述主键值范围包括最小主键值和最大主键值,所述根据预设的随机算法从所述主键值范围确定待校验的目标主键值,包括:
采用预设的随机算法从所述最小主键值和所述最大主键值中随机选取一个主键值;
将所述随机选取的主键值作为待校验的目标主键值。
第二方面,本发明实施例提供了一种数据校验装置,包括:
选取单元,用于从第一数据库随机获取第一数据表;
查询单元,用于从源数据库中查询所述第一数据表的主键值范围;
确定单元,用于根据预设的随机算法从所述主键值范围确定待校验的目标主键值;
所述查询单元,还用于从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,其中,所述第二数据库作为所述源数据库的备份;
更新单元,用于对所述参考行数据与所述待校验行数据进行校验,若校验结果指示所述参考行数据与所述待校验行数据不一致,则利用所述参考行数据更新所述待校验行数据。
第三方面,本发明实施例提供了一种数据校验***,所述数据校验***包括多个数据校验装置,所述多个数据校验装置能够并发地执行如第一方面所述的方法。
第四方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面所述的方法。
第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面所述的方法。
综上所述,电子设备可以从第一数据库随机获取第一数据表,并从源数据库中查询该第一数据表的主键值范围;电子设备可以根据预设的随机算法从该主键值范围确定待校验的目标主键值,并从该源数据库中查询该目标主键值对应的参考行数据,以及从第二数据库中查询该目标主键值对应的待校验行数据,以对该参考行数据与该待校验行数据进行校验,若校验结果指示该参考行数据与该待校验行数据不一致,则利用该参考行数据更新该待校验行数据,从而减小对源数据库的性能消耗,提高源数据库与源数据库对应的备份数据库之间的数据一致性校验效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据校验***的结构示意图;
图2是本发明实施例提供的一种数据校验方法的流程示意图;
图3是本发明实施例提供的一种第一数据库包括的多个数据表的元数据的示意图;
图4是本发明实施例提供的另一种数据校验方法的流程示意图;
图5是本发明实施例提供的一种数据校验装置的结构示意图;
图6是本发明实施例提供的另一种数据校验***的结构示意图;
图7是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
请参阅图1,为本发明实施例提供的一种数据校验***的结构示意图。图1所示的数据校验***可以包括第一服务器10、第二服务器20、第三服务器30。其中,第一服务器10为第一数据库(如MySQL数据库)对应的服务器,第二服务器20为第二数据库对应的服务器。第三服务器30为源数据库对应的服务器。其中,该第二数据库可以作为该源数据库的备份。在一个实施例中,该第二数据库可以作为该源数据库的容灾备份。服务器10可以分别与第一服务器20、第三服务器30建立通信。在图1所示的数据校验***中,可以由第一服务器10、第二服务20、第三服务器30中的任一服务器来实现本发明实施例所述的一种数据校验方法。
下面将以由第二服务器20实现本发明实施例提供的一种数据校验方法来进行阐述。第一服务器10或第三服务器30实现本发明实施例提供的一种数据校验方法的过程在此不做赘述。
具体地,第二服务器20可以从第一数据库(第一服务器10对应的第一数据库)获取第一数据表,其中,该第一数据库可以包括源数据库中多个数据表的元数据。该多个数据表的元数据可以为该多个数据表中每个数据表的元数据,元数据可以唯一标识一个数据表。第二服务器20可以从源数据库(第三服务器30对应的源数据库)中查询该第一数据表的主键值范围。第二服务器20可以根据预设的随机算法从该主键值范围确定待校验的目标主键值,并从该源数据库中查询该目标主键值对应的参考行数据,以及从第二数据库(第二服务器20对应的第二数据库)中查询该目标主键值对应的待校验行数据。第二服务器20可以对该参考行数据与该待校验行数据进行校验,若校验结果指示该参考行数据与该待校验行数据不一致,则利用该参考行数据更新该待校验行数据。上述过程可以减小对源数据库的性能消耗,并减少对源数据库的业务影响,提高源数据库与源数据库对应的备份数据库之间的数据一致性校验效率。
在一种可选的实施方式中,第一数据库可以和第二数据库部署在同一服务器中。例如,可以将第一数据库和第二数据库都部署在第一服务器10或第二服务器20中。当然,第一数据库也可以和源数据库设置在同一服务器中。例如,可以将第一数据库和源数据都部署在第一服务器10或第三服务器30中。
请参阅图2,为本发明实施例提供的一种数据校验方法的流程示意图。该方法可以应用于电子设备。例如,该电子设备可以为前述服务器10、服务器20或服务器30中的任一服务器。具体地,该方法可以包括以下步骤:
S201、从第一数据库随机获取第一数据表。
本发明实施例中,电子设备可以从第一数据库随机获取第一数据表,该第一数据库可以包括多个数据表的元数据。采用该方式,无需每次进行数据校验时都从源数据库中取出数据,进而可以避免干扰源数据库的查询、写入性能。
其中,元数据可以包括库名、表名和主键(主键名)。在一个实施例中,该元数据还可以包括元数据标识、主键类型、创建时间、更新时间等信息。例如,该多个数据表的元数据可以包括如图3所示的10个元数据。对于第一个元数据,该第一个元数据包括的id(对应元数据标识)为1,table-name(对应表名)为access,primary-key-name(对应主题)为id,primary-key-type(对应主题类型)为int,created-at(对应创建时间)为2019-08-07 15:04:17,updated-at(对应更新时间)为2019-08-07 15:04:17。
在一个实施例中,在从第一数据库随机获取第一数据表之前,电子设备还可以获取该源数据库包括的多个数据表的元数据,并将该多个数据表的元数据存储到该第一数据库中。其中,该多个数据表的元数据可以是指该多个数据表中每个数据表的元数据。
S202、从源数据库中查询所述第一数据表的主键值范围。
S203、根据预设的随机算法从所述主键值范围确定待校验的目标主键值。
本发明实施例中,电子设备可以从该源数据库查询该第一数据表的主键值范围,并可以根据预设的随机算法从该主键值范围确定待校验的目标主键值。其中,该主键对应的主键值可以包括至少一个主键值。该至少一个可以为一个或多个。
在一个实施例中,电子设备可以根据第一数据库的元数据,如包括的库名、表名和主键从源数据库中查询所述第一数据表的主键值范围。
在一个实施例中,电子设备根据预设的随机算法从所述主键值范围确定待校验的目标主键值的方式可以为:电子设备根据预设的随机算法从该主键值范围随机选取一个主键值;电子设备将该随机选取的主键值作为待校验的目标主键值。例如,该主键为行号,该主键值范围包括1-100,电子设备可以从这100个行号中随机选取一个行号,假设随机选取的一个行号为行号99,则电子设备可以将行号99作为待校验的目标主键值。
在一个实施例中,该主键值范围包括最小主键值和最大主键值,电子设备根据预设的随机算法从该主键值范围确定待校验的目标主键值的方式可以为:电子设备采用预设的随机算法从该最小主键值和该最大主键值随机选取一个主键值;电子设备将该随机选取的主键值作为待校验的目标主键值。例如,该主键为行号,该主键值范围包括最小主键值1和最大主键值100,电子设备可以采用预设的随机算法从这两个主键值中随机选取一个主键值如100,电子设备可以将行号100作为待校验的目标主键值。
在一个实施例中,上述随机算法可以为随机抽样算法。
在一个实施例中,电子设备还可以采用预设的随机算法结合这两个主键值(最大主键值和最小主键值)随机生成一个主键值,电子设备可以将该随机生成的主键值作为待校验的目标主键值。在一个实施例中,该随机算法可以为随机值生成算法。
在一个实施例中,电子设备随机生成的主键值可能在最小主键值和最大主键值之间,也可能不在最小主键值和最大主键值之间。当该随机生成的主键值不在最小主键值和最大主键值之间时,该目标主键值可能在目标元数据对应的第一数据表中没有记录,电子设备可以继续执行下一次的校验任务,如再次执行从第一数据库随机获取第一数据表的步骤。
S204、从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,其中,所述第二数据库作为所述源数据库的备份。
本发明实施例中,电子设备可以从源数据库中查询该目标主键值对应的参考行数据,以及从第二数据库中查询该目标主键值对应的待校验行数据,以执行步骤S205。其中,该“第一”和“第二”不是用于表示顺序,而是用于区分不同数据库中查询出的该目标主键值对应的行数据。
在一个实施例中,电子设备从该源数据库中查询该目标主键值对应的参考行数据,以及从第二数据库中查询该目标主键值对应的待校验行数据的方式可以为:电子设备从该源数据库包括的该第一数据表中查询该目标主键值对应的参考行数据,以及从第二数据库包括的该第一数据表中查询该目标主键值对应的待校验行数据。例如,该目标主键值为99,电子设备从源数据库包括的该第一数据表中查询第99行对应的参考行数据,以及从该第二数据库包括的该第一数据表中查询第99行对应的待校验行数据。
S205、对所述参考行数据与所述待校验行数据进行校验,若校验结果指示所述参考行数据与所述待校验行数据不一致,则利用所述参考行数据更新所述待校验行数据。
本发明实施例中,电子设备可以对该参考行数据与该待校验行数据进行校验,若校验结果指示该参考行数据与该待校验行数据不一致,则利用该参考行数据更新该待校验行数据。相较于现有技术针对两个数据表采用逐行比对进行校验的方式,本发明实施例可以提高一致性校验效率。
在一个实施例中,电子设备对该参考行数据与该待校验行数据进行校验的方式可以为:电子设备利用消息摘要算法计算该参考行数据的摘要信息,并计算该待校验行数据的摘要信息;若该参考行数据的摘要信息与该待校验行数据的摘要信息不同,则电子设备确定该参考行数据与该待校验行数据的校验结果为该参考行数据与该待校验行数据不一致。本发明实施例通过消息摘要算法对参考行数据和待校验行数据进行校验,可以达到快速校验的目的。
在一个实施例中,上述消息摘要算法可以为MD5摘要算法。其中,MD5消息摘要算法,是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。此外,该消息摘要算法还可以为以下任一项:MD2、MD4、SHA-1、SHA-256、RIPEM128、RIPEM128,本发明实施例在此不一一赘述。
可见,图2所示的实施例中,电子设备可以从第一数据库随机获取第一数据表,并从源数据库中查询该第一数据表的主键值范围;电子设备可以根据预设的随机算法送该主键值范围确定待校验的目标主键值,并从该源数据库中查询该目标主键值对应的参考行数据,以及从第二数据库中查询该目标主键值对应的待校验行数据,以对该参考行数据与该待校验行数据进行校验,若校验结果指示该参考行数据与该待校验行数据不一致,则利用该参考行数据更新该待校验行数据,从而减小对源数据库的性能消耗,提高源数据库与源数据库对应的备份数据库之间的数据一致性校验效率。
请参阅图4,为本发明实施例提供的另一种数据校验方法的流程示意图。方法可以应用于电子设备。例如,该电子设备可以为前述服务器10、服务器20或服服务器30中的任一服务器。具体地,该方法可以包括以下步骤:
S401、从源数据库中随机获取第一数据表。
S402、从源数据库中查询所述第一数据表的主键值范围。
S403、根据预设的随机算法从所述主键值范围确定待校验的目标主键值。
S404、从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,其中,所述第二数据库作为所述源数据库的备份。
其中,步骤S401-S404可参见图2实施例中的步骤S201-S204,本发明实施例在此不做赘述。
S405、对所述参考行数据与所述待校验行数据进行校验,若校验结果指示所述参考行数据与所述待校验行数据不一致,则按照预设查询次数从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,并对所述参考行数据与所述待校验行数据进行校验。
S406、若校验结果指示所述参考行数据与所述待校验行数据不一致的次数达到预设次数阈值,则利用所述参考行数据更新所述待校验行数据。
本发明实施例中,电子设备对该参考行数据与该待校验行数据进行校验,若校验结果指示该参考行数据与该待校验行数据不一致,则按照预设查询次数次从该源数据库中查询该目标主键值对应的参考行数据,以及从第二数据库中查询该目标主键值对应的待校验行数据,并对该参考行数据与该待校验行数据进行校验。若校验结果指示该参考行数据与该待校验行数据不一致的次数达到预设次数阈值,则利用该参考行数据更新该待校验行数据。
在一个实施例中,电子设备利用该参考行数据更新该待校验行数据的方式可以为:电子设备利用该参考行数据替换该待校验行数据。
在一个实施例中,电子设备还可以对该参考行数据与该待校验行数据进行校验,若校验结果指示该参考行数据与该待校验行数据不一致,执行根据预设的随机算法从主键值范围确定待校验的目标主键值的步骤。电子设备可以检测校验结果指示该参考行数据与该待校验行数据不一致的次数;若校验结果指示该参考行数据与该待校验行数据不一致的次数达到指定次数阈值,则利用源数据库包括的第一数据表更新第二数据库包括的第一数据表。较多数据不一致时,直接利用源数据库包括的第一数据表更新第二数据库包括的第一数据表,能够有效地保障两个数据库的数据的一致性。
在一个实施例中,电子设备可以并发执行多个校验任务。具体地,电子设备可以创建多个协程,该多个协程中每个协程都可以执行本发明实施例提及的一种数据校验方法。其中,该多个协程中每个协程选取的目标元数据可以不同。协程是计算机程序的一类组件。推广了协作式多任务的子程序,允许执行被挂起和被恢复。通过协程并发的方式可以加快数据校验速度。
可见,图4所示的实施例中,电子设备可以对该参考行数据与该待校验行数据进行校验,若校验结果指示该参考行数据与该待校验行数据不一致,则电子设备可以按照预设查询次数从该源数据库中查询该目标主键值对应的参考行数据,以及从第二数据库中查询该目标主键值对应的待校验行数据,并对该参考行数据与该待校验行数据进行校验;若校验结果指示该参考行数据与该待校验行数据不一致的次数达到预设次数阈值,则电子设备可以利用该参考行数据更新该待校验行数据,以保障数据一致性校验过程的准确性,进而保障数据更新过程的可靠性。
请参阅图5,为本发明实施例提供的一种数据校验装置的结构示意图。该数据校验装置可以应用于电子设备。具体地,该数据校验装置可以包括:
选取单元501,用于从第一数据库随机获取第一数据表。
查询单元502,用于从源数据库中查询所述第一数据表的主键值范围。
确定单元503,用于根据预设的随机算法从所述主键值范围确定待校验的目标主键值。
查询单元502,还用于从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,其中,所述第二数据库作为所述源数据库的备份。
更新单元504,用于对所述参考行数据与所述待校验行数据进行校验,若校验结果指示所述参考行数据与所述待校验行数据不一致,则利用所述参考行数据更新所述待校验行数据。
在一种可选的实施方式中,所述数据校验装置还包括获取单元505。
在一种可选的实施方式中,获取单元505,用于在从第一数据库随机获取第一数据表之前,获取所述源数据库包括的多个数据表的元数据;将所述多个数据表的元数据存储到所述第一数据库中。
在一种可选的实施方式中,查询单元502,还用于若校验结果指示所述参考行数据与所述待校验行数据不一致之后,所述利用所述参考行数据更新所述待校验行数据之前,按照预设查询次数从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据。
在一种可选的实施方式中,更新单元504,还用于对所述参考行数据与所述待校验行数据进行校验;若校验结果指示所述参考行数据与所述待校验行数据不一致的次数达到预设次数阈值,则执行所述利用所述参考行数据更新所述待校验行数据的操作。
在一种可选的实施方式中,更新单元504对所述参考行数据与所述待校验行数据进行校验,具体为利用消息摘要算法计算所述参考行数据的摘要信息,并计算所述待校验行数据的摘要信息;若所述参考行数据的摘要信息与所述待校验行数据的摘要信息不同,则确定所述参考行数据与所述待校验行数据的校验结果为所述参考行数据与所述待校验行数据不一致。
在一种可选的实施方式中,确定单元503具体用于根据预设的随机算法从所述主键值范围随机选取一个主键值;将所述随机选取的主键值作为待校验的目标主键值。
在一种可选的实施方式中,所述主键值范围包括最小主键值和最大主键值,确定单元503具体用于采用预设的随机算法从所述最小主键值和所述最大主键值中随机选取一个主键值;将所述随机选取的主键值作为待校验的目标主键值。
可见,图5所示的实施例中,数据校验装置可以从第一数据库随机获取第一数据表,并从源数据库中查询该第一数据表的主键值范围;数据校验装置可以根据预设的随机算法送该主键值范围确定待校验的目标主键值,并从该源数据库中查询该目标主键值对应的参考行数据,以及从第二数据库中查询该目标主键值对应的待校验行数据,以对该参考行数据与该待校验行数据进行校验,若校验结果指示该参考行数据与该待校验行数据不一致,则利用该参考行数据更新该待校验行数据,从而减小对源数据库的性能消耗,提高源数据库与源数据库对应的备份数据库之间的数据一致性校验效率。
请参阅图6,为本发明实施例提供的另一种数据校验***的结构示意图。其中,该数据校验***可以包括多个数据校验装置601,其中,该多个数据处理装置601可以并发地执行图2及图4所示的数据校验方法,即该多个数据处理装置601可以并发地执行数据校验任务。
请参阅图7,为本发明实施例提供的一种电子设备的结构示意图。如图7所示的本实施例中的电子设备可以包括:一个或多个处理器701;一个或多个输入设备702,一个或多个输出设备703和存储器704。其中,所述一个或多个输入设备702和所述一个或多个输出设备703可以是可选的设备。上述处理器701、输入设备702、输出设备703和存储器704通过总线或其他方式连接。存储器704用于存储计算机程序,所述计算机程序包括程序指令,处理器701用于执行所述存储器704存储的程序指令。
在一个实施例中,该处理器701可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器,即微处理器或者任何常规的处理器。该存储器704可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。因此,在此对于处理器701和存储器704不作限定。
在本发明实施例中,由处理器701加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述相应实施例中的方法的相应步骤;具体实现中,计算机可读存储介质中的至少一条指令由处理器701加载并执行如下步骤:
从第一数据库随机获取第一数据表;
从源数据库中查询所述第一数据表的主键值范围;
根据预设的随机算法从所述主键值范围确定待校验的目标主键值;
从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,其中,所述第二数据库作为所述源数据库的备份;
对所述参考行数据与所述待校验行数据进行校验,若校验结果指示所述参考行数据与所述待校验行数据不一致,则利用所述参考行数据更新所述待校验行数据。
在一个实施例中,从第一数据库随机获取第一数据表之前,该至少一条指令由处理器701加载并还用于执行:
获取所述源数据库包括的多个数据表的元数据;
将所述多个数据表的元数据存储到所述第一数据库中。
在一个实施例中,若校验结果指示所述参考行数据与所述待校验行数据不一致之后,所述利用所述参考行数据更新所述待校验行数据之前,该至少一条指令由处理器701加载并还用于执行:
按照预设查询次数从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,并对所述参考行数据与所述待校验行数据进行校验;
若校验结果指示所述参考行数据与所述待校验行数据不一致的次数达到预设次数阈值,则执行所述利用所述参考行数据更新所述待校验行数据的步骤。
在一个实施例中,在对所述参考行数据与所述待校验行数据进行校验时,该至少一条指令由处理器701加载并具体用于执行:
利用消息摘要算法计算所述参考行数据的摘要信息,并计算所述待校验行数据的摘要信息;
若所述参考行数据的摘要信息与所述待校验行数据的摘要信息不同,则确定所述参考行数据与所述待校验行数据的校验结果为所述参考行数据与所述待校验行数据不一致。
在一个实施例中,在根据预设的随机算法从所述主键值范围确定待校验的目标主键值时,该至少一条指令由处理器701加载并具体用于执行:
根据预设的随机算法从所述主键值范围随机选取一个主键值;
将所述随机选取的主键值作为待校验的目标主键值。
在一个实施例中,所述主键值范围包括最小主键值和最大主键值,在根据预设的随机算法从所述主键值范围确定待校验的目标主键值时,该至少一条指令由处理器701加载并具体用于执行:
采用预设的随机算法从所述最小主键值和所述最大主键值中随机选取一个主键值;
将所述随机选取的主键值作为待校验的目标主键值。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明的部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种数据校验方法,其特征在于,包括:
从第一数据库随机获取第一数据表;
从源数据库中查询所述第一数据表的主键值范围;
根据预设的随机算法从所述主键值范围确定待校验的目标主键值;
从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,其中,所述第二数据库作为所述源数据库的备份;
对所述参考行数据与所述待校验行数据进行校验,若校验结果指示所述参考行数据与所述待校验行数据不一致,则利用所述参考行数据更新所述待校验行数据。
2.根据权利要求1所述的方法,其特征在于,所述从第一数据库随机获取第一数据表之前,所述方法还包括:
获取所述源数据库包括的多个数据表的元数据;
将所述多个数据表的元数据存储到所述第一数据库中。
3.根据权利要求1所述的方法,其特征在于,所述若校验结果指示所述参考行数据与所述待校验行数据不一致之后,所述利用所述参考行数据更新所述待校验行数据之前,所述方法还包括:
按照预设查询次数从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,并对所述参考行数据与所述待校验行数据进行校验;
若校验结果指示所述参考行数据与所述待校验行数据不一致的次数达到预设次数阈值,则执行所述利用所述参考行数据更新所述待校验行数据的步骤。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对所述参考行数据与所述待校验行数据进行校验,包括:
利用消息摘要算法计算所述参考行数据的摘要信息,并计算所述待校验行数据的摘要信息;
若所述参考行数据的摘要信息与所述待校验行数据的摘要信息不同,则确定所述参考行数据与所述待校验行数据的校验结果为所述参考行数据与所述待校验行数据不一致。
5.根据权利要求1所述的方法,其特征在于,所述根据预设的随机算法从所述主键值范围确定待校验的目标主键值,包括:
根据预设的随机算法从所述主键值范围随机选取一个主键值;
将所述随机选取的主键值作为待校验的目标主键值。
6.根据权利要求1所述的方法,其特征在于,所述主键值范围包括最小主键值和最大主键值,所述根据预设的随机算法从所述主键值范围确定待校验的目标主键值,包括:
采用预设的随机算法从所述最小主键值和所述最大主键值中随机选取一个主键值;
将所述随机选取的主键值作为待校验的目标主键值。
7.一种数据校验装置,其特征在于,包括:
选取单元,用于从第一数据库随机获取第一数据表;
查询单元,用于从源数据库中查询所述第一数据表的主键值范围;
确定单元,用于根据预设的随机算法从所述主键值范围确定待校验的目标主键值;
所述查询单元,还用于从所述源数据库中查询所述目标主键值对应的参考行数据,以及从第二数据库中查询所述目标主键值对应的待校验行数据,其中,所述第二数据库作为所述源数据库的备份;
更新单元,用于对所述参考行数据与所述待校验行数据进行校验,若校验结果指示所述参考行数据与所述待校验行数据不一致,则利用所述参考行数据更新所述待校验行数据。
8.一种数据校验***,其特征在于,所述数据校验***包括多个数据校验装置,所述多个数据校验装置能够并发地执行如权利要求1-6所述的方法。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910940335.4A CN112579591B (zh) | 2019-09-30 | 2019-09-30 | 数据校验方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910940335.4A CN112579591B (zh) | 2019-09-30 | 2019-09-30 | 数据校验方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579591A true CN112579591A (zh) | 2021-03-30 |
CN112579591B CN112579591B (zh) | 2023-06-16 |
Family
ID=75116216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910940335.4A Active CN112579591B (zh) | 2019-09-30 | 2019-09-30 | 数据校验方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579591B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391956A (zh) * | 2021-06-23 | 2021-09-14 | 中国工商银行股份有限公司 | 一种双园区的数据校验方法及装置 |
CN113392103A (zh) * | 2021-05-19 | 2021-09-14 | 华锐分布式(北京)技术有限公司 | 数据复制方法、装置、计算机设备和存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020204A (zh) * | 2012-12-05 | 2013-04-03 | 北京普泽天玑数据技术有限公司 | 一种对分布式顺序表进行多维区间查询的方法及其*** |
CN104252481A (zh) * | 2013-06-27 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 主从数据库一致性的动态校验方法和装置 |
US20160078085A1 (en) * | 2014-09-17 | 2016-03-17 | Futurewei Technologies, Inc. | Method and system for adaptively building and updating a column store database from a row store database based on query demands |
US20160188710A1 (en) * | 2014-12-29 | 2016-06-30 | Wipro Limited | METHOD AND SYSTEM FOR MIGRATING DATA TO NOT ONLY STRUCTURED QUERY LANGUAGE (NoSOL) DATABASE |
CN105989044A (zh) * | 2015-02-04 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种数据库校验方法及*** |
US9632878B1 (en) * | 2013-09-20 | 2017-04-25 | Amazon Technologies, Inc. | Verification of database table partitions during backup |
US9633051B1 (en) * | 2013-09-20 | 2017-04-25 | Amazon Technologies, Inc. | Backup of partitioned database tables |
CN106815326A (zh) * | 2016-12-28 | 2017-06-09 | 中国民航信息网络股份有限公司 | 一种检测无主键数据表一致性的***及方法 |
CN107092700A (zh) * | 2017-05-02 | 2017-08-25 | 山东浪潮通软信息科技有限公司 | 一种基于大数据量下批量导入数据的方法及装置 |
CN108153619A (zh) * | 2017-12-25 | 2018-06-12 | 杭州恩牛网络技术有限公司 | 一种数据校对方法和装置 |
CN109656930A (zh) * | 2018-12-27 | 2019-04-19 | 广州华多网络科技有限公司 | 数据查询方法、装置及*** |
CN109739831A (zh) * | 2018-11-23 | 2019-05-10 | 网联清算有限公司 | 数据库之间数据校验方法及装置 |
CN110222027A (zh) * | 2019-04-24 | 2019-09-10 | 福建天泉教育科技有限公司 | 数据迁移的数量校验方法及计算机可读存储介质 |
-
2019
- 2019-09-30 CN CN201910940335.4A patent/CN112579591B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020204A (zh) * | 2012-12-05 | 2013-04-03 | 北京普泽天玑数据技术有限公司 | 一种对分布式顺序表进行多维区间查询的方法及其*** |
CN104252481A (zh) * | 2013-06-27 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 主从数据库一致性的动态校验方法和装置 |
US9632878B1 (en) * | 2013-09-20 | 2017-04-25 | Amazon Technologies, Inc. | Verification of database table partitions during backup |
US9633051B1 (en) * | 2013-09-20 | 2017-04-25 | Amazon Technologies, Inc. | Backup of partitioned database tables |
US20160078085A1 (en) * | 2014-09-17 | 2016-03-17 | Futurewei Technologies, Inc. | Method and system for adaptively building and updating a column store database from a row store database based on query demands |
US20160188710A1 (en) * | 2014-12-29 | 2016-06-30 | Wipro Limited | METHOD AND SYSTEM FOR MIGRATING DATA TO NOT ONLY STRUCTURED QUERY LANGUAGE (NoSOL) DATABASE |
CN105989044A (zh) * | 2015-02-04 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种数据库校验方法及*** |
CN106815326A (zh) * | 2016-12-28 | 2017-06-09 | 中国民航信息网络股份有限公司 | 一种检测无主键数据表一致性的***及方法 |
CN107092700A (zh) * | 2017-05-02 | 2017-08-25 | 山东浪潮通软信息科技有限公司 | 一种基于大数据量下批量导入数据的方法及装置 |
CN108153619A (zh) * | 2017-12-25 | 2018-06-12 | 杭州恩牛网络技术有限公司 | 一种数据校对方法和装置 |
CN109739831A (zh) * | 2018-11-23 | 2019-05-10 | 网联清算有限公司 | 数据库之间数据校验方法及装置 |
CN109656930A (zh) * | 2018-12-27 | 2019-04-19 | 广州华多网络科技有限公司 | 数据查询方法、装置及*** |
CN110222027A (zh) * | 2019-04-24 | 2019-09-10 | 福建天泉教育科技有限公司 | 数据迁移的数量校验方法及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
曾艳梅等: "一种基于元数据静动态数据联合查询方法的研究与实现" * |
杨明等: "气象数据云数据存储技术及应用" * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392103A (zh) * | 2021-05-19 | 2021-09-14 | 华锐分布式(北京)技术有限公司 | 数据复制方法、装置、计算机设备和存储介质 |
CN113391956A (zh) * | 2021-06-23 | 2021-09-14 | 中国工商银行股份有限公司 | 一种双园区的数据校验方法及装置 |
CN113391956B (zh) * | 2021-06-23 | 2024-02-27 | 中国工商银行股份有限公司 | 一种双园区的数据校验方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112579591B (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
RU2551820C2 (ru) | Способ и устройство для проверки файловой системы на наличие вирусов | |
CN107633016B (zh) | 数据处理方法及装置和电子设备 | |
CN109002472B (zh) | 一种数据库差异的识别方法及装置 | |
US10049113B2 (en) | File scanning method and apparatus | |
CN112579591A (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
WO2023029731A1 (zh) | 区块链***中状态证明及执行区块的方法及装置 | |
US20140279946A1 (en) | System and Method for Automatic Integrity Checks in a Key/Value Store | |
CN108196975B (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
CN110765125B (zh) | 一种存储数据的方法及装置 | |
CN116401229A (zh) | 数据库的数据校验方法、装置及设备 | |
CN112783866B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN107122164B (zh) | 函数地址获取及应用其的方法、装置、设备及存储介质 | |
CN107704557B (zh) | 操作互斥数据的处理方法、装置、计算机设备和存储介质 | |
CN108255906B (zh) | 数据补录方法及装置 | |
CN112783954A (zh) | 数据访问方法、装置及服务器 | |
CN116720818B (zh) | 基于区块链的仓储处理方法、装置、计算机设备 | |
US9779110B2 (en) | Placement device, placement method and recording medium, that stores placement program information processing device | |
CN112306551B (zh) | 历史配置信息获取方法、***和装置 | |
US20240220648A1 (en) | Order-preserving encryption method and apparatus | |
US11100088B1 (en) | Bulk file verification | |
CN113177224B (zh) | 基于区块链的数据密封方法、装置、设备和存储介质 | |
US12026181B2 (en) | Network environment synchronization apparatus and method | |
CN114268540B (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 |