发明内容
本发明提供了一种数据更新方法及装置,能够对更新比例较高的分类中的对象信息优先更新,最大程度的保证数据的实时性与准确性。
本发明提供了一种数据更新方法,所述方法包括:
将分布式存储的各个更新日志信息中具有相同分类标识的对象信息确定为属于同一分类的对象信息,所述更新日志信息包括具有分类标识和更新标识的对象信息,所述分类标识用于标识对象信息所属分类,所述更新标识用于标识对象信息的更新状态;
以分类为单位,计算各个分类对应的更新比例,其中,任一分类对应的更新比例为所述分类中已更新的对象信息的数量与所述分类中对象信息总数量的比值;
根据所述更新比例确定各个分类的更新顺序,并依据所述更新顺序完成对象信息的更新。
优选地,所述将具有相同分类标识的对象信息确定为属于同一分类的对象信息之后,还包括:
判断各个分类前两次更新的时间间隔是否大于预设时间;
当任一分类前两次更新的时间间隔大于所述预设时间时,对所述分类中的对象信息优先更新。
本发明还提供了一种数据更新装置,所述装置包括:
确定模块,用于将分布式存储的各个更新日志信息中具有相同分类标识的对象信息确定为属于同一分类的对象信息,所述更新日志信息包括具有分类标识和更新标识的对象信息,所述分类标识用于标识对象信息所属分类,所述更新标识用于标识对象信息的更新状态;
计算模块,用于以分类为单位,计算各个分类对应的更新比例,其中,任一分类对应的更新比例为所述分类中已更新的对象信息的数量与所述分类中对象信息总数量的比值;
第一更新模块,用于根据所述更新比例确定各个分类的更新顺序,并依据所述更新顺序完成对象信息的更新。
优选地,所述装置还包括:
判断模块,用于判断各个分类前两次更新的时间间隔是否大于预设时间;
第二更新模块,用于当所述判断模块的结果为是时,对所述分类中的对象信息优先更新。
本发明首先获取更新日志信息,其次,确定属于同一分类的对象信息,并以分类为单位,确定各个分类对应的更新比例,最后,根据各个分类对应的更新比例的大小确定更新顺序,完成对象信息的更新。由于本实施例对更新比例大的分类优先更新,避免不经常更新的分类长时间占用带宽和时间。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
参考图1,图1为本实施例提供的数据更新方法流程图,所述方法可以包括:
S101:将分布式存储的各个更新日志信息中具有相同分类标识的对象信息确定为属于同一分类的对象信息,所述更新日志信息包括具有分类标识和更新标识的对象信息,所述分类标识用于标识对象信息所属分类,所述更新标识用于标识对象信息的更新状态。
本实施例中,完成更新操作之后保存更新日志信息,在进行下一次更新操作之前,首先确定分布式存储的各个更新日志信息,其中,更新日志信息以分布式的形式被存储,实际应用中,由于数据更新的方法中通常以分类为单位进行更新,所以在进行数据更新之前,首先分布式统计各个更新日志信息中具有相同分类标识的对象信息,并将其确定为属于同一分类的对象信息。其中,分布式存储的更新日志信息中包括对象信息的更新记录,如每个对象信息均具有更新标识,用于标识所述对象信息的更新状态(已更新或未更新)。或者,具有更新标识的对象信息表示已更新,未带有更新标识的对象信息表示未更新。具体的,可以区分已更新和未更新的对象信息的标识方法均属于本实施例的保护范围。
另外,所述更新日志信息中的对象信息均具有分类标识,用于标识所述对象信息所属的分类,也就是说,具有相同分类标识的对象信息属于同一个分类。由于数据更新的方法中均以分类为单位进行更新,所以属于同一个分类的对象信息的更新时间通常是相同的。
由于本实施例预先将更新日志信息分布式存储,所以在利用所述更新日志信息时,可以多线程并行处理更新日志信息,提高了数据更新效率。
S102:以分类为单位,计算各个分类对应的更新比例,其中,任一分类对应的更新比例为所述分类中已更新的对象信息的数量与所述分类中对象信息总数量的比值。
本实施例中,将所述更新日志信息中的对象信息进行分类之后,计算各个分类对应的更新比例,具体的,由于各个更新日志信息分布式存储,所以本步骤可以针对分布式存储的各个更新日志信息多线程并行计算各个更新日志信息中的各个分类对应的更新比例。
具体的,统计一个分类包括的对象信息的总数量,同时还可以根据各个对象信息的更新标识统计该分类中已更新的对象信息数量,最后,计算上述已更新的对象信息数量与对象信息的总数量比值得到所述分类对应的更新比例。可以理解的是,一个分类对应的更新比例的大小可以表示所述分类中对象信息被更新的比例较大。
S103:根据所述更新比例确定各个分类的更新顺序,并依据所述更新顺序完成对象信息的更新。
本实施例中,当确定分布式存储的各个部分的更新日志信息中的各个分类的更新比例之后,根据各个分类对应的更新比例的大小对各个分类进行更新优先级的排序,具体的,更新比例较大的分类中的对象信息优先被更新。
实际操作中,可以根据各个分类对应的更新比例的大小确定各个分类的更新顺序,依据所述更新顺序将各个分类依次加入至更新队列,按照所述更新队列中各个分类的次序依次完成各个分类中对象信息的更新。
一种优选实施方案中,可以首先根据各个分类对应的更新比例确定各个分类对应的权重,利用各个分类的权重最终确定更新顺序。其中,可以将更新比例不小于30%的分类对应的权重确定为所述分类对应的更新比例加1,同时,将更新比例小于30%的分类对应的权重确定为所述分类对应的更新比例加0.5。当通过上述规则确定各个分类对应的权重后,根据权重的大小确定各个分类的更新顺序。
本实施例首先获取更新日志信息,其次,确定属于同一分类的对象信息,并以分类为单位,确定各个分类对应的更新比例,最后,根据各个分类对应的更新比例的大小确定更新顺序,完成对象信息的更新。由于本实施例对更新比例大的分类优先更新,避免不经常更新的分类长时间占用带宽和时间。
参考图2,图2为本实施例提供的数据更新方法流程图,所述方法包括:
S201:将分布式存储的各个更新日志信息中具有相同分类标识的对象信息确定为属于同一分类的对象信息,所述更新日志信息包括具有分类标识和更新标识的对象信息,所述分类标识用于标识对象信息所属分类,所述更新标识用于标识对象信息的更新状态。
以上步骤与S101相同,可以参照理解。
S202:判断是否存在前两次更新的时间间隔是否大于预设时间的分类,如果是,则进入S203,如果否,则直接进入S204。
本实施例中,多线程并行计算分布式存储的更新日志信息中各个分类前两次更新的时间间隔,判断各个分类的时间间隔是否大于预设时间,如果存在前两次更新的时间间隔大于预设时间的分类,则执行S203,否则直接执行S204。
S203:对所述前两次更新的时间间隔大于预设时间的分类中的对象信息优先更新,进入S204。
本实施例中,由于前两次更新的时间间隔大于预设时间的分类通常较长时间未发生更新操作,所以,本实施例优先更新前两次更新的时间间隔大于预设时间的分类中的对象信息。具体的,可以将上述分类最先加入更新队列。另外,如果上述分类数量较多,可以先将上述分类进行排序,再加入更新队列。
S204:计算各个分类对应的更新比例,其中,任一分类对应的更新比例为所述分类中已更新的对象信息的数量与所述分类中对象信息总数量的比值。
本实施例中,如果存在前两次更新的时间间隔大于预设时间的分类,本实施例可以在优先更新上述分类的前提下计算其他分类对应的更新比例。
另一种情况,如果不存在前两次更新的时间间隔大于预设时间的分类,本实施例计算所有分类对应的更新比例。
S205:根据所述更新比例确定各个分类的更新顺序,并依据所述更新顺序完成对象信息的更新。
实际操作中,将前两次更新的时间间隔大于预设时间的分类优先放入更新队列,并对其优先更新。对于其他的分类则按照更新比例对各个分类进行排序,并依此加入更新队列,最终按照更新队列中各个分类的顺序进行更新。
本实施例还优先更新前两次更新的时间间隔大于预设时间,有效的避免长时间未更新某些分类。
实施例二
参考图3,图3为本实施例提供了一种应用于比价购物网站的数据更新方法流程图,所述方法包括:
S301:定时分布式读取更新日志信息,所述更新日志信息包括具有分类标识和更新标识的商品信息,所述分类标识用于标识商品信息所属分类,所述更新标识用于标识商品信息的更新状态。
S302:统计并计算同一分类的商品信息的更新比例和前两次更新的时间间隔大于预设时间的分类。
本实施例中,分布式读取更新日志信息提高日志读取效率,具体的,可以将更新日志信息加入hdfs文件存储系统中,使用hive框架对hdfs文件存储系统里的数据进行统计,得到各个分类对应的更新比例,以及确定前两次更新的时间间隔大于预设时间的分类。
S303:根据统计结果确定各个分类的更新顺序,并依据所述更新顺序完成商品信息的更新。
实际操作中,将前两次更新的时间间隔大于预设时间的分类设置为最高的更新优先级,对于其他分类,本实施例根据各个分类的更新比例确定其更新顺序,最终得到所有分类的更新顺序,依据所述更新顺序完成商品信息的更新。
本实施例提供的应用于比价购物网站的数据更新方法能够根据更新日志信息得出更新较多,频率较快的分类,并对这些分类进行排序,优先更新更新较多,频率较快的分类,本实施例充分的利用现有的带宽和资源,避免话费较长时间执行很多不必要的更新操作,大大的提高了比价购物网站中商品信息的更新实时性。
实施例三
参考图4,图4为本实施例提供的数据更新装置结构图,所述装置包括:
确定模块401,用于将分布式存储的各个更新日志信息中具有相同分类标识的对象信息确定为属于同一分类的对象信息,所述更新日志信息包括具有分类标识和更新标识的对象信息,所述分类标识用于标识对象信息所属分类,所述更新标识用于标识对象信息的更新状态;
计算模块402,用于以分类为单位,计算各个分类对应的更新比例,其中,任一分类对应的更新比例为所述分类中已更新的对象信息的数量与所述分类中对象信息总数量的比值;
第一更新模块403,用于根据所述更新比例确定各个分类的更新顺序,并依据所述更新顺序完成对象信息的更新。
另外,所述装置还可以包括:
判断模块,用于判断各个分类前两次更新的时间间隔是否大于预设时间;
第二更新模块,用于当所述判断模块的结果为是时,对所述分类中的对象信息优先更新。
本实施例提供的数据更新装置的工作原理为将分布式存储的各个更新日志信息中具有相同分类标识的对象信息确定为属于同一分类的对象信息,所述更新日志信息包括具有分类标识和更新标识的对象信息,所述分类标识用于标识对象信息所属分类,所述更新标识用于标识对象信息的更新状态;计算模块以分类为单位,计算各个分类对应的更新比例,其中,任一分类对应的更新比例为所述分类中已更新的对象信息的数量与所述分类中对象信息总数量的比值;第一更新模块根据所述更新比例确定各个分类的更新顺序,并依据所述更新顺序完成对象信息的更新。
另外,所述装置还可以包括:判断模块判断各个分类前两次更新的时间间隔是否大于预设时间;第二更新模块在所述判断模块的结果为是时,对所述分类中的对象信息优先更新。
本实施例首先将分布式存储的更新日志信息中具有相同分类标识的对象信息确定为属于同一分类的对象信息,并以分类为单位,确定各个分类对应的更新比例,最后,根据各个分类对应的更新比例的大小确定更新顺序,完成对象信息的更新。由于本实施例对更新比例大的分类优先更新,避免不经常更新的分类长时间占用带宽和时间。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明实施例所提供的数据更新方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。