数据管理方法、电子设备、系统及介质与流程

文档序号:19745058发布日期:2020-01-21 18:13阅读:174来源:国知局
数据管理方法、电子设备、系统及介质与流程

本发明涉及数据处理技术领域,尤其涉及数据管理方法、电子设备、系统及介质。



背景技术:

通常情况下,数据库在提供单纯的数据存储时,对数据量的支持和业务量的支撑能力都十分有限,当数据量变得庞大的时候,数据库可能无法承受巨大的业务量。

另外,在进行数据对账时,通常遵循的原则是全量检查原则,由于数据量太大,导致耗时长且效率低下。同时,由于数据是不断流动的,每天都会不停地进行数据增删,因此,在进行数据对账时,也会不断执行数据的写入,给系统运行增加了负担。

面对当前越来越大的业务需求,如何在中心数据库上存储百亿数据并保证日常业务的完整使用和对数据进行业务检测以完成业务需求,成为了亟需解决的问题。



技术实现要素:

本发明的主要目的在于提供数据管理方法、电子设备、系统及介质,能够将数据的写入及数据的校验过程进行分离,并以修改记录作为数据处理的依据,既减少了对系统运行时资源的消耗,又保证了数据的完整性,同时,由于对数据进行了增量校验,进一步提高了数据校验的效率。

为实现上述目的,本发明提供一种数据管理方法,所述方法包括:

获取第一散列表及其余散列表,其中,所述第一散列表在第一时间段内处于记录状态,在所述第一散列表及所述其余散列表中存储着数据的修改记录;

在所述第一时间段内,当检测到有数据被修改时,获取第一修改记录;

将所述第一修改记录写入所述第一散列表;

在所述第一时间段内,获取并校验所述其余散列表中的修改记录。

优选地,所述其余散列表中包括至少一张第二散列表及至少一张第三散列表,每张第二散列表中存储着第二修改记录,每张第三散列表中存储着第三修改记录,每张第三散列表的数据写入时间早于每张第二散列表的数据写入时间,每张第二散列表的数据写入时间早于所述第一时间段。

优选地,所述将所述第一修改记录写入所述第一散列表包括:

计算所述第一修改记录的第一哈希值;

确定所述第一散列表中的子表数量;

计算所述第一哈希值与所述子表数量的商;

对计算得到的商进行取余运算,得到第一子表序号;

将所述第一修改记录写入所述第一子表序号对应的子表中。

优选地,所述第一散列表与每张第二散列表及每张第三散列表具有相同的子表数量,所述方法还包括:

获取待删除记录;

计算所述待删除记录的第二哈希值;

计算所述第二哈希值与所述子表数量的商;

对计算得到的商进行取余运算,得到第二子表序号;

分别删除每张第二散列表及每张第三散列表中与所述第二子表序号对应的修改记录。

优选地,校验每张第二散列表中的第二修改记录包括:

确定所述第二修改记录对应的数据是否异常;

当所述第二修改记录对应的数据有异常时,发出警报。

优选地,校验每张第三散列表中的第三修改记录包括:

获取所述第三修改记录对应的异常数据;

检测所述异常数据是否被成功处理;

当所述异常数据在所述第一时间段终止之前一直没有被处理及/或当所述异常数据被成功处理时,删除所述第三修改记录;或者

当所述异常数据正在被处理时,保留所述第三修改记录。

优选地,所述异常数据包括异常部署数据,所述方法还包括:

发送所述异常部署数据至服务器进行处理;

其中,所述服务器处理所述异常部署数据包括:

根据所述异常部署数据确定部署任务的当前设备量以及部署任务的配置设备量;

根据所述当前设备量及所述配置设备量确定待部署设备量;

基于所述待部署设备量优化所述任务的部署。

为实现上述目的,本发明进一步提供一种电子设备,所述电子设备包括:

存储器,存储至少一个指令;及

处理器,执行所述存储器中存储的指令以实现所述数据管理方法。

优选地,所述电子设备为组成内容分发网络或者区块链网络的节点。

为实现上述目的,本发明进一步提供一种数据管理系统,所述系统包括:

获取单元,用于获取第一散列表及其余散列表,其中,所述第一散列表在第一时间段内处于记录状态,在所述第一散列表及所述其余散列表中存储着数据的修改记录;

所述获取单元,还用于在所述第一时间段内,当检测到有数据被修改时,获取第一修改记录;

写入单元,用于将所述第一修改记录写入所述第一散列表;

校验单元,用于在所述第一时间段内,获取并校验所述其余散列表中的修改记录。

优选地,所述其余散列表中包括至少一张第二散列表及至少一张第三散列表,每张第二散列表中存储着第二修改记录,每张第三散列表中存储着第三修改记录,每张第三散列表的数据写入时间早于每张第二散列表的数据写入时间,每张第二散列表的数据写入时间早于所述第一时间段。

优选地,所述写入单元具体用于:

计算所述第一修改记录的第一哈希值;

确定所述第一散列表中的子表数量;

计算所述第一哈希值与所述子表数量的商;

对计算得到的商进行取余运算,得到第一子表序号;

将所述第一修改记录写入所述第一子表序号对应的子表中。

优选地,所述第一散列表与每张第二散列表及每张第三散列表具有相同的子表数量,所述获取单元,还用于获取待删除记录;

所述系统还包括:

计算单元,用于计算所述待删除记录的第二哈希值;

所述计算单元,还用于计算所述第二哈希值与所述子表数量的商;

所述计算单元,还用于对计算得到的商进行取余运算,得到第二子表序号;

删除单元,用于分别删除每张第二散列表及每张第三散列表中与所述第二子表序号对应的修改记录。

优选地,所述校验单元校验每张第二散列表中的第二修改记录包括:

确定所述第二修改记录对应的数据是否异常;

当所述第二修改记录对应的数据有异常时,发出警报。

优选地,所述校验单元校验每张第三散列表中的第三修改记录包括:

获取所述第三修改记录对应的异常数据;

检测所述异常数据是否被成功处理;

当所述异常数据在所述第一时间段终止之前一直没有被处理及/或当所述异常数据被成功处理时,删除所述第三修改记录;或者

当所述异常数据正在被处理时,保留所述第三修改记录。

优选地,所述异常数据包括异常部署数据,所述系统还包括:

发送单元,用于发送所述异常部署数据至服务器进行处理;

其中,所述服务器处理所述异常部署数据包括:

根据所述异常部署数据确定部署任务的当前设备量以及部署任务的配置设备量;

根据所述当前设备量及所述配置设备量确定待部署设备量;

基于所述待部署设备量优化所述任务的部署。

综上所述,本发明能够获取第一散列表及其余散列表,其中,所述第一散列表在第一时间段内处于记录状态,在所述第一散列表及所述其余散列表中存储着数据的修改记录,在所述第一时间段内,当检测到有数据被修改时,获取第一修改记录,并将所述第一修改记录写入所述第一散列表,同时在所述第一时间段内,获取并校验所述其余散列表中的修改记录,进而能够将数据的写入及数据的校验过程分离,并以修改记录作为数据处理的依据,既减少了对系统运行时资源的消耗,又保证了数据的完整性,同时,由于对数据进行了增量校验,进一步提高了数据校验的效率。

附图说明

图1为本发明一实施例的流程示意图;

图2为本发明一实施例揭露的电子设备的内部结构示意图;

图3为本发明数据管理系统的功能模块示意图;

主要元件符号说明

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明提供一种数据管理方法。

参照图1,为本发明一实施例的流程示意图。根据不同的需求,该流程示意图中步骤的顺序可以改变,某些步骤可以省略。

所述数据管理方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,所述电子设备的硬件设备包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、游戏机、交互式网络电视(internetprotocoltelevision,iptv)、智能式穿戴式设备等。

所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量主机或网络服务器构成的云。

所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。

在一实施例中,该方法包括:

s11,获取第一散列表及其余散列表。

其中,所述第一散列表在第一时间段内处于记录状态,在所述第一散列表及所述其余散列表中存储着数据的修改记录。

在本发明的至少一个实施例中,为了保证时间的通用性及准确性,所述电子设备采用协调世界时(universaltimecoordinated,utc)配置所述第一时间段。

在本发明的至少一个实施例中,所述第一时间段可以进行自定义配置。

在本发明的至少一个实施例中,所述其余散列表中包括至少一张第二散列表及至少一张第三散列表,每张第二散列表中存储着第二修改记录,每张第三散列表中存储着第三修改记录,每张第三散列表的数据写入时间早于每张第二散列表的数据写入时间,每张第二散列表的数据写入时间早于所述第一时间段。

例如,可以根据预设时长设置相应的时间段,且不同时间段之间在时间上首尾相接:所述电子设备可以将当前时间所在的当天确定为所述第一时间段,进一步地,所述电子设备将所述当天的前一天确定为所述第二散列表的数据写入时间,并将所述前一天的前一天确定为所述第三散列表的数据写入时间,也就是说,所述电子设备分别以“今天”为所述第一时间段,以“昨天”为所述第二散列表的数据写入时间,并以“前天”为所述第三散列表的数据写入时间。

当然,在其他实施例中,为了适应不同的业务场景及不同的数据量,所述电子设备还可以采用其他划分方式,本发明对此不做限制。

另外,散列表的数量也可以根据不同的需求进行配置。

在本发明的至少一个实施例中,所述电子设备为每个时间段配置一张散列表,用于存储每个时间段的数据。

在本发明的至少一个实施例中,所述第一散列表、所述第二散列表及所述第三散列表是可以根据关键码值(keyvalue)而直接进行访问的数据结构,进而实现对信息的分散存储,且由于存储数据时带有明确的顺序性,因此读取速度更快。

在本发明的至少一个实施例中,所述第一散列表、所述第二散列表及所述第三散列表可以存储于非关系型数据库中,例如:couchbase数据库等。

由于非关系型数据库性能较佳,且容占能力强,因此,以非关系型数据库存储所述第一散列表、所述第二散列表及所述第三散列表,能够进一步提高数据的健壮性。

在本发明的至少一个实施例中,所述第一散列表、所述第二散列表及所述第三散列表中存储的数据还与时间有关,在进行数据存储的同时,也记录了数据产生的时间,也就是说,在记录每个数据时,还为每个数据添加了时间戳,以区分每条数据。

s12,在所述第一时间段内,当检测到有数据被修改时,获取第一修改记录。

例如:在所述第一时间段对应的“今天”,当有数据被修改时,说明该数据可能存在异常,或者该数据对应的任务有变化,所述电子设备记录这些数据的具体变化,作为所述第一修改记录。

通过上述实施方式,能够获取到所有被修改的数据的修改记录,以供后续使用。

s13,将所述第一修改记录写入所述第一散列表。

例如:在所述第一时间段对应的“今天”,当获取到数据a的修改记录时,由于所述第一散列表与所述第一时间段相对应,因此,所述电子设备将所述数据a的修改记录写入所述第一散列表。

需要说明的是,在所述第一时间段内,所述电子设备只记录所述第一修改记录,并不对所述第一修改记录进行校验,由于在所述第一修改记录写入的过程中并没有其他操作的干扰,因此降低了数据发生写入错误的可能性,保证了数据的健壮性。

通过上述实施方式,所述电子设备只存储发生变化的数据,同时记录这些数据的变化情况作为所述第一修改记录,以供后续分析这些变化是否存在异常。

在本发明的至少一个实施例中,所述第一散列表与每张第二散列表及每张第三散列表中都包含有相同数量的子表。

可以理解的是,如果所述电子设备不对所述第一散列表、所述第二散列表及所述第三散列表进行拆分,那么将由于数据量过大而影响数据的插入速度,因此,所述电子设备将所述第一散列表、所述第二散列表及所述第三散列表分别拆分为相同数量的子表,不仅方便对数据进行快速查询,且提高了数据的插入速度。

在本发明的至少一个实施例中,所述电子设备将所述第一修改记录写入所述第一散列表包括:

所述电子设备计算所述第一修改记录的第一哈希值,并确定所述第一散列表中的子表数量,所述电子设备计算所述第一哈希值与所述子表数量的商,进一步对计算得到的商进行取余运算,得到第一子表序号,所述电子设备将所述第一修改记录写入所述第一子表序号对应的子表中。

例如:所述第一散列表中存储有10000张子表,且子表序号为0-9999,当所述电子设备获取到所述第一修改记录时,计算所述第一修改记录所对应的字符串的哈希值,得到一个整数10001,进一步地,所述电子设备利用整数10001除以子表数量10000,得到运算结果,并对该运算结果取余,得到数字1,则所述电子设备获取子表序号为1的子表1,并将所述第一修改记录写入所述子表1。

通过上述实施方式,所述电子设备能够利用散列表的自身属性进行计算,进而得到第一修改记录所属的子表,实现对所述第一修改记录快速且有针对性的存储。

s14,在所述第一时间段内,获取并校验所述其余散列表中的修改记录。

在本发明的至少一个实施例中,所述电子设备校验每张第二散列表中的第二修改记录包括:

所述电子设备确定所述第二修改记录对应的数据是否异常,当所述第二修改记录对应的数据有异常时,所述电子设备发出警报。

例如:所述电子设备获取所述第二修改记录对应的调度原则,当确定所述第二修改记录对应的任务应该部署在5个机器上,但是实际部署在3个机器上时,则所述电子设备确定所述第二修改记录对应的数据存在异常,所述电子设备发出警报,以便及时对所述任务进行重新部署。

通过上述实施方式,所述电子设备能够执行对所述第二散列表中第二修改记录对应的数据的第一次校验。

需要说明的是,所述电子设备还可以借助其他服务器确定所述第二修改记录对应的数据是否异常。

在本发明的至少一个实施例中,为了提高异常处理的效率,所述电子设备可以借助其他服务器处理所述第二修改记录对应的数据,也就是说,所述电子设备只负责向其他服务器抛出异常,但不处理异常,这样,通过多方配合,能够有效提高发现异常以处理异常的效率。

具体地,所述异常数据包括异常部署数据,所述方法还包括:

所述电子设备发送所述异常部署数据至服务器进行处理。

其中,所述服务器处理所述异常部署数据包括:

所述服务器根据所述异常部署数据确定部署任务的当前设备量以及部署任务的配置设备量,并根据所述当前设备量及所述配置设备量确定待部署设备量,进一步地,所述服务器基于所述待部署设备量优化所述任务的部署。

在本发明的至少一个实施例中,所述电子设备校验每张第三散列表中的第三修改记录包括:

所述电子设备获取所述第三修改记录对应的异常数据,并检测所述异常数据是否被成功处理,当所述异常数据在所述第一时间段终止之前一直没有被处理及/或当所述异常数据被成功处理时,所述电子设备删除所述第三修改记录,或者当所述异常数据正在被处理时,所述电子设备保留所述第三修改记录。

通过上述实施方式,能够删除一直没有被处理及/或被成功处理的操作记录,避免数据冗余,同时,保留正在被处理的数据,实现对异常处理过程的持续监控。

需要说明的是,本案分别对应不同的时间段建立了散列表,即所述第一散列表、所述至少一张第二散列表及所述至少一张第三散列表,并且在当前时间对应的所述第一时间段内,所述电子设备对建立的所述第一散列表只执行写入,即写入所述第一时间段内产生的所述第一修改记录。同时,在所述第一时间段内,校验所述第二散列表中的第二修改记录及所述第三散列表中的第三修改记录,也就是说,所述电子设备分开执行数据的写入与数据的校验读取过程,做到了读写分离,在数据校验的过程中,如果某条记录由于异常一直处于修复状态,则该条数据一直变化,一直被更新写入,直至异常被处理完成,则删除。而对于被判定为非异常的记录,则在一个周期内进行了两次校验(例如:记录x在前天写入,则在昨天校验一次,在今天校验一次,前天至今天属于一个周期),能够更加保证校验的准确性。而对于被判定为无异常的记录,则在一个周期结束后,自动被删除,以降低数据冗余,对于一个周期内没被执行任何操作的数据,也在周期结束后自动视为过期,即被删除。

在本发明的至少一个实施例中,所述方法还包括:

所述电子设备获取待删除记录,并计算所述待删除记录的第二哈希值,所述电子设备进一步计算所述第二哈希值与所述子表数量的商,并对计算得到的商进行取余运算,得到第二子表序号,所述电子设备分别删除每张第二散列表及每张第三散列表中与所述第二子表序号对应的修改记录。

可以理解的是,当一条记录被删除时,说明与该记录相关的异常已经被处理,或者该条记录没有异常,那么与该条记录相关的所有记录都将成为冗余记录,所述电子设备删除这些记录,以释放存储空间。

综上所述,本发明能够获取第一散列表及其余散列表,其中,所述第一散列表在第一时间段内处于记录状态,在所述第一散列表及所述其余散列表中存储着数据的修改记录,在所述第一时间段内,当检测到有数据被修改时,获取第一修改记录,并将所述第一修改记录写入所述第一散列表,同时在所述第一时间段内,获取并校验所述其余散列表中的修改记录,进而能够将数据的写入及数据的校验过程进行分离,并以修改记录作为数据处理的依据,既减少了对系统运行时资源的消耗,又保证了数据的完整性,同时,由于对数据进行了增量校验,进一步提高了数据校验的效率。

参见图2,在本实施例中,所述电子设备1可以是组成内容分发网络或者区块链网络的节点。

所述电子设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如数据管理程序。

本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,所述电子设备1既可以是总线型结构,也可以是星形结构,所述电子设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如所述电子设备1还可以包括输入输出设备、网络接入设备等。

需要说明的是,所述电子设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。存储器12在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器12还可以既包括电子设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如数据管理程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是所述电子设备1的控制核心(controlunit),利用各种接口和线路连接整个电子设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行数据管理程序等),以及调用存储在所述存储器12内的数据,以执行电子设备1的各种功能和处理数据。

所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个数据管理方法实施例中的步骤,例如图1所示的步骤s11、s12、s13、s14。

或者,所述处理器13执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如:获取第一散列表及其余散列表,其中,所述第一散列表在第一时间段内处于记录状态,在所述第一散列表及所述其余散列表中存储着数据的修改记录;在所述第一时间段内,当检测到有数据被修改时,获取第一修改记录;将所述第一修改记录写入所述第一散列表;在所述第一时间段内,获取并校验所述其余散列表中的修改记录。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的执行过程。例如,所述计算机程序可以被分割成获取单元110、发送单元111、写入单元112、校验单元113、计算单元114以及删除单元115。

总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及所述至少一个处理器13等之间的连接通信。

尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与至少一个处理器13逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。

可选地,该电子设备1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。

所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。

其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)。

图2仅示出了具有组件12-13,以及数据管理程序的电子设备1,本领域技术人员可以理解的是,图2示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

结合图1,所述电子设备1中的所述存储器12存储多个指令以实现一种数据管理方法,所述处理器13可执行所述多个指令从而实现:获取第一散列表及其余散列表,其中,所述第一散列表在第一时间段内处于记录状态,在所述第一散列表及所述其余散列表中存储着数据的修改记录;在所述第一时间段内,当检测到有数据被修改时,获取第一修改记录;将所述第一修改记录写入所述第一散列表;在所述第一时间段内,获取并校验所述其余散列表中的修改记录。

具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。

参照图3,为本发明数据管理系统的功能模块示意图。所述数据管理系统11包括获取单元110、发送单元111、写入单元112、校验单元113、计算单元114以及删除单元115。本发明所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。

获取单元110获取第一散列表及其余散列表。

其中,所述第一散列表在第一时间段内处于记录状态,在所述第一散列表及所述其余散列表中存储着数据的修改记录。

在本发明的至少一个实施例中,为了保证时间的通用性及准确性,所述获取单元110采用协调世界时(universaltimecoordinated,utc)配置所述第一时间段。

在本发明的至少一个实施例中,所述第一时间可以进行自定义配置。

在本发明的至少一个实施例中,所述其余散列表中包括至少一张第二散列表及至少一张第三散列表,每张第二散列表中存储着第二修改记录,每张第三散列表中存储着第三修改记录,每张第三散列表的数据写入时间早于每张第二散列表的数据写入时间,每张第二散列表的数据写入时间早于所述第一时间段。

例如,可以根据预设时长设置相应的时间段,且不同时间段之间在时间上首尾相接:所述获取单元110可以将所述当前时间所在的当天确定为所述第一时间段,进一步地,所述获取单元110将所述当天的前一天确定为所述第二散列表的数据写入时间,并将所述前一天的前一天确定为所述第三散列表的数据写入时间,也就是说,所述获取单元110分别以“今天”为所述第一时间段,以“昨天”为所述第二散列表的数据写入时间,并以“前天”为所述第三散列表的数据写入时间。

当然,在其他实施例中,为了适应不同的业务场景及不同的数据量,还可以采用其他划分方式,本发明对此不做限制。

另外,散列表的数量也可以根据不同的需求进行配置。

在本发明的至少一个实施例中,为每个时间段配置一张散列表,用于存储每个时间段的数据。

在本发明的至少一个实施例中,所述第一散列表、所述第二散列表及所述第三散列表是可以根据关键码值(keyvalue)而直接进行访问的数据结构,进而实现对信息的分散存储,且由于存储数据时带有明确的顺序性,因此读取速度更快。

在本发明的至少一个实施例中,所述第一散列表、所述第二散列表及所述第三散列表可以存储于非关系型数据库中,例如:couchbase数据库等。

由于非关系型数据库性能较佳,且容占能力强,因此,以非关系型数据库存储所述第一散列表、所述第二散列表及所述第三散列表,能够进一步提高数据的健壮性。

在本发明的至少一个实施例中,所述第一散列表、所述第二散列表及所述第三散列表中存储的数据还与时间有关,在进行数据存储的同时,也记录了数据产生的时间,也就是说,在记录每个数据时,还为每个数据添加了时间戳,以区分每条数据。

在所述第一时间段内,当检测到有数据被修改时,所述获取单元110获取第一修改记录。

例如:在所述第一时间段对应的“今天”,当有数据被修改时,说明该数据可能存在异常,或者该数据对应的任务有变化,记录这些数据的具体变化,作为所述第一修改记录。

通过上述实施方式,能够获取到所有被修改的数据的修改记录,以供后续使用。

写入单元112将所述第一修改记录写入所述第一散列表。

例如:在所述第一时间段对应的“今天”,当获取到数据a的修改记录时,由于所述第一散列表与所述第一时间段相对应,因此,所述写入单元112将所述数据a的修改记录写入所述第一散列表。

需要说明的是,在所述第一时间段内,所述写入单元112只记录所述第一修改记录,并不对所述第一修改记录进行校验,由于在所述第一修改记录写入的过程中并没有其他操作的干扰,因此降低了数据发生写入错误的可能性,保证了数据的健壮性。

通过上述实施方式,所述写入单元112只存储发生变化的数据,同时记录这些数据的变化情况作为所述第一修改记录,以供后续分析这些变化是否存在异常。

在本发明的至少一个实施例中,所述第一散列表与每张第二散列表及每张第三散列表中都包含有相同数量的子表。

可以理解的是,如果所述写入单元112不对所述第一散列表、所述第二散列表及所述第三散列表进行拆分,那么将由于数据量过大而影响数据的插入速度,因此,所述写入单元112将所述第一散列表、所述第二散列表及所述第三散列表分别拆分为相同数量的子表,不仅方便对数据进行快速查询,且提高了数据的插入速度。

在本发明的至少一个实施例中,所述写入单元112将所述第一修改记录写入所述第一散列表包括:

所述写入单元112计算所述第一修改记录的第一哈希值,并确定所述第一散列表中的子表数量,所述写入单元112计算所述第一哈希值与所述子表数量的商,进一步对计算得到的商进行取余运算,得到第一子表序号,所述写入单元112将所述第一修改记录写入所述第一子表序号对应的子表中。

例如:所述第一散列表中存储有10000张子表,且子表序号为0-9999,当所述写入单元112获取到所述第一修改记录时,计算所述第一修改记录所对应的字符串的哈希值,得到一个整数10001,进一步地,所述写入单元112利用整数10001除以子表数量10000,得到运算结果,并对该运算结果取余,得到数字1,则所述写入单元112获取子表序号为1的子表1,并将所述第一修改记录写入所述子表1。

通过上述实施方式,所述写入单元112能够利用散列表的自身属性进行计算,进而得到第一修改记录所属的子表,实现对所述第一修改记录快速且有针对性的存储。

在所述第一时间段内,校验单元113获取并校验所述其余散列表中的修改记录。

在本发明的至少一个实施例中,所述校验单元113校验每张第二散列表中的第二修改记录包括:

所述校验单元113确定所述第二修改记录对应的数据是否异常,当所述第二修改记录对应的数据有异常时,所述校验单元113发出警报。

例如:所述校验单元113获取所述第二修改记录对应的调度原则,当确定所述第二修改记录对应的任务应该部署在5个机器上,但是实际部署在3个机器上时,则所述校验单元113确定所述第二修改记录对应的数据存在异常,所述校验单元113发出警报,以便及时对所述任务进行重新部署。

通过上述实施方式,所述校验单元113能够执行对所述第二散列表中第二修改记录对应的数据的第一次校验。

需要说明的是,所述校验单元113还可以借助其他服务器确定所述第二修改记录对应的数据是否异常。

在本发明的至少一个实施例中,为了提高异常处理的效率,所述校验单元113可以借助其他服务器处理所述第二修改记录对应的数据,也就是说,所述校验单元113只负责向其他服务器抛出异常,但不处理异常,这样,通过多方配合,能够有效提高发现异常以处理异常的效率。

具体地,所述异常数据包括异常部署数据,所述方法还包括:

发送单元111发送所述异常部署数据至服务器进行处理。

其中,所述服务器处理所述异常部署数据包括:

所述服务器根据所述异常部署数据确定部署任务的当前设备量以及部署任务的配置设备量,并根据所述当前设备量及所述配置设备量确定待部署设备量,进一步地,所述服务器基于所述待部署设备量优化所述任务的部署。

在本发明的至少一个实施例中,所述校验单元113校验每张第三散列表中的第三修改记录包括:

所述校验单元113获取所述第三修改记录对应的异常数据,并检测所述异常数据是否被成功处理,当所述异常数据在所述第一时间段终止之前一直没有被处理及/或当所述异常数据被成功处理时,所述校验单元113删除所述第三修改记录,或者当所述异常数据正在被处理时,所述校验单元113保留所述第三修改记录。

通过上述实施方式,能够删除一直没有被处理及/或被成功处理的操作记录,避免数据冗余,同时,保留正在被处理的数据,实现对异常处理过程的持续监控。

需要说明的是,本案分别对应不同的时间段建立了三张散列表,即所述第一散列表、所述至少一张第二散列表及所述至少一张第三散列表,并且在当前时间对应的所述第一时间段内,所述写入单元112对建立的所述第一散列表只执行写入,即写入所述第一时间段内产生的所述第一修改记录。同时,在所述第一时间段内,所述校验单元113校验所述第二散列表中的第二修改记录及所述第三散列表中的第三修改记录,也就是说,分开执行数据的写入与数据的校验读取过程,做到了读写分离,在数据校验的过程中,如果某条记录由于异常一直处于修复状态,则该条数据一直变化,一直被更新写入,直至异常被处理完成,则删除。而对于被判定为非异常的记录,则在一个周期内进行了两次校验(例如:记录x在前天写入,则在昨天校验一次,在今天校验一次,前天至今天属于一个周期),能够更加保证校验的准确性。而对于被判定为无异常的记录,则在一个周期结束后,自动被删除,以降低数据冗余,对于一个周期内没被执行任何操作的数据,也在周期结束后自动视为过期,即被删除。

在本发明的至少一个实施例中,所述方法还包括:

所述获取单元110获取待删除记录,计算单元114计算所述待删除记录的第二哈希值,所述计算单元114进一步计算所述第二哈希值与所述子表数量的商,并对计算得到的商进行取余运算,得到第二子表序号,删除单元115分别删除每张第二散列表及每张第三散列表中与所述第二子表序号对应的修改记录。

可以理解的是,当一条记录被删除时,说明与该记录相关的异常已经被处理,或者该条记录没有异常,那么与该条记录相关的所有记录都将成为冗余记录,所述删除单元115删除这些记录,以释放存储空间。

综上所述,本发明能够获取第一散列表及其余散列表,其中,所述第一散列表在第一时间段内处于记录状态,在所述第一散列表及所述其余散列表中存储着数据的修改记录,在所述第一时间段内,当检测到有数据被修改时,获取第一修改记录,并将所述第一修改记录写入所述第一散列表,同时在所述第一时间段内,获取并校验所述其余散列表中的修改记录,进而能够将数据的写入及数据的校验过程进行分离,并以修改记录作为数据处理的依据,既减少了对系统运行时资源的消耗,又保证了数据的完整性,同时,由于对数据进行了增量校验,进一步提高了数据校验的效率。

在上述实施例中,可以全部或部分地通过软件、硬件设备、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、移动硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态移动硬盘solidstatedisk(ssd))等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件设备的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动移动硬盘、只读存储器(rom,read-onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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