CN111538727A - 一种基于Bloom Filter的多路快速查找分类方法与系统 - Google Patents

一种基于Bloom Filter的多路快速查找分类方法与系统 Download PDF

Info

Publication number
CN111538727A
CN111538727A CN202010301373.8A CN202010301373A CN111538727A CN 111538727 A CN111538727 A CN 111538727A CN 202010301373 A CN202010301373 A CN 202010301373A CN 111538727 A CN111538727 A CN 111538727A
Authority
CN
China
Prior art keywords
data
subset
channel
sample
lookup table
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.)
Granted
Application number
CN202010301373.8A
Other languages
English (en)
Other versions
CN111538727B (zh
Inventor
蒋劢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan University of Science and Engineering
Original Assignee
Sichuan University of Science and Engineering
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan University of Science and Engineering filed Critical Sichuan University of Science and Engineering
Priority to CN202010301373.8A priority Critical patent/CN111538727B/zh
Publication of CN111538727A publication Critical patent/CN111538727A/zh
Application granted granted Critical
Publication of CN111538727B publication Critical patent/CN111538727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种基于BloomFilter的多路并行数据快速查找分类方法与系统。该发明包括:多路并行设置的数据检测、分类通道,用于对一个待分类集合的数据信息进行查找及分类,其中每路通道用于查找并分离其所对应的一个子集数据信息;每路通道都包含有一个该通道对应的子集查找单元及补集查找单元;每路通道的子集查找单元用于查找识别属于该子集的信息,补集查找单元用于查找识别属于该子集的补集数据信息;所述子集查找单元与补集查找单元基于BloomFilter实现。本发明可以解决处理规模日益庞大的分类或分拣系统由于处理速度慢跟不上现实要求的问题。

Description

一种基于Bloom Filter的多路快速查找分类方法与系统
技术领域
本发明涉及信息处理技术领域,尤其涉及一种基于Bloom Filter的多路并行数据快速查找分类方法与系统。
背景技术
现在有很多自动分流或分拣系统,它们大多是基于数据库的。它们使用数据库对样本的信息进行查询,然后根据查询的结果进行分流或分拣。在现代社会,企业的核心资料一般都是用数据库来保存的,所以数据库的安全与访问效率都是至关重要的。由于大数据时代的到来,很多企业的数据库都越来越庞大,成为了大型数据库。大型数据库一般来说都存储在硬盘构成的磁盘阵列,并保有多个备份。由于大型数据库存储量巨大,成本较高,加上安全的需要,不可能在公司的任何一个分支机构都有存储备份。所以数据库往往需要云存储,各分支机构通过网络访问数据库。现在的很多自动分流或分拣系统,就是在这些情况下来访问数据库的,然后根据数据库查询的结果进行分流或分拣。
由于数据库的反应速度较慢,越来越不适应很多场合的需求,例如大型物流公司的分拣系统。其中最主要的瓶颈是数据库的查询速度往往较慢,导致了反应速度不够快。特别是多个查询同时到来的时候,数据库由于负担太重常导致反应时间过长,非常影响分拣装置的运行效率。
相较于数据库而言,Bloom Filter的访问速度要快很多。Bloom Filter比数据库访问速度更快的的主要原因如下:
第一、存储方式以及访问方式的不同使得Bloom Filter比数据库访问速度更快。数据库一般都存储在硬盘或者硬盘组成的磁盘阵列,而硬盘的访问效率相对于内存来说低很多。此外,大型数据库往往需要云存储。云存储需要通过网络进行远程访问,远程访问是有延迟的。这些都导致了数据库的访问费时低效。而Bloom Filter是一种紧凑的数据结构,相较于数据库而言存储量大大降低,一般可以在内存存储。这保障了Bloom Filter只需要在存储在本地的内存,访问时既不用访问硬盘,又不用访问云,大大提高了访问速度。
第二、从查找算法的分析来看,查找算法的不同使得Bloom Filter比数据库访问速度更快。Bloom Filter采用的是hash查找,算法的查找效率极高。而数据库大多是用索引查找,效率相对来说低很多。
发明内容
本发明的目的在于解决上述现有技术存在的缺陷,提供一种基于Bloom Filter的多路并行数据快速查找分类方法与系统。
一种基于Bloom Filter的多路并行数据快速查找分类系统,包括:
一个总通道和在所述总通道上依次排列的多路并行的样本分离通道;全部包含数据信息的样本都从所述总通道通过;每路样本分离通道用于从通过总通道的样本中筛选出属于该路通道所对应子集的样本;
在每路所述样本分离通道上设置有一个样本回流通道;所述样本回流通道用于将由于误报而进入该路样本分离通道的样本回送入总通道,并通过后续的样本分离通道继续进行检测。
进一步地,如上所述的基于多路Bloom Filter的数据快速查找分类系统,在每路所述样本分离通道上还对应设置有两个样本检测点,该两个样本检测点分别称为子集检测点和补集检测点;
所述子集检测点包含有一个该路样本分离通道对应子集的数据查找单元;所述子集的数据查找单元用于从所述待分类集合中筛选出某分离通道对应子集的数据,以便于将含有该子集所属数据信息的样本分流至该数据查找单元所属的通道;
所述补集检测点包含有一个该路样本分离通道对应子集的补集的数据查找单元;所述补集的查找单元用于从进入该路通道的样本数据中筛选出由于误报而进入该路通道的样本数据。
所述子集的数据查找单元及补集的数据查找单元都基于Bloom Filter实现;
进一步,所述的基于Bloom Filter的多路并行数据快速查找分类系统,每个所述子集检测点和补集检测点都包含有样本信息自动识别并读取装置和样本分离装置;
所述样本信息自动识别并读取装置可以自动识别样本的信息,并把信息采集并读取;
所述样本分离装置,用于将样本分离到指定的通道;子集样本检测点的分离装置用于从总通道中将属于某路通道的样本分离到该路通道;补集样本检测点的分离装置用于将不属于某路通道中的样本分离到样本回流通道,然后由回流通道送至总通道进行后续检测。
进一步,所述的基于Bloom Filter的多路并行数据快速查找分类系统,还包括统计单元;
该统计单元用于根据查找出的误报数据量来统计每一路的实际误报率,以便于后续根据需要对误报率和处理效率、资源占用进行调整。
一种基于BloomFilter的多路并行数据快速查找分类方法,包括以下步骤:
步骤1:获取需要分类的乱序序列中所有元素的数据信息,令所有元素的数据信息为一个集合S;假设需要将集合S的元素分离到若干个子集,且各个子集之间两两互不相交;
步骤2:为集合S设置多路数据查找表;
为S的每个子集设计一个子集数据查找表和一个该子集对应的补集数据查找表;所述子集数据查找表和补集数据查找表都基于Bloom Filter实现;某子集数据查找表用于查找属于该子集的数据,该子集的补集数据查找表用于查找该子集对应的补集的数据;
步骤3:将需要分类的数据信息依次送入各路数据查找表进行查询;如果数据被某路子集查找表识别,则进入步骤4,否则进入下一路查找表进行查询,并转入步骤3;
步骤4:如果数据被某路子集查找表识别,则将数据送入该路子集对应的补集查找表进行查询;如果数据被补集查找表识别,则进入步骤5,否则进入步骤6;
步骤5:如果数据被补集查找表识别,则表明发生了误报,将被误报的数据送入后续各路查找表继续查询,并转入步骤3;同时,根据所述补集查找表查询到的数据来统计实际误报率;
步骤6:未被补集查找表识别数据就确定是该子集中的数据,即可将此数据成功分离到对应的子集中;如此,各路查找表可以将数据成功分离到各个子集。
进一步地,所述的基于多路Bloom Filter的快速查找分类方法,步骤7:步骤5中所述的误报如果仅仅是某子集查找表发生误报,则在后续检测中可以走入步骤6,使得数据被成功分离;如果是补集查找表发生误报,即将属于某子集的数据判断为不属于,则将使得该数据通过后续所有各路查找表都无法被成功识别,那么,最终仍然有未被识别的数据则送入数据库查询。
进一步地,所述的基于多路Bloom Filter的快速查找分类方法,根据需要在BloomFilter的误报率和处理效率、资源占用之间进行动态调整。
进一步地,所述的基于多路Bloom Filter的快速查找分类方法,所述误报率perr根据下式计算:
Figure BDA0002454111190000041
在式(1)中,m为某Bloom Filter的位数组大小,单位:bit;n为需要存入的元素个数,k为需要使用的hash函数个数,下同;
由(1)式可得:
Figure BDA0002454111190000051
由式(2)可知,可根据hash函数个数和误报率来设置Bloom Filter位数组的大小与元素个数比。可依此设计或调整每个查找表及补集查找表的位数组大小;
由式(1)及式(2)可知,可根据需要在Bloom Filter的误报率和处理效率、资源占用之间进行动态调整。
有益效果:
数据库具有存储空间占用大,查询速度慢,往往需要云存储等特点导致其有费时低效等弱点,这往往使得现今数据量越来越大的基于数据库的自动分流、分拣系统的运行效率受到影响。而Bloom Filter拥有占用存储空间小,查询效率高,不会漏报,算法简单高效等特点,所以可以使用Bloom Filter来提高分类或分拣系统的运行效率。本发明就采用了Bloom Filter来设计的多路并行运行的自动分类方法与系统,使得系统在运行效率比基于数据库的系统大大提高,特别是随着大数据时代的来临和发展,本发明将拥有更加突出的优势。
附图说明
图1为初始状态时的Bloom Filter的数据结构图;
图2为当k=3时,Bloom Filter的数据结构图;
图3为在判断y是否属于Bloom Filter的数据结构图;
图4为本发明基于Bloom Filter的多路并行数据快速查找分类系统结构示意图;
图5为本发明基于Bloom Filter的多路并行数据快速查找分类系统的工作流程示意图;
图6为Bloom Filter的m/n与误报率之间的关系曲线图;(注:m/n即为BloomFilter位数组的大小与元素个数之比;图中hash函数的个数k分别取值了2、4、8、16、32)。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现今社会有着很多基于数据库的大型自动分类系统,例如大型物流包裹分拣或分流系统。但随着大数据时代的到来,由于数据库本身的一些弱点,导致这些分类系统运行效率低下,越来越不适应现实需求。本发明采用了基于Bloom Filter的思想进行分类系统与方法的设计,可以使系统效率大大提高。
Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive,即误报或误判)。因此,Bloom Filter不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下,Bloom Filter通过极少的错误换取了存储空间的极大节省。而本发明通过巧妙的设计,有效避免误报这一缺陷。
下面我们具体来看Bloom Filter是如何用位数组表示集合的。初始状态时,如图1所示,Bloom Filter是一个包含m位的位数组,每一位都置为0。为了表达S={x1,x2,…,xn}这样一个n个元素的集合,Bloom Filter使用k个相互独立的哈希函数(HashFunction),它们分别将集合中的每个元素映射到{1,…,m}的范围中。对任意一个元素x,第i个哈希函数映射的位置hi(x)就会被置为1(1≤i≤k)。注意,如果一个位置多次被置为1,那么只有第一次会起作用,后面几次将没有任何效果。例如在图2中,k=3,且有两个哈希函数选中同一个位置(从左边数第五位)。
在判断y是否属于这个集合时,我们对y应用k次哈希函数,如果所有hi(y)的位置都是1(1≤i≤k),那么我们就认为y是集合中的元素,否则就认为y不是集合中的元素。例如图3中y1就不是集合中的元素。y2或者属于这个集合,或者刚好是一个误报(falsepositive)。
BloomFilter的几大特点及其在本申请中的应用:
特点1:是一种存储极为紧凑的数据结构。
可以把需要较多存储空间(如若干字节)的元素,转化为仅需若干位(位数与hash函数的个数相等)二进制进行存储,存储紧凑度大大提高。例如,假设每个元素是16个字符组成的字符串,假设用较为精简的ASCII码来存储一个元素,也需要16字节(128bit)。如果用其他码制例如Unicode的UCS-2标准则存储量增加2倍(32字节),UCS-4标准会增加4倍(64字节)。如果使用Bloom Filter,假设仅有8个hash函数,则仅仅需要8个bit就可以存储下一个元素。由此可见,BloomFilter是一种可以大大降低存储量,是一种存储极为紧凑的数据结构。
特点1在本发明中的应用:
因为BloomFilter存储极为紧凑,因此常用来处理大规模的数据。可以把海量数据紧凑地存储在一个Bloom Filter位数组中,以至于可以存放在内存中,加快数据的存取速度。
特点2:Bloom Filter存在误报。因为Bloom Filter是通过hash函数计算后映射到BloomFilter的位数组中的,所以有可能不属于Bloom Filter的元素其通过各个hash函数计算后恰好都命中,这会将这个元素误报为属于BloomFilter。
特点2的应对:产生误报的错误率是可控的,可以设置到很低的程度(详细见后面错误率的分析)。其次本申请的方案可以识别误报,通过设置某子集的补集Bloom Filter来把不属于该子集的数据筛选出来。
特点3:元素只要存在Bloom Filter中就一定能查找到,不会漏报。因为每个元素在存储时都是通过若干hash函数计算后,分别存储在对应的位置。所以,只要元素存在于Bloom Filter中,查询时是同样的hash函数的来进行计算,计算的结果不会有任何变化,所以一定能查找到。
特点3在本发明中的应用:本方案就利用了这一特点进行了巧妙设计。通过设计子集Bloom Filter达到成功分类的目的;又通过设计补集Bloom Filter,来把子集BloomFilter中的误报筛选出来。由于Bloom Filter不会漏报,如果元素属于某子集,那么元素一定会被该子集对应的Bloom Filter查找识别到;如果元素在补集对应的Bloom Filter中查找到,说明该元素不属于那个子集,该路子集对应的Bloom Filter误报了。
当然,还存在一种异常:元素的确存在于该路子集,并被该路子集对应的BloomFilter识别,但如果补集对应的Bloom Filter产生误报了,就会把属于该子集的数据误判为不属于,这种情况会导致该数据最终无法被成功分类,就最后交予数据库来查找识别再分类。由于误报率可以设置得很低,所以不会有太多误报异常情况,在绝大多数的不需要零误差的现实使用中都不会有太多影响。
具体地,为了更好地说明本发明,采用了以下描述来定义相应信息:设有已知的由含有数据信息的若干元素组成的随机乱序序列(例如大型物流公司的重要中转集散点的货物包裹),令该随机乱序序列中的所有元素的组成一个待分类数据集合S,S中元素为有限个,需要将S分类到两两互不相交的有限个子集中,设子集个数为N(本发明中分类系统通道的数量也就相应设定为N)。令任意一个子集记为Si(i为整数,可取[1-N]中的任意值,下同),Si的补集记为Si补,即有Si补=S-Si,也即S=Si∪Si补;有S=S1∪S2∪...∪SN
本发明采用N个不同Bloom Filter来分别存储N个子集Si,同时采用另外N个不同的Bloom Filter来分别存储每个子集所对应的补集Si补
如图4所示,本发明提供的基于Bloom Filter的多路并行数据快速查找分类系统结构示意图,包括:系统设置有一个总通道和在总通道上依次排列的多路并行的样本分离通道;在每路所述样本分离通道上对应设置有两个样本检测点,分别称为子集检测点和补集检测点;以及一个样本回流通道;
所有包含数据信息的样本都通过总通道;每路样本分离通道用于从通过总通道的样本中筛选出属于该路通道所对应子集的样本;
样本回流通道用于将由于误报而进入该路通道的样本回送入总通道,并通过后续的通道继续进行检测;
对于每路所述样本分离通道上对应设置有的子集检测点和补集检测点,子集检测点包含有一个该路通道对应子集的数据查找单元,补集检测点包含有一个该路通道对应子集的补集的数据查找单元;所述数据查找单元都基于Bloom Filter实现;
所述子集的数据查找单元用于从所述待分类集合中筛选出其所属通道对应子集的数据,以便将含有该数据信息的物品(如带条码或二维码的包裹或物品)分流至该查找单元所属的通道;
所述补集的查找单元用于从进入该路通道的样本中筛选出由于误报而进入该路通道的数据;
在每个所述样本检测点都包含有样本信息自动识别并读取装置和分离装置。所述样本信息自动识别并读取装置可以自动识别样本的信息(例如自动识别条码或二维码),并把信息采集起来。所述样本分离装置,用于将样本分离到指定的通道;子集样本检测点的分离装置用于从总通道中将属于某路通道的样本分离到该路通道;补集样本检测点的分离装置用于将不属于某路通道中的样本分离到样本回流通道,然后由回流通道送至总通道进行后续检测;
本系统还设有统计单元,用于根据查询出的误报数据量来统计每一路的实际误报率;如果误报率不符合要求,可以根据需要调整检测点查找单元的Bloom Filter位数组大小或hash函数的个数。
本发明提供的基于多路Bloom Filter的快速查询及分类系统,为了更好地说明该系统,此处结合系统的工作流程(如图5所示)进行进一步分析说明(注:以下为简化说明,基于Bloom Filte设计的第i路子集检测点对应的查找单元简称为第i路Bloom Filte;相应的,补集检测点对应的查找单元简称为第i路补集Bloom Filte):
随机乱序的序列样本依次进入总通道。当某样本经过某路通道的子集检测点,自动识别和读取装置立即自动识别并读取样本信息(为了不模糊焦点,以便于介绍本发明,假定自动识别和读取装置都能正确识别并读取样本信息),再把样本信息输入子集查找单元查询。如果样本信息在该子集Bloom Filter里查找到(即命中),说明该样本属于该路通道对应的子集,则将该样本分流或分拣到该路通道;如果样本信息在该子集Bloom Filter里没有查找到,则将样本在总通道里继续往后面传递,送给后续通道检测。Bloom Filter不会漏报,只要属于Bloom Filter的中的信息都会被查询到。所以,只要各路子集Bloom Filter加起来包括了所有样本的信息,那么所有的样本都可以被查询到并实现分流或分拣。由于采用了多个Bloom Filter,则可以实现多路并行地分流或分拣。
由于Bloom Filter存在误报,误报会把不属于该子集的信息也误认为属于该子集,为此需要在每路通道设置一个补集检测点。这个补集检测点的补集Bloom Filter包含所有该路子集的补集信息,即:补集Bloom Filter包含的信息=信息总和-该路子集BloomFilter包含的信息(也即
Figure BDA0002454111190000101
)。由于Bloom Filter不存在漏报,因此如果某样本由于某路子集Bloom Filter的误报而被分类到该路通道的话,那么该样本必然被该路补集Bloom Filter所识别到。因此,如果某样本既被某路子集Bloom Filter识别,又被该路的补集Bloom Filter识别,则必然是出现了误报(该路Bloom Filter或其补集Bloom Filter都可能误报)。将此样本再通过回流通道输入到总通道,继续送给后续各路通道查询;
所述的误报如果仅仅是某子集Bloom Filter发生误报,则在将该样本送入总通道并进行后续检测,可以使得该样本被成功分离;如果是补集Bloom Filter发生误报,即将属于某子集的数据判断为不属于,则将使得该样本通过后续所有各路查找表都无法被成功识别,那么,最终仍然有未被识别的数据则送入数据库查询。由于Bloom Filter的误报率可以设置到很低,所以可以让异常的发生率很小。
关于误报率的设置。Bloom Filter具有误报的弱点,但是Bloom Filter可以通过调整存储空间与hash函数的个数来让误报率达到很低的效果。假设某Bloom Filter的位数组为大小m bit,需要存入的元素个数为n,需要使用的hash函数个数为k,则Bloom Filter误报率perr为:
Figure BDA0002454111190000111
由(1)式可得:
Figure BDA0002454111190000112
由(2)式可得图6,由图6可以看到,当k一定时,误报率随着m/n的值的升高而降低。当hash函数的个数k=8时,当m/n接近40时,误报率接近10-6;当k=16时,m/n接近30时,误报率接近10-6;10-6的误报率算是非常低的了,在很多情况下更高的误报率都是可以接受的;可以通过选择合适的m/n和k的值,来让误报率处于自己能接受的水平。同时,将式(1)看着k的函数f(k),再求最值,可以得到当
Figure BDA0002454111190000113
时,误报率最低,那么,如果m/n已确定,可以由此得到最合适的k。在实际使用中,可以根据实际情况的需要,来设置k的个数和m/n的值。
本发明具有很强的现实实用性。例如有某大型物流公司,该公司在某大城市具有一个总的包裹物流集散点。该物流公司在该城市各个快递投放点收到的所有包裹都需要送到该集散点,并按照行政省进行分类并转投到各个省。显然,该集散点收到各个快递投放点来的包裹就是一个待分类的随机乱序序列。相应的,该集散点收到的所有包裹就是待分类集合(即集合S),而各个省份的包裹就是各个子集(即Si)。现代公司企业的数据都用数据库进行存储和管理,该物流公司在快递投放点收取包裹时就会在数据库中录入包裹信息。因此,待分类集合(S)的信息和子集(Si)的信息(例如条码或二维码)都可以从数据库得到。子集Bloom Filter和补集Bloom Filter可由此建立。本发明需要的数据基础得以充分满足,于是,该物流公司就可以使用本发明提供的系统对包裹进行快速高效地分类。
本发明还提供一种基于多路Bloom Filter的快速查询分类方法,该方法包括以下步骤:
包括以下步骤:
设有已知的由含有数据信息的若干元素组成的一随机乱序序列,需要将该序列按一定条件进行分类,序列中任一元素都属于某一已知类别中。
步骤1:获取需要分类的所有数据信息,令所有数据信息为一个集合S;假设需要将集合S的元素分离到若干个子集,且各个子集之间两两互不相交;
步骤2:为每个子集设计一个子集数据查找表和一个该子集对应的补集数据查找表;子集数据查找表和补集数据查找表都基于Bloom Filter实现;某子集数据查找表用于查找属于该子集的数据,而该子集的补集数据查找表用于查找不属于该子集的数据;由于Bloom Filter不存在漏报,所以只要属于某个子集的数据,一定能在该子集对应的查找表中查找到(称为识别,也可称为命中,下同);称每个子集对应的子集查找表和补集查找表二者共同组成为一路查找表,即,本步骤为集合S设置了多路数据查找表;
步骤3:将需要分类的数据信息依次送入各路数据查找表进行查询;如果数据被某路子集查找表识别,则进入步骤4,否则进入下一路查找表进行查询,并转入步骤3;
步骤4:如果数据被某路子集查找表识别,则将数据送入该路子集对应的补集查找表进行查询;如果数据被补集查找表识别,则进入步骤5,否则进入步骤6;
步骤5:如果数据被补集查找表识别,则表明发生了误报(所谓误报,即把不属于某集合的元素误判为属于该集合),将被误报的数据送入后续各路查找表继续查询,并转入步骤3;同时,根据所述补集查找表查询到的数据来统计实际误报率,这些统计结果可以作为后续根据需要对误报率和处理时间、资源占用进行动态调整的依据;
步骤6:未被补集查找表识别数据就确定是该子集中的数据,即可将此数据成功分离到对应的子集中;如此,各路查找表可以将数据成功分离到各个子集;
步骤7:步骤5中所述的误报如果仅仅是某子集查找表发生误报,则在后续检测中可以走入步骤6,使得数据被成功分离;如果是补集查找表发生误报,即将属于某子集的数据判断为不属于,则将使得该数据通过后续所有各路查找表都无法被成功识别,那么,最终仍然有未被识别的数据则送入数据库查询。
本方案还允许根据需要在Bloom Filter的误报率和处理时间、资源占用之间进行动态调整。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种基于Bloom Filter的多路并行数据快速查找分类系统,其特征在于,包括:
一个总通道和在所述总通道上依次排列的多路并行的样本分离通道;全部包含数据信息的样本都从所述总通道通过;每路样本分离通道用于从通过总通道的样本中筛选出属于该路通道所对应子集的样本;
在每路所述样本分离通道上设置有一个样本回流通道;所述样本回流通道用于将由于误报而进入该路样本分离通道的样本回送入总通道,并通过后续的样本分离通道继续进行检测。
2.据权利要求1所述的基于多路Bloom Filter的数据快速查找分类系统,其特征在于,
在每路所述样本分离通道上还对应设置有两个样本检测点,该两个样本检测点分别称为子集检测点和补集检测点;
所述子集检测点包含有一个该路样本分离通道对应子集的数据查找单元;所述子集的数据查找单元用于从所述该分类集合中筛选出某分离通道对应子集的数据,以便于将含有该子集所属数据信息的样本分流至该数据查找单元所属的通道;
所述补集检测点包含有一个该路样本分离通道对应子集的补集的数据查找单元;所述补集的查找单元用于从进入该路通道的样本数据中筛选出由于误报而进入该路通道的样本数据。
所述子集的数据查找单元及补集的数据查找单元都基于Bloom Filter实现;
3.据权利要求1所述的基于Bloom Filter的多路并行数据快速查找分类系统,其特征在于,每个所述子集检测点和补集检测点都包含有样本信息自动识别并读取装置和样本分离装置;
所述样本信息自动识别并读取装置可以自动识别样本的信息,并把信息采集且读取到系统中;
所述样本分离装置,用于将样本分离到指定的通道;子集样本检测点的分离装置用于从总通道中将属于某路通道的样本分离到该路通道;补集样本检测点的分离装置用于将不属于某路通道中的样本分离到样本回流通道,然后由回流通道送至总通道进行后续检测。
4.根据权利要求1所述的基于Bloom Filter的多路并行数据快速查找分类系统,其特征在于,还包括统计单元;
该统计单元用于根据查找出的误报数据量来统计每一路的实际误报率,以便于后续根据需要对误报率和处理效率、资源占用进行调整。
5.一种基于BloomFilter的多路并行数据快速查找分类方法,其特征在于,包括以下步骤:
步骤1:获取需要分类的乱序序列中所有元素的数据信息,令所有元素的数据信息为一个集合S;假设需要将集合S的元素分离到若干个子集,且各个子集之间两两互不相交;
步骤2:为集合S设置多路数据查找表;
为S的每个子集设计一个子集数据查找表和一个该子集对应的补集数据查找表;所述子集数据查找表和补集数据查找表都基于Bloom Filter实现;某子集数据查找表用于查找属于该子集的数据,该子集的补集数据查找表用于查找该子集对应的补集的数据;
步骤3:将需要分类的数据信息依次送入各路数据查找表进行查询;如果数据被某路子集查找表识别,则进入步骤4,否则进入下一路查找表进行查询,并转入步骤3;
步骤4:如果数据被某路子集查找表识别,则将数据送入该路子集对应的补集查找表进行查询;如果数据被补集查找表识别,则进入步骤5,否则进入步骤6;
步骤5:如果数据被补集查找表识别,则表明发生了误报,将被误报的数据送入后续各路查找表继续查询,并转入步骤3;同时,根据所述补集查找表查询到的数据来统计实际误报率;
步骤6:未被补集查找表识别数据就确定是该子集中的数据,即可将此数据成功分离到对应的子集中;如此,各路查找表可以将数据成功分离到各个子集。
6.根据权利要求5所述的基于多路Bloom Filter的快速查找分类方法,其特征在于,
步骤7:步骤5中所述的误报如果仅仅是某子集查找表发生误报,则在后续检测中可以走入步骤6,使得数据被成功分离;如果是补集查找表发生误报,即将属于某子集的数据判断为不属于,则将使得该数据通过后续所有各路查找表都无法被成功识别,那么,最终仍然有未被识别的数据则送入数据库查询。
7.根据权利要求5或6所述的基于多路Bloom Filter的快速查找分类方法,其特征在于,
能根据需要在Bloom Filter的误报率和处理效率、资源占用之间进行动态调整。
8.根据权利要求7所述的基于Bloom Filter的多路并行数据快速查找分类方法,其特征在于,所述误报率perr根据下式计算:
Figure FDA0002454111180000031
说明:在式(1)中,m为某Bloom Filter的位数组大小,单位:bit;n为需要存入的元素个数,k为需要使用的hash函数个数,下同;
由(1)式可得:
Figure FDA0002454111180000041
由式(2)可知,可根据hash函数个数和误报率来设置Bloom Filter位数组的大小与元素个数比。可依此设计或调整每个查找表及补集查找表的位数组大小;
由式(1)及式(2)可知,可根据需要在Bloom Filter的误报率和处理效率、资源占用之间进行动态调整。
CN202010301373.8A 2020-04-16 2020-04-16 一种基于Bloom Filter的多路快速查找分类方法与系统 Active CN111538727B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010301373.8A CN111538727B (zh) 2020-04-16 2020-04-16 一种基于Bloom Filter的多路快速查找分类方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010301373.8A CN111538727B (zh) 2020-04-16 2020-04-16 一种基于Bloom Filter的多路快速查找分类方法与系统

Publications (2)

Publication Number Publication Date
CN111538727A true CN111538727A (zh) 2020-08-14
CN111538727B CN111538727B (zh) 2023-01-13

Family

ID=71976835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010301373.8A Active CN111538727B (zh) 2020-04-16 2020-04-16 一种基于Bloom Filter的多路快速查找分类方法与系统

Country Status (1)

Country Link
CN (1) CN111538727B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737799A (zh) * 2005-09-09 2006-02-22 湖南大学 一种基于分档BloomFilter结构的查询方法
CN102333036A (zh) * 2011-10-17 2012-01-25 中兴通讯股份有限公司 一种实现高速路由查找的方法和系统
WO2013016418A2 (en) * 2011-07-27 2013-01-31 The Regents Of The University Of Michigan Ion channel probes and methods of use thereof
CN105455172A (zh) * 2015-12-15 2016-04-06 重庆市长寿区农产品商贸流通协会 花生分瓣机构
CN109783441A (zh) * 2018-12-24 2019-05-21 南京中新赛克科技有限责任公司 基于Bloom Filter的海量数据查询方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737799A (zh) * 2005-09-09 2006-02-22 湖南大学 一种基于分档BloomFilter结构的查询方法
WO2013016418A2 (en) * 2011-07-27 2013-01-31 The Regents Of The University Of Michigan Ion channel probes and methods of use thereof
CN102333036A (zh) * 2011-10-17 2012-01-25 中兴通讯股份有限公司 一种实现高速路由查找的方法和系统
CN105455172A (zh) * 2015-12-15 2016-04-06 重庆市长寿区农产品商贸流通协会 花生分瓣机构
CN109783441A (zh) * 2018-12-24 2019-05-21 南京中新赛克科技有限责任公司 基于Bloom Filter的海量数据查询方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
田小梅等: "双布鲁姆过滤器法查询集合成员", 《计算机工程与应用》 *
陈胜: "基于多级查找的高效包分类算法研究及应用", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Also Published As

Publication number Publication date
CN111538727B (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
EP2421223B1 (en) Method and apparatus for approximate pattern matching
US6871201B2 (en) Method for building space-splitting decision tree
US20070005556A1 (en) Probabilistic techniques for detecting duplicate tuples
CN104731976A (zh) 数据表中隐私数据的发现与分类方法
CN111159243B (zh) 用户类型识别方法、装置、设备及存储介质
CA3068333C (en) Systems and methods for intelligently grouping financial product users into cohesive cohorts
WO2023284132A1 (zh) 一种云平台日志的分析方法、系统、设备及介质
CN104750852A (zh) 中文地址数据的发现与分类方法
CN106021386B (zh) 面向海量分布式数据的非等值连接方法
US5247662A (en) Join processor for a relational database, using multiple auxiliary processors
CN116467266A (zh) 一种批量文件智能联机处理方法、装置及可存储介质
CN116582300A (zh) 基于机器学习的网络流量分类方法及装置
CN111538727B (zh) 一种基于Bloom Filter的多路快速查找分类方法与系统
CN114049016A (zh) 指标相似性判断方法、系统、终端设备及计算机存储介质
CN112395478B (zh) 一种双模型共用的数据筛选方法及系统
Cao Classification of Digital Teaching Resources Based on Data Mining.
US6779162B2 (en) Method of analyzing and filtering timing runs using common timing characteristics
CN112184004A (zh) 一种基于K-Means的电梯维保质量分析方法
CN116303404B (zh) 基于数据归类同级比对防止数据冗余的大数据存储系统
JPH02158871A (ja) 文書分類装置
CN102306161A (zh) 多区域重复性检测的方法和设备
CN110597863B (zh) 通过动态阈值保持在布控库中性能稳定的检索系统和方法
CN117573655B (zh) 一种基于卷积神经网络的数据治理优化方法及系统
CN116208687A (zh) 高性能网络报文分类方法及系统
CN116738015A (zh) 一种基于分类索引的不完整数据的skyline查询方法

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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20200814

Assignee: Zigong Haopu Information Technology Co.,Ltd.

Assignor: Sichuan University of Science & Engineering

Contract record no.: X2023980039244

Denomination of invention: A Method and System for Multichannel Fast Search and Classification Based on Bloom Filter

Granted publication date: 20230113

License type: Common License

Record date: 20230809

EE01 Entry into force of recordation of patent licensing contract