一种索引校对方法和装置与流程

文档序号:18619944发布日期:2019-09-06 22:23阅读:299来源:国知局
一种索引校对方法和装置与流程

本发明涉及数据存储领域,特别涉及一种索引校对方法和装置。



背景技术:

在数据存储领域,人们越来越看重数据的检索效率。为提高数据的检索效率,在建立原始表时,服务器往往会建立有用于检索原始表的索引表,其中,索引表可以记录有某字段与原始表中的唯一键值的对应关系。具体的,当向原始表增加某条记录时,相应的,可以在索引表中增加该条记录对应的索引表项。当原始表中的某条记录发生变化时,服务器可以相应的修改索引表中对应该记录的索引表项。

然而,原始表或索引表写失败或存储原始表或索引表的文件损坏等异常情况可能会导致原始表中的记录与索引表中的数据不是一一对应的,比如原始表中的某条记录发生变化,而对应的索引表未进行相应改变,此种情况下,当服务器通过该索引表来检索原始表中的变化后的数据时,即不能成功检索到该条记录,从而,导致检索失败。



技术实现要素:

为了解决相关技术中存在的检索失败的问题,本发明实施例提供了一种索引校对方法和装置。所述技术方案如下:

第一方面,提供了一种索引校对方法,所述方法包括:

分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,所述原始表包含每条记录对应的时间戳,所述索引表包含每个索引表项对应的时间戳;

对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项;

根据所述目标索引表项,对所述索引表执行所述校正处理。

可选的,所述校正处理包括以下处理中的一种或多种:

增添处理、删除处理、修改处理。

可选的,所述索引表为所述原始表中的第一字段对应的索引表,所述索引表中的每个索引表项包含对应记录的唯一键值;

所述对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项,包括:

对于每个唯一键值,如果所述多条记录中存在所述唯一键值对应的第一字段值,且多个索引表项中不存在所述唯一键值对应的第一字段值,则将所述唯一键值和所述多条记录中所述唯一键值对应的第一字段值确定为待执行增添处理的目标索引表项;

如果所述多条记录中不存在所述唯一键值对应的第一字段值,且所述多个索引表项中存在所述唯一键值对应的第一字段值,则将所述多个索引表项中所述唯一键值对应的索引表项,确定为待执行删除处理的目标索引表项;

如果所述多条记录中存在的所述唯一键值对应的第一字段值,与所述多个索引表项中存在的所述唯一键值对应的第一字段值不一致,则将所述唯一键值和所述多条记录中所述唯一键值对应的第一字段值,确定为待执行修改处理的目标索引表项。

可选的,所述分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,包括:

每经过预设的校对周期,分别在原始表中和索引表中,获取对应的时间戳在当前校对周期内的多条记录和多个索引表项。

可选的,所述分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,包括:

获取原始表中对应的时间戳在预设时间范围内的多条记录的数据量;

根据多个校对节点中的每个校对节点对应的数据量阈值和获取到的数据量,将预设时间范围划分为至少一个目标子时间范围;

将所述至少一个目标子时间范围发送至不同的校对节点,以便每个校对节点在原始表中和索引表中,获取对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项;

所述对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项,包括:

通过每个校对节点对所述校对节点获取到的对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项。

可选的,所述根据多个校对节点中的每个校对节点对应的数据量阈值和获取到的数据量,将预设时间范围划分为至少一个目标子时间范围,包括:

确定获取到的数据量除以每个校对节点对应的数据量阈值的商n;

如果n大于1,将所述预设事件范围划分为n+1个子时间范围,其中,n为n的整数部分;

对于所述n+1个子时间范围中的每个子时间范围,获取所述原始表中对应的时间戳在所述子时间范围内的多条记录的数据量;如果所述子时间范围内的数据量除以所述数据量阈值的商m大于1,则将所述子时间范围划分为m+1个子时间范围,其中,m为m的整数部分,直到划分到的子时间范围对应的数据量均小于所述数据量阈值;

将对应的数据量之和小于所述数据量阈值的相邻的子时间范围合并,得到多个目标子时间范围。

第二方面,提供了一种索引校对装置,所述装置包括:

获取模块,用于分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,所述原始表包含每条记录对应的时间戳,所述索引表包含每个索引表项对应的时间戳;

确定模块,用于对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项;

执行模块,用于根据所述目标索引表项,对所述索引表执行所述校正处理。

可选的,所述校正处理包括以下处理中的一种或多种:

增添处理、删除处理、修改处理。

可选的,所述索引表为所述原始表中的第一字段对应的索引表,所述索引表中的每个索引表项包含对应记录的唯一键值;

所述确定模块,用于:

对于每个唯一键值,如果所述多条记录中存在所述唯一键值对应的第一字段值,且多个索引表项中不存在所述唯一键值对应的第一字段值,则将所述唯一键值和所述多条记录中所述唯一键值对应的第一字段值确定为待执行增添处理的目标索引表项;

如果所述多条记录中不存在所述唯一键值对应的第一字段值,且所述多个索引表项中存在所述唯一键值对应的第一字段值,则将所述多个索引表项中所述唯一键值对应的索引表项,确定为待执行删除处理的目标索引表项;

如果所述多条记录中存在的所述唯一键值对应的第一字段值,与所述多个索引表项中存在的所述唯一键值对应的第一字段值不一致,则将所述唯一键值和所述多条记录中所述唯一键值对应的第一字段值,确定为待执行修改处理的目标索引表项。

可选的,所述获取模块,用于:

每经过预设的校对周期,分别在原始表中和索引表中,获取对应的时间戳在当前校对周期内的多条记录和多个索引表项。

可选的,所述获取模块,用于

获取原始表中对应的时间戳在预设时间范围内的多条记录的数据量;

根据多个校对节点中的每个校对节点对应的数据量阈值和获取到的数据量,将预设时间范围划分为至少一个目标子时间范围;

将所述至少一个目标子时间范围发送至不同的校对节点,以便每个校对节点在原始表中和索引表中,获取对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项;

所述确定模块,用于:

通过每个校对节点对所述校对节点获取到的对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项。

可选的,所述获取模块,用于:

确定获取到的数据量除以每个校对节点对应的数据量阈值的商n;

如果n大于1,将所述预设事件范围划分为n+1个子时间范围,其中,n为n的整数部分;

对于所述n+1个子时间范围中的每个子时间范围,获取所述原始表中对应的时间戳在所述子时间范围内的多条记录的数据量;如果所述子时间范围内的数据量除以所述数据量阈值的商m大于1,则将所述子时间范围划分为m+1个子时间范围,其中,m为m的整数部分,直到划分到的子时间范围对应的数据量均小于所述数据量阈值;

将对应的数据量之和小于所述数据量阈值的相邻的子时间范围合并,得到多个目标子时间范围。

第三方面,提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现第一方面所述的方法步骤。

第四方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法步骤。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例中,分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,原始表包含每条记录对应的时间戳,索引表包含每个索引表项对应的时间戳;对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项;根据目标索引表项,对索引表执行校正处理。这样,服务器可以自动对原始表和对应的索引表进行校对,当索引表与原始表不一致时,可以对索引表进行校正处理,使得索引表与原始表保持一致,从而,可以防止检索失败。另外,服务器在校对时,可以对预设时间范围内的多条记录和对个索引表项进行校对,不必每次都对所有的记录和索引表项进行校对,从而,可以提高校对效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种索引校对的方法流程图;

图2是本发明实施例提供的一种原始表和索引表的示意图;

图3是本发明实施例提供的一种获取多个记录和多个索引表项的示意图;

图4是本发明实施例提供的一种划分子时间范围的示意图;

图5是本发明实施例提供的一种索引校对的装置结构示意图;

图6是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种索引校对方法,该方法的执行主体为服务器。其中,该服务器可以是具有校对功能的服务器,其中,该服务器可以是一个单独的服务器,比如可以是存储有原始表和索引表,并执行索引校对的处理服务器,也可以是由多个服务器组成的服务器组,比如是由处理服务器和多个校对节点组成的服务器组。

服务器可以包括处理器、存储器等部件。处理器可以为cpu(centralprocessingunit,中央处理单元)等,可以用于确定待校正的目标索引项、执行校正处理等相关处理。存储器可以为ram(randomaccessmemory,随机存取存储器)、flash(闪存)等,可以用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如索引表、原始表等。

下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:

步骤101,分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,原始表包含每条记录对应的时间戳,索引表包含每个索引表项对应的时间戳。

其中,索引表可以是原始表中的某字段对应的索引表。

在本发明的可选实施例,服务器中可以预先存储有原始表和原始表中的某字段对应的索引表,其中,服务器在存储原始表和该原始表对应的索引表时,可以为每条记录和索引表中该条记录对应的索引表项设置相同的时间戳,存储的原始表中包含每条记录对应的时间戳,索引表中包含每个索引表项对应的时间戳,如图2所示。

服务器中可以预先设置有校对触发事件,其中,校对触发事件可以是预设的校对周期,也可以是接收到校对指令。当服务器检测到校对触发事件发生时,服务器可以获取该校对触发事件对应的预设时间范围,其中,当校对触发事件是接收到校对指令时,服务器可以获取校对指令中包含的预设时间范围(该预设时间范围可以技术人员手动输入的)。获取到预设时间范围后,服务器可以分别在原始表和索引表中获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,获取到的多个记录中的每个记录可以包括对应的时间戳,多个索引表项中的每个索引表项可以包括对应的时间戳,如图3所示。

可选的,上述校对触发事件可以是预设的校对周期,相应的,步骤101的处理过程可以如下:每经过预设的校对周期,分别在原始表中和索引表中,获取对应的时间戳在当前校对周期内的多条记录和多个索引表项。

在本发明的可选实施例,校对触发事件可以是预设的校对周期,此种情况下,每经过预设的校对周期,服务器可以分别在原始表中和索引表中,获取对应的时间戳在当前校对周期内的多条记录和多个索引表项。此种情况下,服务器可以定时获取对应的时间戳在某个预设时间范围内的多条记录和多个索引表项。

可选的,为提高校对效率,可以将预设时间范围划分为多个目标子时间范围,由不同的校对节点执行校对处理,相应的,步骤101的处理过程可以如下:获取原始表中对应的时间戳在预设时间范围内的多条记录的数据量;根据多个校对节点中的每个校对节点对应的数据量阈值和获取到的数据量,将预设时间范围划分为至少一个目标子时间范围;将至少一个目标子时间范围发送至不同的校对节点,以便每个校对节点在原始表中和索引表中,获取对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项。

在本发明的可选实施例,服务器中可以预先设置有每个校对节点对应的数据量阈值,其中,数据量阈值可以是校对节点能处理的单个任务的最大数据量。当检测到校对触发事件发生时,服务器可以获取原始表中对应的时间戳在预设时间范围内的多条记录的数据量,得到预设时间范围对应的数据量,进而,可以获取每个校对节点对应的数据量阈值。获取到数据量和数据量阈值后,服务器通过比较数据量和数据量阈值的大小,将预设时间范围划分为至少一个目标子时间范围。得到至少一个目标子时间范围后,服务器可以将至少一个目标子时间范围中的每个目标子时间范围作为一个任务的时间参数,并将其标记为未执行。然后,服务器可以基于校对节点的数量(其中,校对节点的数量可以用k表示),获取k个任务,将各个任务的时间参数提交到spark(其中,spark是专为大规模数据处理而设计的快速通用的计算引擎),进而,可以将k个任务的时间参数分别发送至不同的校对节点,每个校对节点接收到对应的目标子时间范围后,可以分别在原始表和索引表中,获取对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项,以便该校对节点对获取到的多条记录和多个索引表项执行校对处理。例如,预设时间范围为t0到t5,服务器可以将该预设时间范围划分为三个目标子时间范围,分别为t0<=t<t1、t1<=t<t3、t3<=t<t5,将这三个目标子时间范围确定为3个任务的时间参数,进而,可以将三个目标子时间范围分别发送至校对节点1、校对节点2、校对节点3,如图4所示。

可选的,服务器将预设时间范围划分为至少一个目标子时间范围的处理过程可以如下:确定获取到的数据量除以每个校对节点对应的数据量阈值的商n;如果n大于1,将预设事件范围划分为n+1个子时间范围,其中,n为n的整数部分;对于n+1个子时间范围中的每个子时间范围,获取原始表中对应的时间戳在子时间范围内的多条记录的数据量;如果子时间范围内的数据量除以数据量阈值的商m大于1,则将子时间范围划分为m+1个子时间范围,其中,m为m的整数部分,直到划分到的子时间范围对应的数据量均小于所述数据量阈值;将对应的数据量之和小于数据量阈值的相邻的子时间范围合并,得到多个目标子时间范围。

在本发明的可选实施例,获取到原始表中对应的时间戳在预设时间范围内的多条记录的数据量和每个校对节点对应的数据量阈值后,可以将数据量除以数据量阈值,得到商n,进而,可以判断n是否大于1,如果n小于或等于1,则服务器可以将预设时间范围确定为至少一个目标子时间范围,如果n大于1,则服务器可以将预设时间范围划分为n+1个子时间范围。得到n+1个子时间范围后,对于n+1个子时间范围中的每个子时间范围,服务器可以获取原始表中对应的时间戳在该子时间范围内的多条记录的数据量,得到该子时间范围对应的数据量,将该数据量除以数据量阈值得到商m,进而,可以比较m是否大于1,如果m小于或等于1,则服务器可以不再划分该子时间范围,如果m大于1,则服务器可以将该子时间范围划分为m+1个子时间范围。服务器可以循环执行上述处理,直到划分到的子时间范围对应的数据量均小于数据量阈值。得到最终的每个子时间范围后,服务器还可以对某些子时间范围进行合并,其中,可以将相邻的对应的数据量之和小于数据量阈值的子时间范围合并,得到多个目标子时间范围。例如,预设时间范围对应的数据量为200mb(兆字节),数据量阈值为70mb,由此可见,n为2,则服务器可以将预设时间范围划分为3个子时间范围,分别为a、b、c,假设3个子时间范围对应的数据量为30mb、35mb、135mb,由此可见,c子时间范围对应的数据量与数据量阈值的商m大于1,m为1,则服务器可以进一步将c子时间范围划分为2个子时间范围,分别为d、e,假设2个子时间范围对应的数据量为70mb、65mb,由此得到的多个子时间范围为a、b、d、e,分别对应的数据量为30mb、35mb、70mb、65mb,则服务器可以将a子时间范围和b子时间范围合并,得到a+b子时间范围,即服务器得到三个目标子时间范围,分别为:a+b、d、e。

另外,服务器在划分目标子时间范围时,还可以从预设时间范围的起始时间开始,获取数据量阈值的数据,得到数据量阈值的数据对应的目标子时间范围,并判断该目标子时间范围是否包含预设时间范围的结束时间,若不包含,再从该目标子时间范围的结束时间开始,继续获取数据量阈值的数据,直到第j个的目标子时间范围包含预设时间范围的结束时间,将从第j-1个目标子时间范围的结束时间开始,至预设时间范围的结束时间的时间范围重新确定为第j个目标子时间范围,从而将预设时间范围划分成j个目标子时间范围。

步骤102,对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项。

在本发明的可选实施例,获取到多条记录和多个索引表项后,服务器可以对多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项。

可选的,校正处理可以包括以下处理中的一种或多种:增添处理、删除处理、修改处理。

可选的,针对服务器将预设时间范围划分为多个目标子时间范围的情况,相应的,步骤102的处理过程可以如下:通过每个校对节点对该校对节点获取到的对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项。

在本发明的可选实施例,每个校对节点获取到对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项后,可以对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项。针对服务器分批次向每个校对节点发送任务的时间参数的情况,服务器将k个任务的时间参数分别发送至不同的校对节点,每个校对节点执行完对应的任务后,服务器可以将对应的任务标记为执行成功,并继续向该校对节点发送未执行的任务的时间参数,直到所有任务全部执行完毕。如果某任务没执行成功或意外停止,下一校对周期,服务器可以再把未执行成功的任务重新执行一次。

可选的,针对不同的校正处理,服务器确定目标索引表项的方式可以不同,相应的,步骤102的处理过程可以如下:对于每个唯一键值,如果多条记录中存在唯一键值对应的第一字段值,且多个索引表项中不存在唯一键值对应的第一字段值,则将唯一键值和多条记录中唯一键值对应的第一字段值确定为待执行增添处理的目标索引表项;如果多条记录中不存在唯一键值对应的第一字段值,且多个索引表项中存在唯一键值对应的第一字段值,则将多个索引表项中唯一键值对应的索引表项,确定为待执行删除处理的目标索引表项;如果多条记录中存在的唯一键值对应的第一字段值,与多个索引表项中存在的唯一键值对应的第一字段值不一致,则将唯一键值和多条记录中唯一键值对应的第一字段值,确定为待执行修改处理的目标索引表项,其中,索引表为原始表中的第一字段对应的索引表,索引表中的每个索引表项包含对应记录的唯一键值。

在本发明的可选实施例,上述索引表可以是原始表中的第一字段(其中,第一字段可以是原始表中对应有索引表的任意字段)对应的索引表,即该索引表中的每个索引表项中的新键值可以是原始表中的唯一键值和第一字段对应的第一字段值的组合。

获取到多条记录和多个索引表项后,服务器可以对多个索引表项进行格式转换,转换成与多个记录的格式相同的格式,即可以将多个索引表项的格式转换为唯一键值为key值,第一字段的第一字段值为value的格式。对于多个记录和多个索引表项中的每个唯一键值(或称为记录标识),服务器可以将该唯一键值对应的记录与该唯一键值对应的索引表项进行合并,进而,可以对合并后的记录和索引表项进行校对。具体的,对于每个唯一键值,服务器可以判断多条记录中是否存在该唯一键值对应的第一字段值(其中,第一字段值可以是第一字段对应的值),多个索引表项中是否存在该唯一键值对应的第一字段值,如果多条记录中存在该唯一键值对应的第一字段值,且多个索引表项中不存在唯一键值对应的第一字段值,则服务器可以将该唯一键值和多条记录中该唯一键值对应的第一字段值确定为待执行增添处理的目标索引表项,比如,可以将其标记为增添,并将该目标索引项添加到put队列中,其中,目标索引项还可以包括多个记录中该唯一键值对应的时间戳,即如果多条记录中存在该唯一键值对应的第一字段值,且多个索引表项中不存在唯一键值对应的第一字段值,则服务器可以将该唯一键值和多条记录中该唯一键值对应的第一字段值、时间戳确定为待执行增添处理的目标索引表项。如果多条记录中不存在该唯一键值对应的第一字段值,且多个索引表项中存在该唯一键值对应的第一字段值,则将多个索引表项中该唯一键值对应的索引表项,确定为待执行删除处理的目标索引表项,比如,可以将其标记为删除,并将目标索引表项添加到delete队列中。

如果多条记录中存在该唯一键值对应的第一字段值,且多个索引表项中存在该唯一键值对应的第一字段值,则服务器可以进一步判断多条记录中存在的该唯一键值对应的第一字段值是否与多个索引表项中存在的该唯一键值对应的第一字段值一致,如果一致,则服务器可以对其标记为相同,如果不一致,则可以将该唯一键值和多条记录中该唯一键值对应的第一字段值,确定为待执行修改处理的目标索引表项,比如,可以将其标记为修改,并将其添加到put队列中,其中,目标索引项还可以包括多个记录中该唯一键值对应的时间戳,即如果多条记录中存在的该唯一键值对应的第一字段值,与多个索引表项中存在的该唯一键值对应的第一字段值不一致,则将该唯一键值和多条记录中该唯一键值对应的第一字段值、时间戳,确定为待执行修改处理的目标索引表项。

步骤103,根据目标索引表项,对索引表执行校正处理。

在本发明的可选实施例,确定出目标索引表项后,服务器可以根据目标索引表项对索引表执行对应的校正处理。具体的,如果目标索引表项对应的校正处理为增添处理,则服务器可以将目标索引表项增添到索引表中,如果目标索引表项对应的校正处理为删除处理,则服务器可以将该目标索引表项从索引表中删除,如果目标索引表项对应的校正处理为修改处理,则服务器可以将目标索引表项中的唯一键值在索引表中对应的索引表项修改为目标索引表项,其中,服务器可以将目标索引表项中的唯一键值在索引表中对应的索引表项删除,并将目标索引表项添加到索引表中。

针对校对处理由校对节点执行的情况,每个校对节点在执行任务时,可以将确定出的目标索引表项进行存储,比如,可以将待执行增添处理的目标索引表项添加到put队列中,将待执行删除的目标索引表项添加到delete队列中,将待执行修改处理的目标索引表项添加到put队列中。执行完任务后,可以将put队列中的目标索引表项发送至处理服务器,处理服务器接收到各目标索引表项后,可以基于接收到的目标索引表项,对索引表执行校正处理。

本发明实施例中,分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,原始表包含每条记录对应的时间戳,索引表包含每个索引表项对应的时间戳;对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项;根据目标索引表项,对索引表执行校正处理。这样,服务器可以自动对原始表和对应的索引表进行校对,当索引表与原始表不一致时,可以对索引表进行校正处理,使得索引表与原始表保持一致,从而,可以防止检索失败。另外,服务器在校对时,可以对预设时间范围内的多条记录和对个索引表项进行校对,不必每次都对所有的记录和索引表项进行校对,从而,可以提高校对效率。

基于相同的技术构思,本发明实施例还提供了一种索引校对装置,该装置可以是上述的服务器,如图5所示,该装置包括:

获取模块510,用于分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,所述原始表包含每条记录对应的时间戳,所述索引表包含每个索引表项对应的时间戳;

确定模块520,用于对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项;

执行模块530,用于根据所述目标索引表项,对所述索引表执行所述校正处理。

可选的,所述校正处理包括以下处理中的一种或多种:

增添处理、删除处理、修改处理。

可选的,所述索引表为所述原始表中的第一字段对应的索引表,所述索引表中的每个索引表项包含对应记录的唯一键值;

所述确定模块520,用于:

对于每个唯一键值,如果所述多条记录中存在所述唯一键值对应的第一字段值,且多个索引表项中不存在所述唯一键值对应的第一字段值,则将所述唯一键值和所述多条记录中所述唯一键值对应的第一字段值确定为待执行增添处理的目标索引表项;

如果所述多条记录中不存在所述唯一键值对应的第一字段值,且所述多个索引表项中存在所述唯一键值对应的第一字段值,则将所述多个索引表项中所述唯一键值对应的索引表项,确定为待执行删除处理的目标索引表项;

如果所述多条记录中存在的所述唯一键值对应的第一字段值,与所述多个索引表项中存在的所述唯一键值对应的第一字段值不一致,则将所述唯一键值和所述多条记录中所述唯一键值对应的第一字段值,确定为待执行修改处理的目标索引表项。

可选的,所述获取模块510,用于:

每经过预设的校对周期,分别在原始表中和索引表中,获取对应的时间戳在当前校对周期内的多条记录和多个索引表项。

可选的,所述获取模块510,用于

获取原始表中对应的时间戳在预设时间范围内的多条记录的数据量;

根据多个校对节点中的每个校对节点对应的数据量阈值和获取到的数据量,将预设时间范围划分为至少一个目标子时间范围;

将所述至少一个目标子时间范围发送至不同的校对节点,以便每个校对节点在原始表中和索引表中,获取对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项;

所述确定模块520,用于:

通过每个校对节点对所述校对节点获取到的对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项。

可选的,所述获取模块510,用于:

确定获取到的数据量除以每个校对节点对应的数据量阈值的商n;

如果n大于1,将所述预设事件范围划分为n+1个子时间范围,其中,n为n的整数部分;

对于所述n+1个子时间范围中的每个子时间范围,获取所述原始表中对应的时间戳在所述子时间范围内的多条记录的数据量;如果所述子时间范围内的数据量除以所述数据量阈值的商m大于1,则将所述子时间范围划分为m+1个子时间范围,其中,m为m的整数部分,直到划分到的子时间范围对应的数据量均小于所述数据量阈值;

将对应的数据量之和小于所述数据量阈值的相邻的子时间范围合并,得到多个目标子时间范围。

本发明实施例中,分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,原始表包含每条记录对应的时间戳,索引表包含每个索引表项对应的时间戳;对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项;根据目标索引表项,对索引表执行校正处理。这样,服务器可以自动对原始表和对应的索引表进行校对,当索引表与原始表不一致时,可以对索引表进行校正处理,使得索引表与原始表保持一致,从而,可以防止检索失败。另外,服务器在校对时,可以对预设时间范围内的多条记录和对个索引表项进行校对,不必每次都对所有的记录和索引表项进行校对,从而,可以提高校对效率。

需要说明的是:上述实施例提供的索引校对装置在索引校对时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的索引校对装置与索引校对方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6是本发明实施例提供的服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。

服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

服务器1900可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,所述原始表包含每条记录对应的时间戳,所述索引表包含每个索引表项对应的时间戳;

对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项;

根据所述目标索引表项,对所述索引表执行所述校正处理。

可选的,所述校正处理包括以下处理中的一种或多种:

增添处理、删除处理、修改处理。

可选的,所述索引表为所述原始表中的第一字段对应的索引表,所述索引表中的每个索引表项包含对应记录的唯一键值;

所述对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项,包括:

对于每个唯一键值,如果所述多条记录中存在所述唯一键值对应的第一字段值,且多个索引表项中不存在所述唯一键值对应的第一字段值,则将所述唯一键值和所述多条记录中所述唯一键值对应的第一字段值确定为待执行增添处理的目标索引表项;

如果所述多条记录中不存在所述唯一键值对应的第一字段值,且所述多个索引表项中存在所述唯一键值对应的第一字段值,则将所述多个索引表项中所述唯一键值对应的索引表项,确定为待执行删除处理的目标索引表项;

如果所述多条记录中存在的所述唯一键值对应的第一字段值,与所述多个索引表项中存在的所述唯一键值对应的第一字段值不一致,则将所述唯一键值和所述多条记录中所述唯一键值对应的第一字段值,确定为待执行修改处理的目标索引表项。

可选的,所述分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,包括:

每经过预设的校对周期,分别在原始表中和索引表中,获取对应的时间戳在当前校对周期内的多条记录和多个索引表项。

可选的,所述分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,包括:

获取原始表中对应的时间戳在预设时间范围内的多条记录的数据量;

根据多个校对节点中的每个校对节点对应的数据量阈值和获取到的数据量,将预设时间范围划分为至少一个目标子时间范围;

将所述至少一个目标子时间范围发送至不同的校对节点,以便每个校对节点在原始表中和索引表中,获取对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项;

所述对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项,包括:

通过每个校对节点对所述校对节点获取到的对应的时间戳在对应的目标子时间范围内的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项。

可选的,所述根据多个校对节点中的每个校对节点对应的数据量阈值和获取到的数据量,将预设时间范围划分为至少一个目标子时间范围,包括:

确定获取到的数据量除以每个校对节点对应的数据量阈值的商n;

如果n大于1,将所述预设事件范围划分为n+1个子时间范围,其中,n为n的整数部分;

对于所述n+1个子时间范围中的每个子时间范围,获取所述原始表中对应的时间戳在所述子时间范围内的多条记录的数据量;如果所述子时间范围内的数据量除以所述数据量阈值的商m大于1,则将所述子时间范围划分为m+1个子时间范围,其中,m为m的整数部分,直到划分到的子时间范围对应的数据量均小于所述数据量阈值;

将对应的数据量之和小于所述数据量阈值的相邻的子时间范围合并,得到多个目标子时间范围。

本发明实施例中,分别在原始表中和索引表中,获取对应的时间戳在预设时间范围内的多条记录和多个索引表项,其中,原始表包含每条记录对应的时间戳,索引表包含每个索引表项对应的时间戳;对获取到的多条记录和多个索引表项进行索引校对,确定待执行校正处理的目标索引表项;根据目标索引表项,对索引表执行校正处理。这样,服务器可以自动对原始表和对应的索引表进行校对,当索引表与原始表不一致时,可以对索引表进行校正处理,使得索引表与原始表保持一致,从而,可以防止检索失败。另外,服务器在校对时,可以对预设时间范围内的多条记录和对个索引表项进行校对,不必每次都对所有的记录和索引表项进行校对,从而,可以提高校对效率。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1