数据一致性检查方法、装置、计算机设备和介质与流程

文档序号:29829687发布日期:2022-04-27 11:54阅读:144来源:国知局
数据一致性检查方法、装置、计算机设备和介质与流程

1.本公开涉及数据处理领域,尤其涉及数据一致性检查方法、装置、计算机设备和介质。


背景技术:

2.随着互联网大数据时代的快速发展,企业在运营发展过程中会产生一系列的数据,可以称之为“数据资产”。数据资产通常存放在数据库中,当数据库发生迁移或者数据库异地恢复时,确定源数据库与目标数据库中的数据(迁移后的数据库或者备份后的数据库)的一致性是非常有必要的。
3.现有技术通常通过表名、字段名以及实体-联系图等设计辅助资料对数据的一致性进行检查,工作量庞大且效率低下。同时,还需要数据处理人员在对数据集理解的基础上,对数据集进行人工检查分析,工作质量受限于数据处理人员的专业业务能力,准确性低且效率不高。
4.随着数据资产中数据规模的增大以及复杂度的提高,现有技术已经不能满足数据一致性检查的需求。


技术实现要素:

5.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据一致性检查方法、装置、计算机设备和介质。
6.第一方面,本公开提供了一种数据一致性检查方法,包括:
7.获取源数据库对应的第一待检查任务,其中,所述第一待检查任务中包括多个待检查集合;
8.获取目标数据库对应的第二待检查任务,其中,所述第二待检查任务中包括多个待检查集合;
9.根据协程组件的数量和所述第二待检查任务中包括的待检查集合的目标数量,从所述第二待检查任务中包括的多个待检查集合中确定每个协程组件对应的目标待检查集合;
10.针对所有协程组件中的每个协程组件,通过当前协程组件对与所述当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,其中,所述第二内容为在所述第一待检查任务中与所述目标待检查集合对应的待检查集合中包含的内容。
11.可选的,所述根据协程组件的数量和所述第二待检查任务中包括的待检查集合的目标数量,从所述第二待检查任务中包括的多个待检查集合中确定每个协程组件对应的目标待检查集合,包括:
12.确定所述协程组件的数量;
13.根据所述协程组件的数量以及所述目标数量的大小关系,确定每个协程组件对应
的目标待检查集合。
14.可选的,所述根据所述协程组件的数量以及所述目标数量的大小关系,确定每个协程组件对应的目标待检查集合,包括:
15.若所述协程组件的数量大于所述目标数量,则根据所述目标数量从所有协程组件中确定预设个数的目标协程组件,其中,所述预设个数与所述目标数量相同;
16.根据所述第二待检查任务中包括的待检查集合的排列顺序,确定每个目标协程组件分别对应的第一目标待检查集合;
17.根据所述第一目标待检查集合中包含的文档个数,从所述第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合,其中,所述第一空闲协程组件为所有协程组件中除了目标协程组件外的协程组件。
18.可选的,所述从所述第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合之后,还包括:
19.获取所述第二目标待检查集合中包含的文档总数;
20.根据所述文档总数以及所述协程组件的数量,确定所述第一空闲协程组件协助检查的文档数量;
21.确定所述第二目标待检查集合的文档检查终点;
22.根据所述文档数量和所述文档检查终点,确定文档跳过检查点;
23.根据所述文档跳过检查点和所述文档检查终点,确定所述第一空闲协程组件协助检查的文档的起始文档和结束文档。
24.可选的,所述方法还包括:
25.若所述协程组件的数量小于或者等于所述目标数量,则确定每个协程组件分别对应的第三目标待检查集合;
26.在所述第三目标待检查集合中包含的所有文档被检查完成后,将检查所述第三目标待检查集合的协程组件确定为第二空闲协程组件;
27.根据所述第二待检查任务中包括的待检查集合中除了所述第三目标待检查集合外的剩余待检查集合的排列顺序,确定所述第二空闲协程组件对应的第四目标待检查集合。
28.可选的,所述通过当前协程组件对与所述当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,包括:
29.若通过所述当前协程组件确定所述第一内容与所述第二内容不一致,则确定对应的检查结果为不通过。
30.可选的,所述方法还包括:
31.确定所有目标待检查集合中包含的所有文档是否被检查完成;
32.若是,则确定所有目标待检查集合被检查完成,并停止所有协程组件的工作。
33.第二方面,本公开提供了一种数据一致性检查装置,包括:
34.第一获取模块,用于获取源数据库对应的第一待检查任务,其中,所述第一待检查任务中包括多个待检查集合;
35.第二获取模块,用于获取目标数据库对应的第二待检查任务,其中,所述第二待检查任务中包括多个待检查集合;
36.集合确定模块,用于根据协程组件的数量和所述第二待检查任务中包括的待检查集合的目标数量,从所述第二待检查任务中包括的多个待检查集合中确定每个协程组件对应的目标待检查集合;
37.结果获取模块,用于针对所有协程组件中的每个协程组件,通过当前协程组件对与所述当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,其中,所述第二内容为在所述第一待检查任务中与所述目标待检查集合对应的待检查集合中包含的内容。
38.可选的,集合确定模块包括:
39.数量确定单元,用于确定所述协程组件的数量;
40.目标集合确定单元,用于根据所述协程组件的数量以及所述目标数量的大小关系,确定每个协程组件对应的目标待检查集合。
41.可选的,目标集合确定单元,具体用于:
42.若所述协程组件的数量大于所述目标数量,则根据所述目标数量从所有协程组件中确定预设个数的目标协程组件,其中,所述预设个数与所述目标数量相同;
43.根据所述第二待检查任务中包括的待检查集合的排列顺序,确定每个目标协程组件分别对应的第一目标待检查集合;
44.根据所述第一目标待检查集合中包含的文档个数,从所述第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合,其中,所述第一空闲协程组件为所有协程组件中除了目标协程组件外的协程组件。
45.可选的,所述装置还包括:文档确定模块,用于从所述第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合之后,获取所述第二目标待检查集合中包含的文档总数;根据所述文档总数以及所述协程组件的数量,确定所述第一空闲协程组件协助检查的文档数量;确定所述第二目标待检查集合的文档检查终点;根据所述文档数量和所述文档检查终点,确定文档跳过检查点;根据所述文档跳过检查点和所述文档检查终点,确定所述第一空闲协程组件协助检查的文档的起始文档和结束文档。
46.可选的,目标集合确定单元,还具体用于:
47.若所述协程组件的数量小于或者等于所述目标数量,则确定每个协程组件分别对应的第三目标待检查集合;
48.在所述第三目标待检查集合中包含的所有文档被检查完成后,将检查所述第三目标待检查集合的协程组件确定为第二空闲协程组件;
49.根据所述第二待检查任务中包括的待检查集合中除了所述第三目标待检查集合外的剩余待检查集合的排列顺序,确定所述第二空闲协程组件对应的第四目标待检查集合。
50.可选的,结果获取模块,具体用于:
51.针对所有协程组件中的每个协程组件,若通过所述当前协程组件确定所述第一内容与所述第二内容不一致,则确定对应的检查结果为不通过。
52.可选的,所述装置还包括:
53.判断模块,用于确定所有目标待检查集合中包含的所有文档是否被检查完成;
54.停止模块,用于若是,则确定所有目标待检查集合被检查完成,并停止所有协程组
件的工作。
55.第三方面,本公开还提供了一种计算机设备,包括:
56.一个或多个处理器;
57.存储装置,用于存储一个或多个程序,
58.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例中的任一种所述的数据一致性检查方法。
59.第四方面,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例中的任一种所述的数据一致性检查方法。
60.本公开实施例提供的技术方案与现有技术相比具有如下优点:首先获取源数据库对应的第一待检查任务,接着获取目标数据库对应的第二待检查任务,然后根据协程组件的数量和第二待检查任务中包括的待检查集合的目标数量,从第二待检查任务中包括的多个待检查集合中确定每个协程组件对应的目标待检查集合,最后针对所有协程组件中的每个协程组件,通过当前协程组件对与当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,其中,第二内容为在第一待检查任务中与目标待检查集合对应的待检查集合中包含的内容,通过上述方法能够对待检查任务中的所有待检查集合进行数据一致性检查,检查的更全面且有利于提高检查的效率。
附图说明
61.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
62.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
63.图1是本公开实施例提供的一种数据一致性检查方法的流程示意图;
64.图2是本公开实施例提供的另一种数据一致性检查方法的流程示意图;
65.图3是本公开实施例提供的一种数据一致性检查装置的结构示意图;
66.图4是本公开实施例提供的一种计算机设备的结构示意图。
具体实施方式
67.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
68.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
69.图1是本公开实施例提供的一种数据一致性检查方法的流程示意图。本实施例可适用于在数据库发生迁移或者数据库异地恢复时,对源数据库与目标数据库中的数据进行一致性检查的情况。本实施例方法可由数据一致性检查装置来执行,该装置可采用硬件/或软件的方式来实现,并可配置于计算机设备中;其中,计算机设备可以是服务器。
70.如图1所示,该方法具体包括如下:
71.s110,获取源数据库对应的第一待检查任务,其中,第一待检查任务中包括多个待检查集合。
72.其中,源数据库可以为迁移前的数据库或者数据库异地恢复前的数据库。源数据库包括但不限于实例数据库。第一待检查任务可以包括源数据库(例如数据库a)对应的待检查数据库、每个待检查数据库中包括的待检查集合以及每个待检查集合中包括的文档等。待检查数据库可以包括源数据库中待检查数据库的名称、待检查数据库的数量以及其他有关待检查数据库的信息等。待检查集合可以包括源数据库中待检查数据库中待检查集合的名称、待检查集合的数量以及其他有关待检查集合的信息等。第一待检查任务中待检查数据库和每个待检查数据库中包括的待检查集合可以根据实际情况确定,也可以预先设置好,例如,第一待检查任务中的所有或者部分数据库都可以作为待检查数据库,每个待检查数据库中包括的所有或者部分集合都可以作为待检查集合。
73.为了对源数据库与目标数据库中的数据进行一致性检查,本实施例中通过go语言编写了数据一致性检查工具,通过该工具进行数据一致性检查,在检查时,需要获取源数据库对应的第一待检查任务,具体可以通过该工具从源数据库中读取第一待检查任务。
74.s120,获取目标数据库对应的第二待检查任务,其中,第二待检查任务中包括多个待检查集合。
75.其中,目标数据库可以为迁移后得到的数据库或者数据库异地恢复后得到的数据库。通常情况下,目标数据库的类型与源数据库的类型是相同的。第二待检查任务可以包括目标数据库(例如数据库b)对应的待检查数据库、每个待检查数据库中包括的待检查集合以及每个待检查集合中包括的文档等。待检查数据库可以包括目标数据库中待检查数据库的名称、待检查数据库的数量以及其他有关待检查数据库的信息等。待检查集合可以包括目标数据库中待检查数据库中待检查集合的名称、待检查集合的数量以及其他有关待检查集合的信息等。第二待检查任务中待检查数据库和每个待检查数据库中包括的待检查集合可以根据实际情况确定,也可以预先设置好,例如,第二待检查任务中的所有或者部分数据库都可以作为待检查数据库,每个待检查数据库中包括的所有或者部分集合都可以作为待检查集合。
76.为了对源数据库与目标数据库中的数据进行一致性检查,本实施例中通过数据一致性检查工具进行检查时,需要获取目标数据库对应的第二待检查任务,具体可以通过该工具从目标数据库中读取第二待检查任务。
77.s130,根据协程组件的数量和第二待检查任务中包括的待检查集合的目标数量,从第二待检查任务中包括的多个待检查集合中确定每个协程组件对应的目标待检查集合。
78.其中,协程组件可以理解为数据一致性检查工具设置的提供并发操作能力的程序组件,主要用于对第二待检查任务中包含的内容和第一待检查任务中对应的内容是否一致进行检查。目标待检查集合可以理解为协程组件将要检查的待检查集合。目标数量即为第二待检查任务中包括的待检查集合的总个数。
79.在获取到第一待检查任务和第二待检查任务之后,根据协程组件的数量和第二待检查任务中包括的待检查集合的目标数量,能够从第二待检查任务中包括的多个待检查集合中为每个协程组件分配对应的目标待检查集合,即:确定每个协程组件将要检查的待检
查集合,可以是多个协程组件检查一个目标待检查集合,也可以是一个协程组件检查一个目标待检查集合,还可以是其他情况,本实施例不作具体限制。
80.s140,针对所有协程组件中的每个协程组件,通过当前协程组件对与当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,其中,第二内容为在第一待检查任务中与目标待检查集合对应的待检查集合中包含的内容。
81.其中,第一内容可以理解为与当前协程组件对应的目标待检查集合中包含的所有文档有关的内容,例如文档名称、文档个数以及文档中的内容等。第二内容可以理解为在第一待检查任务中与目标待检查集合对应的待检查集合中包含的所有文档有关的内容。
82.确定了每个协程组件对应的目标待检查集合之后,由于协程组件的数量可能较多,那么针对所有协程组件中的每个协程组件,先根据当前协程组件对应的目标待检查集合的名称、编号或者其他能够代表目标待检查集合的信息,在第一待检查任务中包含的所有待检查集合中查询到与该名称、编号或者其他能够代表目标待检查集合的信息相同的待检查集合,即:得到第一待检查任务中与目标待检查集合对应的待检查集合。然后通过当前协程组件对与当前协程组件对应的目标待检查集合中包含的第一内容,以及,在第一待检查任务中与该目标待检查集合对应的待检查集合中包含的第二内容进行数据一致性检查,具体可以是对第一内容和第二内容是否相同进行检查,在数据一致性检查之后,就得到了对应的检查结果。每个协程组件都可以对应一个检查结果,那么将所有的检查结果进行汇总,就能够得到总的检查结果,即第一待检查任务与第二待检查任务的检查结果。
83.在本实施例中,首先获取源数据库对应的第一待检查任务,接着获取目标数据库对应的第二待检查任务,然后根据协程组件的数量和第二待检查任务中包括的待检查集合的目标数量,从第二待检查任务中包括的多个待检查集合中确定每个协程组件对应的目标待检查集合,最后针对所有协程组件中的每个协程组件,通过当前协程组件对与当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,其中,第二内容为在第一待检查任务中与目标待检查集合对应的待检查集合中包含的内容,通过上述方法能够对待检查任务中的所有待检查集合进行数据一致性检查,检查的更全面且有利于提高检查的效率。
84.在一些实施例中,可选的,所述针对所有协程组件中的每个协程组件,通过当前协程组件对与所述当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果之前,还可以具体包括:
85.针对所有协程组件中的每个协程组件,通过当前协程组件对第二待检查任务中目标数据库对应的待检查数据库的名称和数量与第一待检查任务中源数据库中对应的待检查数据库的名称和数量进行数据一致性检查,以及对目标数据库对应的每个待检查数据库中包括的待检查集合的名称和数量与第一待检查任务中源数据库中对应的每个待检查数据库中包括的待检查集合的名称和数量进行数据一致性检查,得到初始检查结果。
86.本实施例中,通过上述检查,能够进一步提高数据一致性检查结果的准确性,使得数据一致性检查的过程中更全面,避免遗漏检查的内容。
87.在一些实施例中,可选的,所述通过当前协程组件对与所述当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,可
以具体包括:
88.若通过所述当前协程组件确定所述第一内容与所述第二内容不一致,则确定对应的检查结果为不通过。
89.具体的,由于目标待检查集合以及第一待检查任务中与目标待检查集合对应的待检查集合中可能包含了很多内容,即多个文档有关的内容,因此通过当前协程组件对第一内容以及第二内容进行一致性检查,如果检查时发现至少一个文档的文档内容不一致,则确定对应的检查结果为不通过。
90.本实施例中,通过上述方法确定检查结果为不通过,简单快捷,能够节省时间。
91.进一步的,在确定对应的检查结果为不通过时,还可以输出该检查结果,并且检查结果中可以包括目标待检查集合中的文档个数、一致文档的个数、不一致文档的个数以及不一致文档的标识符,例如,不一致文档的名称或者不一致文档的身份标识号(identity document,简称id)等。
92.本实施例中,通过在检查结果为不通过时,输出目标待检查集合中的文档个数、一致文档的个数、不一致文档的个数以及不一致文档的标识符,能够便于用户快速定位不一致的文档,以便对不一致的文档进行修改,提高用户的使用体验。
93.在一些实施例中,可选的,所述方法还可以具体包括:
94.确定所有目标待检查集合中包含的所有文档是否被检查完成;
95.若是,则确定所有目标待检查集合被检查完成,并停止所有协程组件的工作。
96.本实施例中,在通过协程组件对对应的目标待检查集合和第一待检查任务中对应的待检查集合进行数据一致性检查时,需要确定所有目标待检查集合中包含的所有文档是否被检查完成,如果所有文档被检查完成,则说明所有目标待检查集合均被检查完成,此时应该停止所有协程组件的工作,避免协程组件继续运行造成资源的浪费;如果有文档未被检查完成,则说明目标待检查集合未被检查完成,此时需要通过检查该未被检查完成的文档的组件继续对该未被检查完成的文档进行检查,直至所有文档均被检查完成后,再停止所有协程组件的工作,从而达到节约资源的目的。
97.图2是本公开实施例提供的另一种数据一致性检查方法的流程示意图。本实施例是在上述实施例的基础上进行优化。可选的,本实施例对确定每个协程组件对应的目标待检查集合的过程进行详细的解释说明。如图2所示,该方法具体包括如下:
98.s210,获取源数据库对应的第一待检查任务,其中,第一待检查任务中包括多个待检查集合。
99.s220,获取目标数据库对应的第二待检查任务,其中,第二待检查任务中包括多个待检查集合。
100.s230,确定协程组件的数量。
101.其中,协程组件的数量可以是在编写数据一致性检查工具时已经设置好的,该数量可以根据实际需求确定,例如可以是5个,本实施例不做具体限制。
102.具体的,通过查询数据一致性检查工具对应的编码文件,能够确定协程组件的数量。
103.s240,根据协程组件的数量以及第二待检查任务中包括的待检查集合的目标数量的大小关系,确定每个协程组件对应的目标待检查集合。
104.在确定了协程组件的数量之后,能够对协程组件的数量和第二待检查任务中包括的待检查集合的目标数量进行比较,得到二者的大小关系,根据该大小关系确定每个协程组件对应的目标待检查集合,即:根据大小关系,确定每个协程组件对应检查的目标待检查集合,保证每个协程组件都有各自的检查任务,避免出现处于空闲状态的协程组件。
105.s250,针对所有协程组件中的每个协程组件,通过当前协程组件对与当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,其中,第二内容为在第一待检查任务中与目标待检查集合对应的待检查集合中包含的内容。
106.在本实施例中,首先获取源数据库对应的第一待检查任务以及获取目标数据库对应的第二待检查任务,接着确定协程组件的数量,然后根据协程组件的数量以及第二待检查任务中包括的待检查集合的目标数量的大小关系,确定每个协程组件对应的目标待检查集合,最后针对所有协程组件中的每个协程组件,通过当前协程组件对与当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,,通过协程组件的数量以及目标数量的大小关系,为每个协程组件分配要检查的目标待检查集合,简单高效,能够使得所有协程组件都有对应的检查任务,避免资源的浪费,同时能够对待检查任务中的所有待检查集合进行数据一致性检查,有利于提高检查的效率和检查结果的准确性。
107.在本实施例中,可选的,所述根据所述协程组件的数量以及所述目标数量的大小关系,确定每个协程组件对应的目标待检查集合,可以具体包括:
108.若所述协程组件的数量大于所述目标数量,则根据所述目标数量从所有协程组件中确定预设个数的目标协程组件,其中,所述预设个数与所述目标数量相同;
109.根据所述第二待检查任务中包括的待检查集合的排列顺序,确定每个目标协程组件分别对应的第一目标待检查集合;
110.根据所述第一目标待检查集合中包含的文档个数,从所述第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合,其中,所述第一空闲协程组件为所有协程组件中除了目标协程组件外的协程组件。
111.具体的,如果协程组件的数量大于目标数量,则从所有协程组件中选择与目标数量相同的预设个数的协程组件作为目标协程组件,使得第二待检查任务中包括的每个待检查集合都有相应的协程组件来检查,具体可以根据第二待检查任务中包括的待检查集合的排列顺序,确定每个目标协程组件分别对应的第一目标待检查集合。由于第一目标待检查集合中包含的文档个数越多,则检查过程中可能会更耗时,因此根据第一目标待检查集合中包含的文档个数,从第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合,具体可以是将第一目标待检查集合中包含的文档个数最多的第一目标待检查集合确定为第一空闲协程组件协助检查的第二目标待检查集合。
112.示例性的,假设协程组件的数量为5,第二待检查任务中包括的待检查集合的目标数量为4,且每个待检查集合中包含的文档个数不同,此时可以将协程组件中的前4个作为目标协程组件,目标协程组件可以是协程组件中的任意四个,本实施例不限制。然后根据4个待检查集合的排列顺序,为每个目标协程组件分配一个对应的第一目标待检查集合,例如:协程组件1对应的第一目标待检查集合可以为待检查集合1,协程组件2对应的第一目标
待检查集合可以为待检查集合2,

,协程组件4对应的第一目标待检查集合可以为待检查集合4。由于协程组件5为空闲协程组件,此时根据4个待检查集合中包含的文档个数,可以将包含文档最多的待检查集合作为协程组件5对应的第一目标待检查集合。
113.本实施例中,在协程组件的数量大于目标数量时,通过上述方法确定每个目标协程组件分别对应的目标待检查集合,简单高效,从而有利于提高后续数据一致性检查过程的效率。
114.在本实施例中,可选的,所述从所述第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合之后,还包括:
115.获取所述第二目标待检查集合中包含的文档总数;
116.根据所述文档总数以及所述协程组件的数量,确定所述第一空闲协程组件协助检查的文档数量;
117.确定所述第二目标待检查集合的文档检查终点;
118.根据所述文档数量和所述文档检查终点,确定文档跳过检查点;
119.根据所述文档跳过检查点和所述文档检查终点,确定所述第一空闲协程组件协助检查的文档的起始文档和结束文档。
120.其中,当第二目标待检查集合被初次检查时文档检查终点为第二目标待检查集合中包含的文档总数,当第二目标待检查集合被协助检查时,文档检查终点会更新,具体可以根据文档跳过检查点进行更新。文档跳过检查点可以理解为第一空闲协程组件不需要检查的文档个数。
121.具体的,在从第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合之后,还需要获取第二目标待检查集合中包含的文档总数,通过将文档总数除以协程组件的数量的方法确定第一空闲协程组件协助检查的文档数量。接着根据第二目标待检查集合是初次检查还是被协助检查,确定第二目标待检查集合的文档检查终点,然后将文档检查终点与第一空闲协程组件协助检查的文档数量相减,得到文档跳过检查点,最后根据文档跳过检查点和文档检查终点,能够确定第一空闲协程组件协助检查的文档的起始文档和结束文档,第一空闲协程组件协助检查的文档即为:从起始文档至结束文档的所有文档。其中,起始文档为文档跳过检查点对应的文档的下一个文档,结束文档为文档检查终点对应的文档。
122.示例性的,假设协程组件的数量为5,分别为协程组件a、协程组件b、协程组件c、协程组件d和协程组件e,目标数量为1,即:第二待检查任务中包括的待检查集合为集合1,该集合1中有100万条文档。此时,假设协程组件a为目标协程组件,对应检查集合1,则协程组件b、协程组件c、协程组件d和协程组件e均为第一空闲协程组件,都协助检查集合1。首先,协程组件b开始协助检查,确定协助检查的文档数量为100万/5=20万条,文档检查终点为100万,文档跳过检查点为100万-20万=80万,则协程组件b对应检查第800001条到第100万条文档,并更新文档检查终点为80万;接着协程组件c开始协助检查,确定协助检查的文档数量为100万/5=20万条,文档检查终点为80万,文档跳过检查点为80万-20万=60万,则协程组件c对应检查第600001条到第80万条文档,并更新文档检查终点为60万;其次,协程组件d开始协助检查,确定协助检查的文档数量为100万/5=20万条,文档检查终点为60万,文档跳过检查点为60万-20万=40万,则协程组件d对应检查第400001条到第60万条文档,并
更新文档检查终点为40万;最后协程组件e开始协助检查,确定协助检查的文档数量为100万/5=20万条,文档检查终点为40万,文档跳过检查点为40万-20万=20万,协程组件e对应检查第200001条到第40万条文档,更新文档检查终点为20万。
123.本实施例中,通过确定第一空闲协程组件协助检查第二目标待检查集合中的哪些文档,能够提高工作效率,避免第一空闲协程组件与对应检查第二目标待检查集合的协程组件在检查过程中发生冲突,例如检查了已经检查过的文档或者检查了相同的文档等,从而造成资源的浪费。
124.在本实施例中,可选的,所述根据所述协程组件的数量以及所述目标数量的大小关系,确定每个协程组件对应的目标待检查集合,还可以具体包括:
125.若所述协程组件的数量小于或者等于所述目标数量,则确定每个协程组件分别对应的第三目标待检查集合;
126.在所述第三目标待检查集合中包含的所有文档被检查完成后,将检查所述第三目标待检查集合的协程组件确定为第二空闲协程组件;
127.根据所述第二待检查任务中包括的待检查集合中除了所述第三目标待检查集合外的剩余待检查集合的排列顺序,确定所述第二空闲协程组件对应的第四目标待检查集合。
128.具体的,如果协程组件的数量小于或者等于目标数量,则分别为每个协程组件分配对应的第三目标待检查集合,即:一个协程组件对应检查一个第三目标待检查集合。由于每个第三目标待检查集合中包含的文档个数可能不同,那么检查完成的时间可能也不同,当某一个第三目标待检查集合中包含的所有文档被检查完成后,此时检查该第三目标待检查集合的协程组件为空闲协程组件,因此将检查该第三目标待检查集合的协程组件确定为第二空闲协程组件。然后当协程组件的数量小于目标数量且第二待检查任务中包括的待检查集合除了所有第三目标待检查集合外的剩余待检查集合有多个时,根据剩余待检查集合的排列顺序,优选的,可以将剩余待检查集合中排列顺序最前的作为第二空闲协程组件对应的第四目标待检查集合,即:通过第二空闲协程组件协助检查该第四目标待检查集合;当协程组件的数量等于目标数量且第二待检查任务中包括的待检查集合除了该检查完成后的第三目标待检查集合外的剩余正在检查的第三目标待检查集合有多个时,根据剩余正在检查的第三目标待检查集合的排列顺序,优选的,可以将剩余正在检查的第三目标待检查集合中排列顺序最前的作为第二空闲协程组件对应的第四目标待检查集合。第二空闲协程组件协助检查该第四目标待检查集合中的哪些文档可以根据上面描述的方法确定,此处不再赘述。
129.本实施例中,在协程组件的数量小于或者等于目标数量时,通过上述方法确定每个目标协程组件分别对应的目标待检查集合,简单高效,能够避免协程组件处于空闲状态,从而有利于提高后续数据一致性检查过程的效率。
130.图3是本公开实施例提供的一种数据一致性检查装置的结构示意图;该装置配置于计算机设备中,可实现本技术任意实施例所述的数据一致性检查方法。该装置具体包括如下:
131.第一获取模块310,用于获取源数据库对应的第一待检查任务,其中,所述第一待检查任务中包括多个待检查集合;
132.第二获取模块320,用于获取目标数据库对应的第二待检查任务,其中,所述第二待检查任务中包括多个待检查集合;
133.集合确定模块330,用于根据协程组件的数量和所述第二待检查任务中包括的待检查集合的目标数量,从所述第二待检查任务中包括的多个待检查集合中确定每个协程组件对应的目标待检查集合;
134.结果获取模块340,用于针对所有协程组件中的每个协程组件,通过当前协程组件对与所述当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,其中,所述第二内容为在所述第一待检查任务中与所述目标待检查集合对应的待检查集合中包含的内容。
135.在本实施例中,可选的,集合确定模块330包括:
136.数量确定单元,用于确定所述协程组件的数量;
137.目标集合确定单元,用于根据所述协程组件的数量以及所述目标数量的大小关系,确定每个协程组件对应的目标待检查集合。
138.在本实施例中,可选的,目标集合确定单元,具体用于:
139.若所述协程组件的数量大于所述目标数量,则根据所述目标数量从所有协程组件中确定预设个数的目标协程组件,其中,所述预设个数与所述目标数量相同;
140.根据所述第二待检查任务中包括的待检查集合的排列顺序,确定每个目标协程组件分别对应的第一目标待检查集合;
141.根据所述第一目标待检查集合中包含的文档个数,从所述第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合,其中,所述第一空闲协程组件为所有协程组件中除了目标协程组件外的协程组件。
142.在本实施例中,可选的,所述装置还包括:文档确定模块,用于从所述第一目标待检查集合中确定第一空闲协程组件协助检查的第二目标待检查集合之后,获取所述第二目标待检查集合中包含的文档总数;根据所述文档总数以及所述协程组件的数量,确定所述第一空闲协程组件协助检查的文档数量;确定所述第二目标待检查集合的文档检查终点;根据所述文档数量和所述文档检查终点,确定文档跳过检查点;根据所述文档跳过检查点和所述文档检查终点,确定所述第一空闲协程组件协助检查的文档的起始文档和结束文档。
143.在本实施例中,可选的,目标集合确定单元,还具体用于:
144.若所述协程组件的数量小于或者等于所述目标数量,则确定每个协程组件分别对应的第三目标待检查集合;
145.在所述第三目标待检查集合中包含的所有文档被检查完成后,将检查所述第三目标待检查集合的协程组件确定为第二空闲协程组件;
146.根据所述第二待检查任务中包括的待检查集合中除了所述第三目标待检查集合外的剩余待检查集合的排列顺序,确定所述第二空闲协程组件对应的第四目标待检查集合。
147.在本实施例中,可选的,结果获取模块,具体用于:
148.针对所有协程组件中的每个协程组件,若通过所述当前协程组件确定所述第一内容与所述第二内容不一致,则确定对应的检查结果为不通过。在本实施例中,可选的,所述
装置还包括:
149.判断模块,用于确定所有目标待检查集合中包含的所有文档是否被检查完成;
150.停止模块,用于若是,则确定所有目标待检查集合被检查完成,并停止所有协程组件的工作。
151.通过本公开实施例提供的数据一致性检查装置,首先获取源数据库对应的第一待检查任务,接着获取目标数据库对应的第二待检查任务,然后根据协程组件的数量和第二待检查任务中包括的待检查集合的目标数量,从第二待检查任务中包括的多个待检查集合中确定每个协程组件对应的目标待检查集合,最后针对所有协程组件中的每个协程组件,通过当前协程组件对与当前协程组件对应的目标待检查集合的第一内容以及第二内容进行数据一致性检查,得到对应的检查结果,,能够对待检查任务中的所有待检查集合进行数据一致性检查,检查的更全面且有利于提高检查的效率。
152.本公开实施例所提供的数据一致性检查装置可执行本公开任意实施例所提供的数据一致性检查方法,具备执行方法相应的功能模块和有益效果。
153.图4是本公开实施例提供的一种计算机设备的结构示意图。如图4所示,该计算机设备包括处理器410和存储装置420;计算机设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;计算机设备中的处理器410和存储装置420可以通过总线或其他方式连接,图4中以通过总线连接为例。
154.存储装置420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本公开实施例中的数据一致性检查方法对应的程序指令/模块。处理器410通过运行存储在存储装置420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现本公开实施例所提供的数据一致性检查方法。
155.存储装置420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
156.本实施例提供的一种计算机设备可用于执行上述任意实施例提供的数据一致性检查方法,具备相应的功能和有益效果。
157.本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现本公开实施例所提供的数据一致性检查方法。
158.当然,本公开实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本公开任意实施例所提供的数据一致性检查方法中的相关操作。
159.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本公开可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质
中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。
160.值得注意的是,上述数据一致性检查装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。
161.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
162.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1