一种数据判定方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:23764819 阅读:39 留言:0更新日期:2020-04-11 19:16
本发明专利技术公开了一种数据判定方法、装置、设备及计算机可读存储介质,该方法包括:获取待判定数据和多级过滤器;其中,多级过滤器包括按第一预设时间间隔生成更新的目标数据集对应的布隆过滤器和按第二预设时间间隔生成更新的目标数据集对应的删除标志布隆过滤器,删除标志布隆过滤器的数据为包括删除标记位;利用多级过滤器,判定目标数据集中是否存在待判定数据;本发明专利技术在现有的布隆过滤器的基础上加入了删除标志布隆过滤器,利用删除标志布隆过滤器提升数据更新的频率,且通过删除标志布隆过滤器的数据中删除标记位的设置,使多级过滤器的使用占用内存少且高性能,为大规模业务处理系统提供了基础保障,提高了系统性能。

A data determination method, device, equipment and computer readable storage medium

【技术实现步骤摘要】
一种数据判定方法、装置、设备及计算机可读存储介质
本专利技术涉及数据处理
,特别涉及一种数据判定方法、装置、设备及计算机可读存储介质。
技术介绍
随着数据处理系统和业务规模的快速提升服务器所需处理的数据量越来越大,对处理大规模数据性能要求越来越严格和迫切。BloomFilter(布隆过滤器)算法实现了判断一个元素是否属于一个数量十分大的集合,具有极高的性能,应用于数据重复判断、网络缓存共享和字符串匹配等基础但对性能要求极高的应用场景。布隆过滤器算法实现步骤:1、建立BloomFilter过滤器(布隆过滤器)和k个BloomFilterHash函数;2、用数据集合中的数据和BloomFilterHash函数初始化BloomFilter过滤器;3、应用服务加载BloomFilter过滤器,根据BloomFilterHash函数及其BloomFilter过滤器中对应的状态位判定是否存在,算法复杂度为O(k)。其中,第1和2步需要提前生成,因此无法实现数据的实时更新。如需更新,需要周期性执行上述步骤。现有技术中,利用现有的布隆过滤器虽然可以判定数据是否属于数据集,但布隆过滤器必须提前生成,由于布隆过滤器的数据量往往十分庞大,难以实现数据的实时更新;并且虽然CountingBloomFilter(一种改进型BloomFilter)采用单独标记数据实现数据是否删除,从而可以支持数据的实时更新,但其中的标记数据会占用大量内存,降低了服务器的性能。因此,如何能够提供一种占用内存少且高性能的数据判定方法,并且提升数据更新的频率,为大规模业务处理系统提供基础保障,提高系统性能,是现今急需解决的问题。
技术实现思路
本专利技术的目的是提供一种数据判定方法、装置、设备及计算机可读存储介质,以通过多级过滤器的使用,提升数据更新的频率,使数据的判定占用内存少且高性能。为解决上述技术问题,本专利技术提供一种数据判定方法,包括:获取待判定数据和多级过滤器;其中,所述多级过滤器包括按第一预设时间间隔生成更新的目标数据集对应的布隆过滤器和按第二预设时间间隔生成更新的所述目标数据集对应的删除标志布隆过滤器,所述第二预设时间间隔小于所述第一预设时间间隔,所述删除标志布隆过滤器的数据为所述布隆过滤器的最新生成时间至所述删除标志布隆过滤器的最新生成时间之间所述布隆过滤器的数据中相对于所述目标数据集未删除或未增加的数据,所述删除标志布隆过滤器的数据为包括删除标记位;利用所述多级过滤器,判定所述目标数据集中是否存在所述待判定数据。可选的,所述多级过滤器还包括:哈希表;其中,所述哈希表的数据为所述删除标志布隆过滤器的最新生成时间至当前时间之间所述布隆过滤器和所述删除标志布隆过滤器的数据中相对于所述目标数据集未删除或未增加的数据。可选的,所述利用所述多级过滤器,判定所述目标数据集中是否存在所述待判定数据,包括:判断所述待判定数据是否为所述哈希表中的新增数据;其中,所述新增数据为所述布隆过滤器和所述删除标志布隆过滤器的数据中相对于所述目标数据集未增加的数据;若是,则确定所述目标数据集中存在所述待判定数据;若否,则判断所述待判定数据是否为所述哈希表中的删除数据;其中,所述删除数据为所述布隆过滤器和所述删除标志布隆过滤器的数据中相对于所述目标数据集未删除的数据;若所述待判定数据为所述删除数据,则确定所述目标数据集中不存在所述待判定数据;若所述待判定数据不为所述删除数据,则判断所述删除标志布隆过滤器的数据中是否存在目标数据,且所述目标数据的删除标记位为未删除标志;其中,所述目标数据为删除标志布隆过滤器的数据中所述待判定数据对应的数据;若所述删除标志布隆过滤器的数据中存在所述目标数据且所述目标数据的删除标记位为未删除标志,则确定所述目标数据集中存在所述待判定数据;若所述删除标志布隆过滤器的数据中不存在所述目标数据或所述目标数据的删除标记位为删除标志,则判断所述删除标志布隆过滤器的数据中是否存在所述目标数据,且所述目标数据的删除标记位为删除标志;若所述删除标志布隆过滤器的数据中存在所述目标数据且所述目标数据的删除标记位为删除标志,则确定所述目标数据集中不存在所述待判定数据;若所述删除标志布隆过滤器的数据中不存在所述目标数据,则判断所述布隆过滤器的数据中是否存在所述待判定数据;若所述布隆过滤器的数据中存在所述待判定数据,则确定所述目标数据集中存在所述待判定数据;若所述布隆过滤器的数据中不存在所述待判定数据,则确定所述目标数据集中不存在所述待判定数据。可选的,所述删除标记位为一个比特位。可选的,所述第一预设时间间隔为24小时,所述第二预设时间间隔为30分钟。可选的,获取所述多级过滤器的过程,包括:根据所述目标数据集,按所述第一预设时间间隔生成所述布隆过滤器,并将之前生成的所述布隆过滤器、所述删除标志布隆过滤器和哈希表删除;根据所述目标数据集,按所述第二预设时间间隔生成所述删除标志布隆过滤器,并将之前生成的所述删除标志布隆过滤器和所述哈希表删除;根据所述目标数据集,实时生成或更新所述哈希表。本专利技术还提供了一种数据判定装置,包括:获取模块,用于获取待判定数据和多级过滤器;其中,所述多级过滤器包括按第一预设时间间隔生成更新的目标数据集对应的布隆过滤器和按第二预设时间间隔生成更新的所述目标数据集对应的删除标志布隆过滤器,所述第二预设时间间隔小于所述第一预设时间间隔,所述删除标志布隆过滤器的数据为所述布隆过滤器的最新生成时间至所述删除标志布隆过滤器的最新生成时间之间所述布隆过滤器的数据中相对于所述目标数据集未删除或未增加的数据,所述删除标志布隆过滤器的数据为包括删除标记位;判定模块,用于利用所述多级过滤器,判定所述目标数据集中是否存在所述待判定数据。可选的,所述获取模块,包括:第一生成子模块,用于根据所述目标数据集,按所述第一预设时间间隔生成所述布隆过滤器,并将之前生成的所述布隆过滤器、所述删除标志布隆过滤器和哈希表删除;其中,所述哈希表的数据为所述删除标志布隆过滤器的最新生成时间至当前时间之间所述布隆过滤器和所述删除标志布隆过滤器的数据中相对于所述目标数据集未删除或未增加的数据;第二生成子模块,用于根据所述目标数据集,按所述第二预设时间间隔生成所述删除标志布隆过滤器,并将之前生成的所述删除标志布隆过滤器和所述哈希表删除;第三生成子模块,用于根据所述目标数据集,实时生成或更新所述哈希表。本专利技术还提供了一种数据判定设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述任一项所述的数据判定方法的步骤。此外,本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的数据判定方法的步骤。本专利技术所提供的一种数据判定方本文档来自技高网
...

【技术保护点】
1.一种数据判定方法,其特征在于,包括:/n获取待判定数据和多级过滤器;其中,所述多级过滤器包括按第一预设时间间隔生成更新的目标数据集对应的布隆过滤器和按第二预设时间间隔生成更新的所述目标数据集对应的删除标志布隆过滤器,所述第二预设时间间隔小于所述第一预设时间间隔,所述删除标志布隆过滤器的数据为所述布隆过滤器的最新生成时间至所述删除标志布隆过滤器的最新生成时间之间所述布隆过滤器的数据中相对于所述目标数据集未删除或未增加的数据,所述删除标志布隆过滤器的数据为包括删除标记位;/n利用所述多级过滤器,判定所述目标数据集中是否存在所述待判定数据。/n

【技术特征摘要】
1.一种数据判定方法,其特征在于,包括:
获取待判定数据和多级过滤器;其中,所述多级过滤器包括按第一预设时间间隔生成更新的目标数据集对应的布隆过滤器和按第二预设时间间隔生成更新的所述目标数据集对应的删除标志布隆过滤器,所述第二预设时间间隔小于所述第一预设时间间隔,所述删除标志布隆过滤器的数据为所述布隆过滤器的最新生成时间至所述删除标志布隆过滤器的最新生成时间之间所述布隆过滤器的数据中相对于所述目标数据集未删除或未增加的数据,所述删除标志布隆过滤器的数据为包括删除标记位;
利用所述多级过滤器,判定所述目标数据集中是否存在所述待判定数据。


2.根据权利要求1所述的数据判定方法,其特征在于,所述多级过滤器还包括:哈希表;
其中,所述哈希表的数据为所述删除标志布隆过滤器的最新生成时间至当前时间之间所述布隆过滤器和所述删除标志布隆过滤器的数据中相对于所述目标数据集未删除或未增加的数据。


3.根据权利要求2所述的数据判定方法,其特征在于,所述利用所述多级过滤器,判定所述目标数据集中是否存在所述待判定数据,包括:
判断所述待判定数据是否为所述哈希表中的新增数据;其中,所述新增数据为所述布隆过滤器和所述删除标志布隆过滤器的数据中相对于所述目标数据集未增加的数据;
若是,则确定所述目标数据集中存在所述待判定数据;
若否,则判断所述待判定数据是否为所述哈希表中的删除数据;其中,所述删除数据为所述布隆过滤器和所述删除标志布隆过滤器的数据中相对于所述目标数据集未删除的数据;
若所述待判定数据为所述删除数据,则确定所述目标数据集中不存在所述待判定数据;
若所述待判定数据不为所述删除数据,则判断所述删除标志布隆过滤器的数据中是否存在目标数据,且所述目标数据的删除标记位为未删除标志;其中,所述目标数据为删除标志布隆过滤器的数据中所述待判定数据对应的数据;
若所述删除标志布隆过滤器的数据中存在所述目标数据且所述目标数据的删除标记位为未删除标志,则确定所述目标数据集中存在所述待判定数据;
若所述删除标志布隆过滤器的数据中不存在所述目标数据或所述目标数据的删除标记位为删除标志,则判断所述删除标志布隆过滤器的数据中是否存在所述目标数据,且所述目标数据的删除标记位为删除标志;
若所述删除标志布隆过滤器的数据中存在所述目标数据且所述目标数据的删除标记位为删除标志,则确定所述目标数据集中不存在所述待判定数据;
若所述删除标志布隆过滤器的数据中不存在所述目标数据,则判断所述布隆过滤器的数据中是否存在所述待判定数据;
若所述布隆过滤器的数据中存在所述待判定数据,则确定所述目标数据集中存在所述待判定数据;
若所述布隆过滤器的数据中不存在所...

【专利技术属性】
技术研发人员:张连法
申请(专利权)人:北京浪潮数据技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1