CN111563199B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN111563199B CN111563199B CN202010340020.9A CN202010340020A CN111563199B CN 111563199 B CN111563199 B CN 111563199B CN 202010340020 A CN202010340020 A CN 202010340020A CN 111563199 B CN111563199 B CN 111563199B
- Authority
- CN
- China
- Prior art keywords
- bloom filter
- determining
- feedback result
- queried
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/735—Filtering based on additional data, e.g. user or group profiles
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据处理方法及装置,其方法包括:获待查询元素的元素标识;确定第一布隆过滤器以及第二布隆过滤器;将所述元素标识输入第一布隆过滤器得到第一反馈结果,将所述元素标识输入第二布隆过滤器得到第二反馈结果;根据所述第一反馈结果和所述第二反馈结果确定所述待查询元素的查询结果。这样通过两个布隆过滤器同时进行双写得到的两个反馈结果确定待查询元素是否存在,可以提高查询结果的可靠性,以解决传统布隆过滤器在随着数据处理量过大时错误率上升的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法及装置。
背景技术
在个性化推荐业务中,需要对用户已经曝光过的内容进行过滤,防止推出重复的内容,内容量、用户量都较大的情况下,存储的已推荐历史也会非常多,此时需要解决在大规模数据下的数据过滤问题。在数据过滤、去重等需要判断一个元素是否存在的场景中,通常使用数组、链表、树、哈希表等常规数据结构,此类数据结构在数据量不大的情况下(百万级),不会有性能或资源问题。当数据规模上升到亿级,常规数据结构消耗的内存会呈现线性增长,导致资源占用较大、查询速度较慢。而传统的布隆过滤器在数据处理量过大时容易出现错误率逐渐增加,从而影响布隆过滤的正常使用。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种数据处理方法及装置。
第一方面,本申请实施例提供了一种数据处理方法,包括:
获取待查询元素的元素标识;
确定第一布隆过滤器以及第二布隆过滤器;
将所述元素标识输入第一布隆过滤器得到第一反馈结果,将所述元素标识输入第二布隆过滤器得到第二反馈结果;
根据所述第一反馈结果和所述第二反馈结果确定所述待查询元素的查询结果。
可选的,所述确定第一布隆过滤器以及第二布隆过滤,包括:
获取配置参数;
根据所述配置参数配置比特位的分布不同的第一布隆过滤器和第二布隆过滤器。
可选的,所述将所述元素标识输入第一布隆过滤器得到第一反馈结果,包括:
确定所述第一布隆过滤器的第一数组标识,根据所述元素标识与所述第一数组标识生成第一输入信息;
将所述第一输入信息输入所述第一布隆过滤器,由所述第一布隆过滤器利用K个不同的哈希函数对所述第一输入信息分别进行哈希计算,得到K个哈希值;
根据所述K个哈希值计算得到K个地址;
确定第一布隆过滤器中与所述K个地址关联的第一比特位,读取所述第一比特位的第一参数值;
根据所述第一参数值确定所述第一反馈结果;
所述将所述元素标识输入第二布隆过滤器得到第二反馈结果,包括:
确定所述第二布隆过滤器的第二数组标识,根据所述元素标识与所述第二数组标识生成第二输入信息;
将所述第二输入信息输入所述第二布隆过滤器,由所述第二布隆过滤器利用K个不同的哈希函数对所述第二输入信息分别进行哈希计算,得到K个哈希值;
根据所述K个哈希值计算得到K个地址;
确定第二布隆过滤器中与所述K个地址关联的第二比特位,读取所述第二比特位的第二参数值;
根据所述第二参数值确定所述第二反馈结果;
其中,所述K为大于等于1的整数。
可选的,所述根据所述第一反馈结果和所述第二反馈结果确定所述待查询元素的查询结果,包括:
当所述第一反馈结果和/或第二反馈结果为所述待查询元素存在时,则确定所述待查询元素存在;
当所述第一反馈结果与第二反馈结果均为所述待查询元素不存在时,则确定所述待查询元素不存在。
可选的,所述配置参数包括:元素过期时间;
所述方法还包括:
根据所述元素过期时间确定所述第一布隆过滤器的第一清空时间,以及所述第二布隆过滤器的第二清空时间,所述第一清空时间和所述第二清空时间不同;
根据所述第一清空时间和所述第二清空时间清空所述第一布隆过滤器和所述第二布隆过滤器中存储的元素。
第二方面,本申请实施例还提供了一种数据处理装置,包括:
获取模块,用于获取待查询元素的元素标识;
确定模块,用于确定第一布隆过滤器以及第二布隆过滤器;
处理模块,用于将所述元素标识输入第一布隆过滤器得到第一反馈结果,将所述元素标识输入第二布隆过滤器得到第二反馈结果;
分析模块,用于根据所述第一反馈结果和所述第二反馈结果确定所述待查询元素的查询结果。
可选的,所述确定模块,具体用于获取配置参数;将所述配置参数发送至管理器,由所述管理器根据所述配置参数配置第一布隆过滤器和第二布隆过滤器;
其中,所述第一布隆过滤器与所述第二布隆过滤器中比特位的分布不同。
可选的,所述处理模块包括:第一处理模块和第二处理模块;
所述第一处理模块,用于确定所述第一布隆过滤器的第一数组标识,根据所述元素标识与所述第一数组标识生成第一输入信息;
将所述第一输入信息输入所述第一布隆过滤器,由所述第一布隆过滤器利用K个不同的哈希函数对所述第一输入信息分别进行哈希计算,得到K个哈希值;
根据所述K个哈希值计算得到K个地址;
确定第一布隆过滤器中与所述K个地址关联的第一比特位,读取所述第一比特位的第一参数值;
根据所述第一参数值确定所述第一反馈结果;
所述第二处理模块,用于确定所述第二布隆过滤器的第二数组标识,根据所述元素标识与所述第二数组标识生成第二输入信息;
将所述第二输入信息输入所述第二布隆过滤器,由所述第二布隆过滤器利用K个不同的哈希函数对所述第二输入信息分别进行哈希计算,得到K个哈希值;
根据所述K个哈希值计算得到K个地址;
确定第二布隆过滤器中与所述K个地址关联的第二比特位,读取所述第二比特位的第二参数值;
根据所述第二参数值确定所述第二反馈结果;
其中,所述K为大于等于1的整数。
可选的,所述分析模块,具体用于当所述第一反馈结果和/或第二反馈结果为所述待查询元素存在时,则确定所述待查询元素存在;当所述第一反馈结果与第二反馈结果均为所述待查询元素不存在时,则确定所述待查询元素不存在。
可选的,所述配置参数包括:元素过期时间;
所述装置还包括:元素清空模块,用于根据所述元素过期时间确定所述第一布隆过滤器的第一清空时间,以及所述第二布隆过滤器的第二清空时间,所述第一清空时间与所述第二清空时间不同;
根据所述第一清空时间和所述第二清空时间清空所述第一布隆过滤器和所述第二布隆过滤中存储的元素。
第三方面,本申请提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的数据处理方法及装置,通过两个布隆过滤器同时进行双写得到的两个反馈结果确定待查询元素是否存在,可以提高查询结果的可靠性,能够解决传统布隆过滤器在随着数据处理量过大时错误率上升的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据处理方法的流程图;
图2为本申请另一实施例提供的一种数据处理方法的流程图;
图3为本申请实施例提供的布隆过滤器原理示意图;
图4为本申请另一实施例提供的一种数据处理方法的流程图;
图5为本申请另一实施例提供的一种数据处理方法的流程图;
图6为本申请另一实施例提供的一种数据处理方法的流程图;
图7为本申请另一实施例提供的一种数据处理装置的框图;
图8为本申请另一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据处理方法及装置。本发明实施例所提供的方法可以应用于任意需要的电子设备,例如,可以为服务器、终端等电子设备,在此不做具体限定,为描述方便,后续简称为电子设备。
下面首先对本发明实施例所提供的一种数据处理方法进行介绍。
图1为本申请实施例提供的一种数据处理方法的流程图。如图1所示,该方法包括以下步骤:
步骤S11,获取待查询元素的元素标识;
本实施例中,通过接收查询请求,确定查询请求中携带的待查询元素的元素标识。其中,查询请求可以是由客户端发起,待查询元素可以是:用户信息,文章,网站或视频等等,元素标识可以是用户ID、文章ID,网站ID或视频ID等等,在此不做限定。
步骤S12,确定第一布隆过滤器以及第二布隆过滤器;
图2为本申请另一实施例提供的一种数据处理方法的流程图,如图2所示,步骤S12,包括:
步骤S21、获取配置参数;
步骤S22、根据配置参数配置比特位的分布不同的第一布隆过滤器和第二布隆过滤器。
本实施例中涉及的配置参数包括:元素、预设错误率、比特位的数量、哈希函数、哈希函数的数量以及元素过期时间。然后Bloom FilterManager(管理器)根据配置参数生成两个Byte Bloom Filter(布隆过滤器),两个Byte Bloom Filter具有相同的元素数量、错误率、bits数、hash函数的数量。需要注意的是,第一布隆过滤器与第二布隆过滤器中各个元素的比特位分布不同,以此保证查询结果的可靠性。
需要说明的是,当一个元素被加入集合时,通过N个hash散列函数将这个元素映射成一个位数组中的N个bit位,把它们置为1。如图3所示,在进行元素查询时,通过将输入信息分别输入hash函数,通过各个哈希函数hash到相应的bit位,如果这些bit位有任何一个0,则待查询元素一定不在;如果都是1,则待查询元素很可能在,因为可能这些bit位是由其它元素hash得到的位置,这也是误判存在的原因。每次查询会返回两个结果之一:可能存在或者一定不存在。
步骤S13,将元素标识输入第一布隆过滤器得到第一反馈结果,将元素标识输入第二布隆过滤器得到第二反馈结果;
需要说明的是,利用布隆过滤器可以预先把数据查询的key(数据标识),比如用户ID、文章ID或视频ID缓存到过滤器中。当根据某个元素的ID进行数据查询的时候,首先判断该ID是否存在,若存在的话,则进行下一步处理。若不存在的话,直接返回,这样就不会触发后续的数据库查询,不会造成资源浪费。
在本步骤中通过Bloom Filter Manager提供数据写入接口,写入操作可实时进行,Bloom Filter Manager负责将写入数据分别写入两个Byte Bloom Filter,写入两个Byte Bloom Filter时对原始数据追加不同的前缀。即根据第一数组标识和元素标识生成第一输入信息,根据第二数组标识和元素标识生成第二输入信息。然后将第一输入信息和第二输入信息传入两个Byte Bloom Filter进行数据查询。
具体的,图4为本申请另一实施例提供的一种数据处理方法的流程图,如图4所示,将元素标识输入第一布隆过滤器得到第一反馈结果,具体包括:
步骤S31、确定第一布隆过滤器的第一数组标识,根据元素标识与第一数组标识生成第一输入信息;
步骤S32、将第一输入信息输入第一布隆过滤器,由第一布隆过滤器利用K个不同的哈希函数对第一输入信息分别进行哈希计算,得到K个哈希值;
步骤S33、根据K个哈希值计算得到K个地址;
步骤S34、确定第一布隆过滤器中与K个地址关联的第一比特位,读取第一比特位的第一参数值;
步骤S35、根据第一参数值确定第一反馈结果。
图5为本申请另一实施例提供的一种数据处理方法的流程图,如图5所示,将元素标识输入第二布隆过滤器得到第二反馈结果,具体包括:
步骤S41、确定第二布隆过滤器的第二数组标识,根据元素标识与第二数组标识生成第二输入信息;
步骤S42、将第二输入信息输入第二布隆过滤器,由第二布隆过滤器利用K个不同的哈希函数对第二输入信息分别进行哈希计算,得到K个哈希值;
步骤S43、根据K个哈希值计算得到K个地址;
步骤S44、确定第二布隆过滤器中与K个地址关联的第二比特位,读取第二比特位的第二参数值;
步骤S45、根据第二参数值确定第二反馈结果。
其中,K为大于等于1的整数。
步骤S14,根据第一反馈结果和第二反馈结果确定待查询元素的查询结果。
当第一反馈结果和/或第二反馈结果为待查询元素存在时,则确定待查询元素存在;当第一反馈结果与第二反馈结果均为待查询元素不存在时,则确定待查询元素不存在。
作为一个示例,以视频存储为例,这样每次有新的视频进行存储时,先获取视频ID,然后将视频ID分别输入第一布隆过滤器以及第二布隆过滤器,得到第一反馈结果和第二反馈结果。第一反馈结果=1,第二反馈结果=1,此时系统会认为新的视频为重复视频,并不对其进行存储。
通过本实施例上述提供的数据处理方法,通过设置两个布隆过滤器同时进行双写,提高了查询结果的可靠性,解决了传统布隆过滤器在随着数据处理量过大时错误率上升的问题。
在本发明的另一个实施例中,发明人在发现传统布隆过滤器随着数据写入量的增加,错误率会逐渐上升之外,还发现传统布隆过滤器随着数据写入量的增加,无法删除已写入的数据会导致查询效率低,不能达到长期高效使用。
为此还需要对两个布隆过滤器数组进行周期性的清空操作,使布隆过滤器能够在错误率恒定状态下,实现长时间高效使用。图6为本申请另一实施例提供的一种数据处理方法的流程图,如图6所示,本实施例公开的方法还包括:
步骤S51、根据元素过期时间确定第一布隆过滤器的第一清空时间,以及第二布隆过滤器的第二清空时间,第一清空时间和第二清空时间不同;
步骤S52、根据第一清空时间和第二清空时间清空第一布隆过滤器和第二布隆过滤器中存储的元素。
本实施例中,根据第一清空时间和第二清空时间清空第一布隆过滤器和第二布隆过滤器中存储的元素,可以是按照时间顺序依次交替清空第一布隆过滤器和第二布隆过滤,以此解决了传统布隆过滤器不能删除元素而导致数据量过大的时候错误率上升的问题,通过为布隆过滤器增加元素过期删除的功能,从而使布隆过滤器能够在较低成本下用于大规模数据的过滤、去重操作。
作为一个示例:设元素至少需要存储的时长为t,则两个布隆过滤器初始化时设定可存储的元素数量为2t周期的数据量。此时可计算过期时间:0-2t周期,不清空,在2t时间点,清空第一布隆过滤器;在3t时间点,清空第二布隆过滤器;在4t时间点,清空第一布隆过滤器。
本实施例根据两个布隆过滤器中的参数提前计算出特定的过期时间,通过对两个布隆过滤器进行数据双写,并设置周期的清空任务对两个布隆过滤器数组的其中一个进行清空操作。从而实现在内存空间的复用,并且实现了时效性数据过期的功能,保证了布隆过滤器在恒定错误率下的长时间高效、快速的使用。
在本申请的另一个实施例中,当第一布隆过滤器输入的第一反馈结果与第二布隆过滤器输出的第二反馈结果不同时,确定待查询数据的元素过期时间,当元素过期时间与第一布隆过滤器的第一清空周期,或当元素过期时间与第二布隆过滤器的第二清空周期相吻合时,得到待查询元素的查询结果。
作为一个示例,当第一布隆过滤器输出的第一反馈结果为0(待查询元素不存在),第二布隆过滤器的第二反馈结果为1(待查询元素存在)时,获取待查询元素的元素过期时间,以及第一布隆过滤器的第一清空周期,当元素过期时间与第一布隆过滤器的第一清空周期吻合时,确定待查询元素存在。
因此,当第一布隆过滤器与第二布隆过滤器的输出结果不同时,通过判断元素过期时间是布隆过滤器的清空周期是否相吻合,来保证查询结果的可靠性。
图7为本申请实施例提供的一种数据处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图7所示,该装置包括:
获取模块61,用于获取待查询元素的元素标识;
确定模块62,用于确定第一布隆过滤器以及第二布隆过滤器;
处理模块63,用于将元素标识输入第一布隆过滤器得到第一反馈结果,将元素标识输入第二布隆过滤器得到第二反馈结果;
分析模块64,用于根据第一反馈结果和第二反馈结果确定待查询元素的查询结果。
本申请实施例中,处理模块63包括:第一处理模块和第二处理模块;
第一处理模块,用于根据元素标识与第一数组标识生成第一输入信息;将第一输入信息输入第一布隆过滤器,由第一布隆过滤器利用K个不同的哈希函数对第一输入信息分别进行哈希计算,得到K个哈希值;根据K个哈希值计算得到K个地址;确定第一布隆过滤器中与K个地址关联的第一比特位,读取第一比特位的第一参数值;根据第一参数值确定第一反馈结果;
第二处理模块,用于根据元素标识与第二数组标识生成第二输入信息;将第二输入信息输入第二布隆过滤器,由第二布隆过滤器利用K个不同的哈希函数对第二输入信息分别进行哈希计算,得到K个哈希值;根据K个哈希值计算得到K个地址;确定第二布隆过滤器中与K个地址关联的第二比特位,读取第二比特位的第二参数值;根据第二参数值确定第二反馈结果;其中,K为大于等于1的整数。
本申请实施例中,分析模块64,具体用于当第一反馈结果和/或第二反馈结果为待查询元素存在时,则确定待查询元素存在;当第一反馈结果与第二反馈结果均为待查询元素不存在时,则确定待查询元素不存在。
本申请实施例中的配置参数包括:元素过期时间;本申请实施例提供的数据处理装置还包括:元素清除模块,用于根据元素过期时间确定第一布隆过滤器的第一清空时间,以及第二布隆过滤器的第二清空时间,其中第一清空时间与第二清空时间不同;根据第一清空时间和第二清空时间清空第一布隆过滤器和第二布隆过滤器中存储的元素。
本申请实施例还提供一种电子设备,如图8所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,P C I)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例的步骤。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令进行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于进行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上进行、部分地在用户设备上进行、作为一个独立的软件包进行、部分在用户计算设备上部分在远程计算设备上进行、或者完全在远程计算设备或服务器上进行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取待查询元素的元素标识;
确定第一布隆过滤器以及第二布隆过滤器;
将所述元素标识输入第一布隆过滤器得到第一反馈结果,将所述元素标识输入第二布隆过滤器得到第二反馈结果;
根据所述第一反馈结果和所述第二反馈结果确定所述待查询元素的查询结果;
在所述第一反馈结果与所述第二反馈结果不同时,确定待查询数据的元素过期时间;当元素过期时间与所述第一布隆过滤器的第一清空周期相吻合,或当所述元素过期时间与所述第二布隆过滤器的第二清空周期相吻合时,将所述待查询元素的所述查询结果判定为存在。
2.根据权利要求1所述的方法,其特征在于,所述确定第一布隆过滤器以及第二布隆过滤,包括:
获取配置参数;
根据所述配置参数配置比特位的分布不同的第一布隆过滤器和第二布隆过滤器。
3.根据权利要求1所述的方法,其特征在于,所述将所述元素标识输入第一布隆过滤器得到第一反馈结果,包括:
确定所述第一布隆过滤器的第一数组标识,根据所述元素标识与所述第一数组标识生成第一输入信息;
将所述第一输入信息输入所述第一布隆过滤器,由所述第一布隆过滤器利用K个不同的哈希函数对所述第一输入信息分别进行哈希计算,得到K个哈希值;
根据所述K个哈希值计算得到K个地址;
确定第一布隆过滤器中与所述K个地址关联的第一比特位,读取所述第一比特位的第一参数值;
根据所述第一参数值确定所述第一反馈结果;
所述将所述元素标识输入第二布隆过滤器得到第二反馈结果,包括:
确定所述第二布隆过滤器的第二数组标识,根据所述元素标识与所述第二数组标识生成第二输入信息;
将所述第二输入信息输入所述第二布隆过滤器,由所述第二布隆过滤器利用K个不同的哈希函数对所述第二输入信息分别进行哈希计算,得到K个哈希值;
根据所述K个哈希值计算得到K个地址;
确定第二布隆过滤器中与所述K个地址关联的第二比特位,读取所述第二比特位的第二参数值;
根据所述第二参数值确定所述第二反馈结果;
其中,所述K为大于等于1的整数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一反馈结果和所述第二反馈结果确定所述待查询元素的查询结果,包括:
当所述第一反馈结果和/或第二反馈结果为所述待查询元素存在时,则确定所述待查询元素存在;
当所述第一反馈结果与第二反馈结果均为所述待查询元素不存在时,则确定所述待查询元素不存在。
5.根据权利要求2所述的方法,其特征在于,所述配置参数包括:元素过期时间;
所述方法还包括:
根据所述元素过期时间确定所述第一布隆过滤器的第一清空时间,以及所述第二布隆过滤器的第二清空时间,所述第一清空时间与所述第二清空时间不同;
根据所述第一清空时间和所述第二清空时间清空所述第一布隆过滤器和所述第二布隆过滤中存储的元素。
6.一种数据处理装置,其特征在于,包括:
获取模块,用于获取待查询元素的元素标识;
确定模块,用于确定第一布隆过滤器以及第二布隆过滤器;
处理模块,用于将所述元素标识输入第一布隆过滤器得到第一反馈结果,将所述元素标识输入第二布隆过滤器得到第二反馈结果;
分析模块,用于根据所述第一反馈结果和所述第二反馈结果确定所述待查询元素的查询结果;
判定模块,用于在所述第一反馈结果与所述第二反馈结果不同时,确定待查询数据的元素过期时间;当元素过期时间与所述第一布隆过滤器的第一清空周期相吻合,或当所述元素过期时间与所述第二布隆过滤器的第二清空周期相吻合时,将所述待查询元素的所述查询结果判定为存在。
7.根据权利要求6所述的装置,其特征在于,所述确定模块,具体用于获取配置参数;根据所述配置参数配置比特位的分布不同的第一布隆过滤器和第二布隆过滤器。
8.根据权利要求6所述的装置,其特征在于,所述处理模块包括:第一处理模块和第二处理模块;
所述第一处理模块,用于确定所述第一布隆过滤器的第一数组标识,根据所述元素标识与所述第一数组标识生成第一输入信息;
将所述第一输入信息输入所述第一布隆过滤器,由所述第一布隆过滤器利用K个不同的哈希函数对所述第一输入信息分别进行哈希计算,得到K个哈希值;
根据所述K个哈希值计算得到K个地址;
确定第一布隆过滤器中与所述K个地址关联的第一比特位,读取所述第一比特位的第一参数值;
根据所述第一参数值确定所述第一反馈结果;
所述第二处理模块,用于确定所述第二布隆过滤器的第二数组标识,根据所述元素标识与所述第二数组标识生成第二输入信息;
将所述第二输入信息输入所述第二布隆过滤器,由所述第二布隆过滤器利用K个不同的哈希函数对所述第二输入信息分别进行哈希计算,得到K个哈希值;
根据所述K个哈希值计算得到K个地址;
确定第二布隆过滤器中与所述K个地址关联的第二比特位,读取所述第二比特位的第二参数值;
根据所述第二参数值确定所述第二反馈结果;
其中,所述K为大于等于1的整数。
9.根据权利要求6所述的装置,其特征在于,所述分析模块,具体用于当所述第一反馈结果和/或第二反馈结果为所述待查询元素存在时,则确定所述待查询元素存在;当所述第一反馈结果与第二反馈结果均为所述待查询元素不存在时,则确定所述待查询元素不存在。
10.根据权利要求7所述的装置,其特征在于,所述配置参数包括:元素过期时间;
所述装置还包括:元素清空模块,用于根据所述元素过期时间确定所述第一布隆过滤器的第一清空时间,以及所述第二布隆过滤器的第二清空时间,所述第一清空时间与所述第二清空时间不同;
根据所述第一清空时间和所述第二清空时间清空所述第一布隆过滤器和所述第二布隆过滤中存储的元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010340020.9A CN111563199B (zh) | 2020-04-26 | 2020-04-26 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010340020.9A CN111563199B (zh) | 2020-04-26 | 2020-04-26 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111563199A CN111563199A (zh) | 2020-08-21 |
CN111563199B true CN111563199B (zh) | 2023-10-10 |
Family
ID=72073298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010340020.9A Active CN111563199B (zh) | 2020-04-26 | 2020-04-26 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563199B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112260951A (zh) * | 2020-09-14 | 2021-01-22 | 北京天融信网络安全技术有限公司 | 期待连接处理方法、装置、可读存储介质和电子设备 |
CN112199396B (zh) * | 2020-10-14 | 2022-11-11 | 北京理工大学 | 一种面向mes的工业互联网标识查询方法及系统 |
CN112699323A (zh) * | 2021-01-07 | 2021-04-23 | 西藏宁算科技集团有限公司 | 一种基于双重布隆过滤器的云缓存系统及云缓存方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108287840A (zh) * | 2017-01-09 | 2018-07-17 | 北京大学 | 一种基于矩阵哈希的数据存储和查询方法 |
CN109145158A (zh) * | 2017-06-13 | 2019-01-04 | 华为技术有限公司 | 一种布隆过滤器中数据的处理方法以及布隆过滤器 |
CN111062013A (zh) * | 2019-12-18 | 2020-04-24 | 北京爱奇艺科技有限公司 | 一种账号过滤方法、装置、电子设备及机器可读存储介质 |
-
2020
- 2020-04-26 CN CN202010340020.9A patent/CN111563199B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108287840A (zh) * | 2017-01-09 | 2018-07-17 | 北京大学 | 一种基于矩阵哈希的数据存储和查询方法 |
CN109145158A (zh) * | 2017-06-13 | 2019-01-04 | 华为技术有限公司 | 一种布隆过滤器中数据的处理方法以及布隆过滤器 |
CN111062013A (zh) * | 2019-12-18 | 2020-04-24 | 北京爱奇艺科技有限公司 | 一种账号过滤方法、装置、电子设备及机器可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111563199A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563199B (zh) | 一种数据处理方法及装置 | |
US8392397B2 (en) | System and method for provenance function window optimization | |
CN109450969B (zh) | 从第三方数据源服务器中获取数据的方法、装置和服务器 | |
CN109977261B (zh) | 一种数据请求的处理方法、装置及服务器 | |
CN111382206B (zh) | 一种数据存储方法及装置 | |
CN105095367A (zh) | 一种客户端数据的采集方法和装置 | |
US9760836B2 (en) | Data typing with probabilistic maps having imbalanced error costs | |
CN114528231A (zh) | 一种数据动态存储方法、装置、电子设备及存储介质 | |
CN111198678A (zh) | 一种生成GraphQL前端操作接口的方法及装置 | |
CN109660602B (zh) | 数据增量传输方法及装置 | |
CN110309028B (zh) | 监控信息获取方法、服务监控方法、装置及系统 | |
CN110955460B (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN112468585A (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN113779452A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111767223B (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN110647568B (zh) | 一种图数据库数据转化为编程语言数据方法及装置 | |
CN108011952B (zh) | 一种获取压缩字典的方法和装置 | |
CN112579006A (zh) | 一种数据存储生命周期管理方法及系统 | |
CN108804195B (zh) | 一种页面显示方法、装置、服务器及客户端 | |
CN112579682A (zh) | 数据模型变更的通知方法、装置、电子设备及存储介质 | |
CN111881220A (zh) | 列表存储下的数据操作方法、装置、电子设备和存储介质 | |
CN112882646A (zh) | 一种资源缓存方法、装置、电子设备及存储介质 | |
CN116233103B (zh) | 接口适配方法、装置、通信设备及存储介质 | |
CN112256646B (zh) | 操作文件系统子目录的方法、装置、电子设备及存储介质 | |
CN115269533A (zh) | 一种日志压缩的保存方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |