文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.212468
中文引用格式: 吳佳雯,王宇科,裴書玉,等. 面向缺失數(shù)據(jù)的布魯姆近似成員查詢算法[J].電子技術(shù)應(yīng)用,2022,48(3):78-82,87.
英文引用格式: Wu Jiawen,Wang Yuke,Pei Shuyu,et al. Approximate membership query algorithm for incomplete data based on Bloom filter[J]. Application of Electronic Technique,2022,48(3):78-82,87.
0 引言
標(biāo)準(zhǔn)的布魯姆過濾器(Bloom Filter,BF)[1]是一個空間效率很高的數(shù)據(jù)結(jié)構(gòu),它可以表示集合并支持集合的成員查詢,快速判斷查詢元素是否在集合中。當(dāng)給定一個查詢元素e時,它被用來回答查詢元素是否在這個集合。一個標(biāo)準(zhǔn)的布魯姆構(gòu)造一個長度為m的比特位數(shù)組,初始化為0。在插入階段,它使用k個獨立的哈希函數(shù)h1(·),…,hk(·)來計算插入元素在數(shù)組中對應(yīng)的k個哈希位置h1(e)%m,…,hk(e)%m,并將這k個哈希位置置位為“1”。在查詢階段,通過檢查是否所有的k個哈希位置都置位為“1”,來判斷元素是否在集合中。如果它們都置位為“1”,則認(rèn)為查詢元素e在集合S中;否則,則認(rèn)為查詢元素e不在集合S中。
現(xiàn)有標(biāo)準(zhǔn)布魯姆過濾器通常用于常規(guī)的精確匹配的成員集合查詢(Exact-matching Membership Query,EMQ),即:檢查查詢數(shù)據(jù)本身是否存儲在布魯姆過濾器,它是否是集合的一個成員。布魯姆過濾器作為一種空間精簡、查詢高效的支持成員集合查詢結(jié)構(gòu),一直被廣泛用于各種實際應(yīng)用中[2-3]。在網(wǎng)絡(luò)領(lǐng)域應(yīng)用中,布魯姆過濾器可以用來存儲防火墻海量的黑名單數(shù)據(jù)[4],以及在網(wǎng)站中進(jìn)行內(nèi)容去重等[5]。在大數(shù)據(jù)應(yīng)用中,例如HBase中使用布魯姆過濾器來減少代價高昂的I/O次數(shù),提升數(shù)據(jù)庫查詢效率[6]。
本文詳細(xì)內(nèi)容請下載:http://theprogrammingfactory.com/resource/share/2000004008。
作者信息:
吳佳雯1,王宇科2,裴書玉1,謝 鯤1,劉楚達(dá)3
(1.湖南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長沙410082;
2.湖南大學(xué) 校園信息化建設(shè)與管理辦公室,湖南 長沙410082;
3.長沙航空職業(yè)技術(shù)學(xué)院,湖南 長沙410082)