本发明专利申请是申请日为2016年07月20日、申请号为201610576517.4、名称为“一种数据校验方法和设备”的中国发明专利申请的分案申请。
本申请涉及计算机技术领域,尤其涉及一种数据校验方法和设备。
背景技术:
在分布式数据存储系统中,一个数据库作为主数据库,另一个数据库作为备份数据库,主数据库可以对外提供数据读写服务,备份数据库保持与主数据库之间的数据同步,并在主数据库出现故障时,备份数据库可以对外提供数据读写服务。
通常,主数据库在接收到数据并将数据进行存储时,可以将存储的数据同步存储至备份数据库中,这样,可以保证主数据库与备份数据库之间数据的一致。但是,在实际应用中,由于主数据库和备份数据库之间的数据同步操作存在延时性,或者某些原因(例如,数据库之间通信异常、备份数据库的硬件故障或软件故障)导致的备份数据库中的部分数据丢失或损坏,使得主数据库中的数据与备份数据库中的数据不一致。
在现有技术中,可以通过校验主数据库与备份数据库之间的数据一致性,解决主数据库和备份数据库之间数据不一致的问题。具体地,首先,可以将主数据库中存储的全部数据以及备份数据库中存储的全部数据进行对比;其次,确定备份数据库中丢失的数据;最后,将丢失的数据更新至备份数据库中。这样,可以保证主数据库中的数据与备份数据库中的数据一致。
但是,在实际应用中,由于主数据库(或备份数据库)中存储的数据比较多,因此,在将主数据库中存储的全部数据与备份数据库中存储的全部数据进行对比时,需要消耗大量的时间,导致在校验主数据库与备份数据库之间的数据一致性时效率比较低。
技术实现要素:
本申请实施例提供一种数据校验方法和设备,用于解决现有的在校验主数据库中的数据与备份数据库中的数据是否一致时效率比较低的问题。
本申请实施例提供一种数据校验方法,所述方法应用于分布式数据存储系统,所述方法包括:
获取第一数据库在设定时间内发生更新的第一数据,并确定所述第一数据的更新时间;
从第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据;
根据查找结果和所述第一数据的更新时间,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
本申请实施例提供一种数据校验设备,所述设备应用于分布式数据存储系统,所述设备包括:
获取单元,获取第一数据库在设定时间内发生更新的第一数据,并确定所述第一数据的更新时间;
查找单元,从第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据;
校验单元,根据所述查找单元的查找结果和所述第一数据的更新时间,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
本申请实施例采用的上述技术方案能够达到以下有益效果:
本申请实施例提供的技术方案,在校验两个数据库中的数据是否一致时,可以获取一个数据库在设定时间内发生更新的数据以及该数据的更新时间,并在另一个数据库中查找是否存在该数据,以便于确定另一个数据库是否在相同时间更新该数据,进而校验两个数据库中的数据是否一致。相对于现有技术中,根据数据库中的全部数据校验不同数据库中的数据是否一致,本申请实施例提供的技术方案,根据数据库中发生更新的数据校验不同数据库中的数据是否一致,使得校验过程中消耗的时间比较少,效率比较高。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种数据校验方法的流程示意图;
图2为本申请实施例提供的一种数据校验方法的流程示意图;
图3(a)为本申请实施例提供的一种数据校验方法的示意图;
图3(b)为本申请实施例提供的一种数据校验方法的示意图;
图3(c)为本申请实施例提供的一种数据校验方法的示意图;
图4为本申请实施例提供的一种数据校验设备的结构示意图。
具体实施方式
为了实现本申请的目的,本申请实施例中提供了一种数据校验方法和设备,获取第一数据库在设定时间内发生更新的第一数据,并确定所述第一数据的更新时间;从第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据;根据查找结果和所述第一数据的更新时间,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
在校验两个数据库中的数据是否一致时,可以获取一个数据库在设定时间内发生更新的数据以及该数据的更新时间,并在另一个数据库中查找是否存在该数据,以便于确定另一个数据库是否在相同时间更新该数据,进而校验两个数据库中的数据是否一致。相对于现有技术中,根据数据库中的全部数据校验不同数据库中的数据是否一致,本申请实施例提供的技术方案,根据数据库中发生更新的数据校验不同数据库中的数据是否一致,使得校验过程中消耗的时间比较少,效率比较高。
本申请实施例提供的技术方案,可以应用于分布式数据存储系统,在所述分布式数据存储系统中,包含一个主数据库以及至少一个备份数据库,其中,主数据库可以对外提供数据读写服务,在主数据库出现故障时,备份数据库可以对外提供数据读写服务,本申请实施例提供的技术方案,可以校验每一个备份数据库中的数据与主数据库中的数据是否一致。
在实际应用中,由于所述主数据库用于对外提供数据读写服务,备份数据库对所述主数据库中存储的数据进行备份,因此,在校验所述主数据库与所述备份数据库之间的数据一致性时,可以以主数据库中的数据为依据,校验备份数据库中的数据与主数据库中的数据是否一致。
除此之外,在本申请实施例中,还可以以备份数据库中的数据为依据,校验主数据库中的数据与备份数据库中的数据是否一致。
在本申请提供的技术方案中,所述第一数据库可以是主数据库,也可以是备份数据库,所述第二数据库是与所述第一数据库不同的数据库,在本申请实施例中,可以以所述第一数据库为主数据库,所述第二数据库为备份数据库为例进行说明。
需要说明的是,在本申请实施例中,可以按照设定的时间,循环校验所述第一数据库中的数据与所述第二数据库中的数据是否一致,这样,在所述设定时间之前,可以确定所述第一数据库中的数据与所述第二数据库中的数据一致,在所述设定时间内,可以根据在所述设定时间内所述第一数据库发生更新的数据与所述第二数据库发生更新的数据是否一致,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
下面结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
步骤101:获取第一数据库在设定时间内发生更新的第一数据,并确定所述第一数据的更新时间。
在步骤101中,在校验第一数据库中的数据与第二数据库中的数据是否一致时,可以获取所述第一数据库在设定时间内发生更新的数据,并确定所述第一数据库更新所述第一数据的时间。
所述第一数据库可以是主数据库,在本申请实施例中,可以以所述第一数据库中的数据为依据,校验所述第二数据库中的数据与所述第一数据库中的数据是否一致。
在校验所述第一数据库中的数据与所述第二数据库中的数据是否一致时,可以获取所述第一数据库在设定时间内发生更新的第一数据。在本申请实施例中,所述设定时间可以是一个时间点,也可以是一个时间段,不做具体限定,例如,所述设定时间是一个时间点,那么,可以获取所述第一数据库在某一设定时间点发生更新的第一数据,如果所述设定时间是一个时间段,那么,可以获取所述第一数据库在某一时间段内发生更新的第一数据。
所述设定时间可以根据所述第一数据库中数据的更新频率确定,例如,所述第一数据库中数据的更新频率比较快,那么,可以确定所述设定时间为某一较短的时间段,除此之外,所述设定时间还可以根据实际需要确定,这里也不做具体限定。
需要说明的是,本申请实施例中,由于获取的是所述第一数据库在设定时间内发生更新的第一数据,因此,获取的所述第一数据的数据量远小于所述第一数据库中存储的全部数据的数据量,例如,所述第一数据库在1个小时内发生更新的数据量比较大,那么,可以确定设定时间为一分钟,获取的所述第一数据为所述第一数据库在一分钟内发生更新的数据,这样,获取的数据量远小于所述第一数据库中存储的全部数据的数据量。
在实际应用中,在判断所述第一数据库中的数据与所述第二数据库中的数据是否一致时,判断的依据可以是所述第一数据库在设定时间内更新的数据项以及数据项中包含的数据内容,也可以是数据的更新时间,因此,本申请实施例中,在获取所述第一数据库在设定时间内更新的第一数据后,还可以确定所述第一数据的更新时间。
具体地,所述第一数据库在更新所述第一数据时,可以记录所述第一数据的更新时间,并将所述第一数据的更新时间与所述第一数据对应存储至所述第一数据库中,这样,在获取到所述第一数据时,可以根据所述第一数据,从所述第一数据库中确定所述第一数据的更新时间。
在记录所述第一数据的更新时间时,所述第一数据的更新时间的精度要小于所述第一数据库的更新频率,例如,所述第一数据库每隔1s更新一次数据,那么所述第一数据的更新时间的精度要小于1s,这样,可以区分不同数据的更新时间,保证数据校验的准确性。通常情况下,数据的更新时间的精度越高,数据校验的准确性越高。
步骤102:从第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据。
在步骤102中,在获取到所述第一数据库在设定时间内发生更新的第一数据后,可以根据获取的所述第一数据,从第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据,以便于确定所述第二数据库是否更新所述第一数据。
在本申请实施例中,所述第一数据中可以包含多个数据项,这里的数据项指的是所述第一数据中包含的不同的数据类别,例如,所述数据项可以是用户名,用户密码,等等,每一个数据项包含数据内容,例如,用户名中包含的用户使用的用户名a,用户密码中包含用户使用的密码b。
具体地,在从所述第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据时,可以将所述第一数据中包含的数据项与所述第二数据库中包含的数据项进行匹配,并根据匹配结果确定所述第二数据库中是否存在与所述第一数据中包含的数据项相同的第二数据。
除此之外,在实际应用中,还可以通过其他方法从所述第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据,这里不作具体限定。
在从所述第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据时,查找结果至少包含以下几种:
第一种结果:所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据;
第二种结果:所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据。
针对上述第一种结果,所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据,可以是所述第二数据库中不存在与所述第一数据中包含的任意一个数据项相同的第二数据,也可以是所述第二数据库中存在与所述第一数据中包含的若干个(小于所述第一数据包含的数据项的个数)数据项相同的第二数据。
例如,所述第一数据中包含的数据项为a、b、c和d,如果所述第二数据库中不存在数据项a、b、c和d,那么,可以确定所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据;如果所述第二数据库中只存在数据项a、b和c,那么,可以确定所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据。
针对上述第二种结果,所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据,指的是所述第二数据库中存在与所述第一数据中包含的每一个数据项相同的第二数据。
仍以上述所述第一数据中包含的数据项为a、b、c和d为例,如果所述第二数据库存在数据项a、b、c和d,那么,可以确定所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据。
从所述第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据后,可以根据查找结果,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
步骤103:根据查找结果和所述第一数据的更新时间,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
在步骤103中,可以根据上述步骤102中记载的查找结果以及所述第一数据库中所述第一数据的更新时间,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
具体地,可以分别针对步骤102中记载的两种查找结果,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
针对第一种结果:
当查找结果为所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据时,确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
从所述第二数据库中没有查找到与所述第一数据中包含的数据项相同的第二数据,可以确定所述第二数据库中的数据与所述第一数据库中的数据不一致。
针对第二种结果:
根据查找结果和所述第一数据的更新时间,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致,包括:
当查找结果为所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据时,确定所述第二数据的更新时间;
在确定所述第一数据的更新时间与所述第二数据的更新时间不一致时,确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
从所述第二数据库中查找到与所述第一数据中包含的数据项相同的第二数据,可以说明,所述第二数据库中包含所述第一数据中的数据项,此时,为了校验所述第一数据库中的数据与所述第二数据库中的数据是否一致,可以进一步确定所述第二数据的更新时间。
具体地,所述第二数据库在更新所述第二数据时,可以记录所述第二数据的更新时间,并将所述第二数据以及所述第二数据的更新时间对应存储至所述第二数据库中,这样,在查找到所述第二数据后,可以根据所述第二数据,从所述第二数据库中确定所述第二数据的更新时间。
在确定所述第二数据的更新时间后,可以将所述第二数据的更新时间与所述第一数据的更新时间进行比较,以便于确定所述第一数据库中的数据是否与所述第二数据库中的数据是否一致。
在本申请实施例中,在将所述第一数据的更新时间与所述第二数据的更新时间进行比较时,比较结果至少包含以下几种情况:
第一种情况:所述第一数据的更新时间与所述第二数据的更新时间一致;
第二种情况:所述第一数据的更新时间与所述第二数据的更新时间不一致。
针对第一种情况:
所述第一数据的更新时间与所述第二数据的更新时间一致,指的是所述第一数据中包含的数据项的更新时间与所述第二数据中包含的对应的数据项的更新时间一致。
例如,所述第一数据中包含的数据项为a、b、c和d,a、b、c和d的更新时间分别是t1、t2、t3、和t4,所述第二数据中包含的数据项也为a、b、c和d,如果确定在第二数据库中a、b、c和d的更新时间分别也是t1、t2、t3、和t4,那么,可以确定所述第一数据的更新时间与所述第二数据的更新时间一致。
此时,由于所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据,且所述第二数据的更新时间与所述第一数据的更新时间一致,可以说明,所述第二数据库和所述第一数据库在相同的时间更新所述第二数据(即所述第一数据),因此,可以确定所述第一数据库中的数据与所述第二数据库中的数据一致。
针对第二种情况:
所述第一数据的更新时间与所述第二数据的更新时间不一致,可以是所述第二数据中包含的每一个数据项的更新时间与所述第一数据中包含的对应的数据项的更新时间均不一致,也可以是所述第二数据中包含的若干个(小于所述第二数据包含的数据项的个数)数据项的更新时间与所述第一数据中包含的对应的数据项的更新时间不一致。
仍以上述所述第一数据中包含的数据项a、b、c和d的更新时间是t1、t2、t3和t4为例,如果所述第二数据中的a、b、c和d的更新时间分别是t11、t21、t31、和t41,那么,可以确定所述第一数据的更新时间与所述第二数据的更新时间不一致;如果所述第二数据中的a、b、c和d的更新时间分别是t1、t2、t31、和t41,那么,也可以确定所述第一数据的更新时间与所述第二数据的更新时间不一致。
此时,虽然所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据,但是,所述第二数据的更新时间与所述第一数据的更新时间不一致,可以说明,所述第二数据库没有及时更新所述第二数据,因此,可以确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
例如,所述第一数据包含的数据项为用户密码,在用户更新用户密码之前,所述第一数据库和所述第二数据库中存储的用户密码是一致的,在用户更新用户密码后,所述第一数据库更新用户密码,所述第二数据库没有更新用户密码,此时,虽然所述第二数据库中存在用户密码这一数据项,但是,由于所述第二数据库中没有更新用户密码,即所述第二数据库中用户密码的更新时间与所述第一数据库中用户密码的更新时间不一致,因此,可以确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
在确定所述第一数据库中的数据与所述第二数据库中的数据不一致时,为了使得所述第二数据库中的数据与所述第一数据库中的数据一致,可以更新所述第二数据库。
可选地,在确定所述第一数据库中的数据与所述第二数据库中的数据不一致时,所述方法还包括:
利用所述第一数据以及所述第一数据的更新时间,更新所述第二数据库,使得所述第一数据库中的数据与所述第二数据库中的数据一致。
具体地,根据上述记载的内容,可以在以下两种情况下确定所述第一数据中的数据与所述第二数据库中的数据不一致,包括:
第一种情况:所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据;
第二种情况:所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据,但是,所述第一数据的更新时间与所述第二数据的更新时间不一致。
下面分别针对上述两种情况,说明如何更新所述第二数据库。
针对第一种情况:
在确定所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据时,可以将所述第一数据更新至所述第二数据库中,补全所述第二数据库的数据。
在将所述第一数据更新至所述第二数据库后,所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据,此时,为了保证所述第二数据库中的数据中的数据与所述第一数据库中的数据一致,可以根据所述第一数据的更新时间,更新所述第二数据的更新时间,即根据所述第一数据的更新时间,确定所述第二数据的更新时间,使得所述第二数据的更新时间与所述第一数据的更新时间一致。
针对第二种情况:
所述第二数据库没有更新所述第二数据,此时,可以根据所述第一数据,更新所述第二数据中没有及时更新的数据。
在更新所述第二数据后,为了保证所述第二数据库中的数据与所述第一数据库中的数据一致,可以根据所述第一数据的更新时间,更新所述第二数据的更新时间,保证更新后的所述第二数据的更新时间与所述第一数据的更新时间一致,进而使得所述第一数据库中的数据与所述第二数据库中的数据一致。
需要说明的是,在实际应用中,可以使用本申请实施例提供的技术方案,按照设定周期校验两个数据库中的数据是否一致,也可以根据实际情况,不定期地校验两个数据库中的数据是否一致,这里不做具体限定。
本申请实施例提供的技术方案,在校验两个数据库中的数据是否一致时,可以获取一个数据库在设定时间内发生更新的数据以及该数据的更新时间,并在另一个数据库中查找是否存在该数据,以便于确定另一个数据库是否在相同时间更新该数据,进而校验两个数据库中的数据是否一致。相对于现有技术中,根据数据库中的全部数据校验不同数据库中的数据是否一致,本申请实施例提供的技术方案,根据数据库中发生更新的数据校验不同数据库中的数据是否一致,使得校验过程中消耗的时间比较少,效率比较高。
实施例2
图2为本申请实施例提供的一种数据校验方法的流程示意图。所述方法如下所述。
步骤201:获取所述第一数据库在设定时间内发生更新的第一数据,并确定所述第一数据的更新时间。
所述设定时间可以根据实际情况确定。
在获取所述第一数据后,可以根据上述实施例1中记载的方法,确定所述第一数据的更新时间,这里不再重复描述。
步骤202:从第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据。
具体地,可以通过上述实施例1中记载的方法,从所述第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据。
如果查找结果为所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据时,执行步骤203;如果查找结果为所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据时,执行步骤205。
步骤203:确定所述第二数据的更新时间。
具体地,可以根据上述实施例1中记载的方法确定所述第二数据的更新时间,这里不再重复描述。
步骤204:判断所述第二数据的更新时间是否与所述第一数据的更新时间一致。
在确定所述第二数据的更新时间后,可以进一步判断所述第二数据的更新时间是否与所述第一数据的更新时间一致。
在确定所述第二数据的更新时间与所述第一数据的更新时间不一致时,执行步骤205;在确定所述第二数据的更新时间与所述第一数据的更新时间一致时,执行步骤206。
步骤205:利用所述第一数据以及所述第一数据的更新时间,更新所述第二数据库。
具体地,可以根据上述实施例1中记载的方法,利用所述第一数据以及所述第一数据的更新时间,更新所述第二数据库,这里不再重复描述。
在更新所述第二数据库后,可以使得所述第一数据库中的数据与所述第二数据库中的数据一致。
步骤206:确定所述第一数据库中的数据与所述第二数据库中的数据一致。
实施例3
图3(a)为本申请实施例提供的一种数据校验的示意图。
图3(a)中,根据主数据库在设定时间内更新的第一数据,从备份数据库中查找与第一数据中包含的数据项相同的第二数据,当备份数据库中不存在所述第二数据时,根据主数据库中的第一数据以及第一数据的更新时间更新备份数据库。
图3(b)为本申请实施例提供的一种数据校验的示意图。
图3(b)中,根据主数据库在设定时间内更新的第一数据,从备份数据库中查找与第一数据中包含的数据项相同的第二数据,当备份数据库中存在所述第二数据,但第二数据的更新时间与第一数据的更新时间不一致时,根据第一数据以及第一数据的更新时间更新备份数据库。
图3(c)为本申请实施例提供的一种数据校验的示意图。
图3(c)中,根据主数据库在设定时间内更新的第一数据,从备份数据库中查找与第一数据中包含的数据项相同的第二数据,当备份数据库中存在所述第二数据,且第二数据的更新时间与第一数据的更新时间一致时,可以确定主数据库中的数据与备份数据库中的数据一致。
实施例4
图4为本申请实施例提供的一种数据校验设备的结构示意图。所述数据校验设备应用于分布式数据存储系统,所述数据校验设备包括:获取单元41、查找单元42和校验单元43,其中:
获取单元41,获取第一数据库在设定时间内发生更新的第一数据,并确定所述第一数据的更新时间;
查找单元42,从第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据;
校验单元43,根据所述查找单元42的查找结果和所述第一数据的更新时间,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
所述校验单元43根据所述查找单元42的查找结果和所述第一数据的更新时间,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致,包括:
当所述查找单元42的查找结果为所述第二数据库中存在与所述第一数据中包含的数据项相同的第二数据时,确定所述第二数据的更新时间;
在确定所述第一数据的更新时间与所述第二数据的更新时间不一致时,确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
可选地,所述校验单元43,当所述查找单元42的查找结果为所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据时,确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
可选地,所述数据校验设备还包括:更新单元44,其中:
所述更新单元44,在所述校验单元43确定所述第一数据库中的数据与所述第二数据库中的数据不一致时,利用所述第一数据以及所述第一数据的更新时间,更新所述第二数据库,使得所述第一数据库中的数据与所述第二数据库中的数据一致。
可选地,所述校验单元43,在确定所述第一数据的更新时间与所述第二数据的更新时间一致时,确定所述第一数据库中的数据与所述第二数据库中的数据一致。
需要说明的是,本申请实施例提供的数据校验设备可以通过硬件方式实现,也可以通过软件方式实现,这里不做限定。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
1.一种数据校验方法,其特征在于,所述方法包括:
获取第一数据库在设定时间内发生更新的第一数据;
从第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据;其中,所述数据项为所述第一数据中的数据所属的数据类别;
当查找结果为所述第二数据库中存在与所述第一数据中包含的每一个所述数据项相同的第二数据时,则根据所述第一数据的数据内容,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
2.如权利要求1所述的数据校验方法,其特征在于,所述方法应用于分布式数据存储系统。
3.如权利要求1所述的数据校验方法,其特征在于,所述根据所述第一数据的数据内容,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致,包括:
确定所述第二数据的数据内容;
在确定所述第一数据的数据内容与所述第二数据的数据内容不一致时,确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
4.如权利要求3所述的数据校验方法,其特征在于,所述方法还包括:
当查找结果为所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据时,确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
5.如权利要求1至4任一项所述的数据校验方法,其特征在于,在确定所述第一数据库中的数据与所述第二数据库中的数据不一致时,所述方法还包括:
利用所述第一数据,更新所述第二数据库,使得所述第一数据库中的数据与所述第二数据库中的数据一致。
6.如权利要求3所述的数据校验方法,其特征在于,所述方法还包括:
在确定所述第一数据的数据内容与所述第二数据的数据内容一致时,确定所述第一数据库中的数据与所述第二数据库中的数据一致。
7.一种数据校验设备,其特征在于,所述设备包括:
获取单元,获取第一数据库在设定时间内发生更新的第一数据;
查找单元,从第二数据库中查找是否存在与所述第一数据中包含的数据项相同的第二数据;其中,所述数据项为所述第一数据中的数据所属的数据类别;
校验单元,当所述查找单元的查找结果为所述第二数据库中存在与所述第一数据库中包含的每一个所述数据项相同的第二数据时,则根据所述第一数据的数据内容,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致。
8.如权利要求7所述的数据校验设备,其特征在于,所述设备应用于分布式数据存储系统。
9.如权利要求7所述的数据校验设备,其特征在于,所述根据所述第一数据的数据内容,校验所述第一数据库中的数据与所述第二数据库中的数据是否一致,包括:
确定所述第二数据的数据内容;
在确定所述第一数据的数据内容与所述第二数据的数据内容不一致时,确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
10.如权利要求9所述的数据校验设备,其特征在于,
所述校验单元,当所述查找单元的查找结果为所述第二数据库中不存在与所述第一数据中包含的数据项相同的第二数据时,确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
11.如权利要求7至10任一项所述的数据校验设备,其特征在于,所述设备还包括:更新单元,其中:
所述更新单元,在所述校验单元确定所述第一数据库中的数据与所述第二数据库中的数据不一致时,利用所述第一数据,更新所述第二数据库,使得所述第一数据库中的数据与所述第二数据库中的数据一致。
12.如权利要求9所述的数据校验设备,其特征在于,
所述校验单元,在确定所述第一数据的数据内容与所述第二数据的数据内容一致时,确定所述第一数据库中的数据与所述第二数据库中的数据一致。
技术总结