一种用于流计算的数据处理方法与设备的制造方法

文档序号:9921959阅读:463来源:国知局
一种用于流计算的数据处理方法与设备的制造方法
【技术领域】
[0001]本申请涉及计算机领域,尤其涉及一种用于流计算的数据处理技术。
【背景技术】
[0002]在分布式流计算过程中,会产生很多中间数据结果,通常后续计算需要应用之前计算的中间数据结果。一般做法是在规定时间内,将所述中间数据结果保存在对应内存中,以便快速地满足后续计算需要,但是当流处理信息量增大,有限的内存存储过多的中间数据结果会导致内存溢出,甚至使得整个流计算无法进行。
[0003]此时,现有技术通过引入辅助存储装置,将中间结果保存到辅助存储装置中并不断地释放内存空间来解决内存溢出问题。但是在实际计算中,对于接收到的流消息,需要先进行一次内存查找,当判断不存在时,需要再进行一次辅助存储装置查找,若流消息是新消息,则所述辅助存储装置查找的时间就是被浪费的时间,所以当全部消息中新消息的比重较大时,会带来极大的时间开销,对整个流计算系统的计算速度产生较大的不利影响。

【发明内容】

[0004]本申请的目的是提供一种用于流计算的数据处理方法与设备。
[0005]根据本申请的一个方面,提供了一种用于流计算的数据处理方法,包括:
[0006]获取流计算信息中的目标消息;
[0007]通过布隆过滤器判断对应内存是否包括所述目标消息所对应的中间数据结果;
[0008]当判断所述对应内存包括所述中间数据结果时,检验所述中间数据结果是否已存在;
[0009]基于检验所得信息,对所述目标消息执行相应的数据计算。
[0010]根据本申请的另一方面,还提供了一种用于流计算的数据处理设备,包括:
[0011]第一装置,用于获取流计算信息中的目标消息;
[0012]第二装置,用于通过布隆过滤器判断对应存储是否包括所述目标消息所对应的中间数据结果;
[0013]第三装置,用于当判断所述对应存储包括所述中间数据结果时,检验所述中间数据结果是否已存在;
[0014]第四装置,用于基于检验所得信息,对所述目标消息执行相应的数据计算。
[0015]与现有技术相比,本申请通过布隆过滤器检测目标消息对应的中间结果信息是否已经存在,以及对被判断为已存在的中间结果信息的进一步检测,实现对目标消息的流计算;由于布隆过滤器具有非常好的空间和时间效率,本申请显著减少了内存查询所需的时间,从而有效提高了流计算的实时性,并减少了响应延迟、改善了用户的使用体验。同时,由于布隆过滤器极低的误判率,它避免了现有技术中当接收到新的流消息时绝大多数需要到辅助存储中进行的无用查找。此外,本申请克服了布隆过滤器因存在误判而导致时延增加而不能应用于流计算的技术偏见,通过对由布隆过滤器判断为已存在的中间结果信息进行进一步的检验,来排除布隆过滤器可能导致的误判结果。在本申请中布隆过滤器的误判所带来的不利影响是产生极少量无用的辅助存储查找,但是它所损耗的不必要时间非常少。总体而言,本申请与现有技术相比可以保障在不影响内存工作的前提下最大程度地提高流计算系统的计算速度。
【附图说明】
[0016]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0017]图1示出根据本申请一个方面的一种用于流计算的数据处理设备示意图;
[0018]图2示出根据本申请另一个方面的一种用于流计算的数据处理方法流程图。
[0019]附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0020]下面结合附图对本申请作进一步详细描述。
[0021]在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0022]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0023]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0024]图1示出根据本申请一个方面的一种用于流计算的数据处理设备示意图。所述用于流计算的数据处理设备I包括第一装置101、第二装置102、第三装置103和第四装置104。
[0025]其中,第一装置101获取流计算信息中的目标消息;第二装置102通过布隆过滤器判断对应存储是否包括所述目标消息所对应的中间数据结果;第三装置103当判断所述对应存储包括所述中间数据结果时,检验所述中间数据结果是否已存在;第四装置104基于检验所得信息,对所述目标消息执行相应的数据计算。
[0026]具体地,所述用于流计算的数据处理设备I的第一装置101获取流计算信息中的目标消息。在此,所述流计算的应用场景包括实时计算,例如,所述流计算所要完成的任务一般可以抽象为基于一个或是多个业务维度的完成的实时计算。例如,在电子商务平台中计算商品成交金额,可以设置一个维度,如卖家,设定基于卖家的交易信息计算成交金额,如某个确定卖家的实时交易金额的计算;也可以设置多个维度,如卖家、商品类目,设定基于卖家和商品类目两个维度的信息计算商品的成交金额。所述流计算信息中的目标消息包括进行对应流计算所需要的具体的数据信息,如确定的卖家的交易信息,确定的商品类目对应的成交信息,同时,所述目标消息中也可能包括一些所述目标流计算并不需要的其他信息,例如其他业务维度的数据信息等等。对于目标流计算,优选地,可以先从目标消息中筛选出当前计算中实际需要的有用信息,并基于所述有用信息进行后续的操作。此外,所述流计算信息中的目标消息的获取可以基于实际的需要设置一定的获取周期,例如每隔T时间获取一次目标消息等。
[0027]在此,本领域技术人员应能理解,上述流计算的应用场景包括实时计算仅为举例,其他应用场景若是可适用本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0028]接着,所述用于流计算的数据处理设备I的第二装置102通过布隆过滤器判断对应存储是否包括所述目标消息所对应的中间数据结果。
[0029]具体地,在此,所述对应存储包括但不限于内存、或是各类磁盘、软盘等辅助存储。优选地,所述布隆过滤器一般保存在相应内存中,是一种空间效率很高的随机数据结构,其利用位数组表示一个集合,并能够判断一个元素是否属于所述集合。在此,本领域技术人员应该能够理解,所述布隆过滤器利用位数组匹配对应的目标消息,可以认为所述布隆过滤器对于曾存在于所述内存的目标消息保存了与其对应的消息标识,进而对于当前目标消息,可以通过与所述布隆过滤器中保存的消息标识进行匹配,从而判断所述目标消息是否曾经存在于所述内存。基于所述目标消息与所述中间数据结果的对应关系,所述内存本应该包含曾经存在于所述内存中的目标消息对应的中间结果数据,但是为了避免所述内存溢出,部分目标消息对应的中间结果数据被置换出所述内存,所以可能存在部分目标消息对应的中间结果数据在当前所述内存中查找不到,但同时,因为内存中的中间结果数据会全部保存在辅助存储中,进而基于所述目标消息与所述中间数据结果的对应关系,可以判断对应辅助存储中是否包括所述目标消息所对应的中间数据结果。进一步,基于布隆过滤器的原理,所述布隆过滤器做出所述目标消息未曾存在于内存中的判定是准确的,而若是判断所述目标消息曾经存在于所述内存中则可能出现一定的误差,需要进一步检验。在此,虽然布隆过滤器存在误判,但是其误判率很低,同时,所述布隆过滤器还能够在占用较少内存空间的同时提供高效的判断操作,所以如果对布隆过滤器的存在误判可能的判断结果进一步进行合理检验,就可以很好地发挥布隆过滤器在实时计算中作为集合元素存在的判断方法的优势,从而在保障不影响内存工作的前提下最大程度地提高了流计算系统的计算速度。
[0030]此外,所述中间数据结果包括所述流计算对应的历史计算结果,也是基于目标消息进行当前计算的数据基础。例如,计算一定周期的某一商品交易额的增长幅度,则需要知道当前该商品的交易额以及同一商品在历史周期中的交易额,而所述历史周期中该商品的交易额即保存为所述流计算的目标消息对应的中间数据结果。更进一步,若是所述目标消息信息量较大,可以对其进行信息筛选,从所述目标消息中初步获得有用信息,并对筛选出的有用信息进行保存,和所述历史计算结果一样作为中间数据结果,提供给后续计算取用。
[0031]在此,本领域技术人员应能理解,上述布隆过滤器仅为举例,其他判断方法若是可适用本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0032]接着,所述用于流计算的数据处理设备I的第三装置103当判断所述对应存储包括所述中间数据结果时,检验所述中间数据结果是否已存在。在此,通过所述布隆过滤器对到达的目标消息进行初次判断,会出现对应的不同结果,例如,其中之一的结果是目
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1