一種流式大數(shù)據(jù)去重的方法
【專利摘要】本發(fā)明涉及大數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是一種流式大數(shù)據(jù)去重的方法,使用多個(gè)Bloom Filter輪換的方式來進(jìn)行不間斷實(shí)時(shí)消息處理。采用上述方法后,本發(fā)明具有以下優(yōu)點(diǎn):1、在實(shí)時(shí)消息處理中,不需要停頓,保證消息處理的連續(xù)性和實(shí)時(shí)性;2、由于消息重復(fù)率一般符合正態(tài)分布,本方法總是保留最近一段時(shí)間的數(shù)據(jù)作為去重的依據(jù),可以去除絕大部分重復(fù)數(shù)據(jù)達(dá)到滿意的去重效果。
【專利說明】
一種流式大數(shù)據(jù)去重的方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及大數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是一種流式大數(shù)據(jù)去重的方法。
【背景技術(shù)】
[0002]在實(shí)時(shí)消息處理的系統(tǒng)中,過濾掉海量數(shù)據(jù)中的重復(fù)記錄有著非同尋常的意義。傳統(tǒng)的大數(shù)據(jù)去重算法有Bloom Filter等,但是Bloom Filter算法需要預(yù)先設(shè)定需要去重的數(shù)據(jù)量和假陽性概率,這種約束可以滿足已知容量的大數(shù)據(jù)去重的要求,卻不能滿足實(shí)時(shí)消息處理的場景。
[0003]中國發(fā)明專利CN104778193 A公開了一種數(shù)據(jù)去重方法,包括:向采集設(shè)備發(fā)送數(shù)據(jù)采集請求,以使所述采集設(shè)備從網(wǎng)絡(luò)上采集數(shù)據(jù),所述數(shù)據(jù)為網(wǎng)絡(luò)數(shù)據(jù)包或通信指令;接收所述采集設(shè)備發(fā)送的第一數(shù)據(jù);檢測緩存中是否存有所述第一數(shù)據(jù),若存有所述第一數(shù)據(jù),則將所述第一數(shù)據(jù)丟棄,若未存有所述第一數(shù)據(jù),則將所述第一數(shù)據(jù)插入緩存。此發(fā)明只需要存儲一份數(shù)據(jù)就可以完成去重,不僅能夠達(dá)到數(shù)據(jù)去重的目的,而且節(jié)約了系統(tǒng)資源。
【發(fā)明內(nèi)容】
[0004]本發(fā)明需要解決的技術(shù)問題提供一種實(shí)時(shí)消息系統(tǒng)中流式大數(shù)據(jù)去重的方法。
[0005]為解決上述的技術(shù)問題,本發(fā)明的一種流式大數(shù)據(jù)去重的方法,使用多個(gè)BloomFi Iter輪換的方式來進(jìn)行不間斷實(shí)時(shí)消息處理。
[0006]進(jìn)一步的,所述多個(gè)BloomFilter輪換的方式為預(yù)寫方式,往當(dāng)前使用的BloomFi Iter中寫入數(shù)據(jù)時(shí),也往下一個(gè)將要使用的Bloom Fi I ter預(yù)寫數(shù)據(jù),下一個(gè)B loomFilter容量達(dá)到一半時(shí),將當(dāng)前使用的Bloom Filter更換為下一個(gè)將要使用的BloomFilter。
[0007]進(jìn)一步的,所述多個(gè)BloomFilter輪換的方式為先判斷方式,往當(dāng)前使用的BloomFilter中寫入數(shù)據(jù)之前先判斷數(shù)據(jù)是否在其他Bloom Filter中存在,當(dāng)當(dāng)前Bloom Filter假陽性概率達(dá)到設(shè)定的值時(shí),將當(dāng)前使用的Bloom Fi I ter更換為下一個(gè)將要使用的BloomFilter。
[0008]采用上述方法后,本發(fā)明具有以下優(yōu)點(diǎn):
[0009]1、在實(shí)時(shí)消息處理中,不需要停頓,保證消息處理的連續(xù)性和實(shí)時(shí)性。
[0010]2、由于消息重復(fù)率一般符合正態(tài)分布,本方法總是保留最近一段時(shí)間的數(shù)據(jù)作為去重的依據(jù),可以去除絕大部分重復(fù)數(shù)據(jù)達(dá)到滿意的去重效果。
【附圖說明】
[0011 ]下面將結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0012]圖1為本發(fā)明第一方案的流程示意圖。
[0013]圖2為本發(fā)明第二方案的流程示意圖。
【具體實(shí)施方式】
[0014]本發(fā)明的一種流式大數(shù)據(jù)去重的方法,使用多個(gè)Bloom Filter輪換的方式來進(jìn)行不間斷實(shí)時(shí)消息處理。其中多個(gè)Bloom Filter輪換的方式具體包括以下兩種實(shí)施方式。[00?5]實(shí)施方式一:
[0016]如圖1所示,往當(dāng)前使用的BloomFilter中寫入數(shù)據(jù)時(shí),也往下一個(gè)將要使用的Bloom Filter預(yù)寫數(shù)據(jù),下一個(gè)Bloom Filter容量達(dá)到一半時(shí),將當(dāng)前使用的BloomFilter更換為下一個(gè)將要使用的Bloom Filter。具體步驟如下:
[0017]1.初始化兩個(gè)Bloom Filter(編號1、2);
[0018]2.將實(shí)時(shí)消息處理的消息寫入編號I的Bloom Filter去判斷是否為重復(fù)數(shù)據(jù);
[0019]3.同時(shí)將實(shí)時(shí)消息處理的消息寫入編號2的Bloom Filter預(yù)先填充數(shù)據(jù);
[0020]4.當(dāng)編號I的Bloom Filter達(dá)到一半容量的時(shí)候,清空編號2的BloomFilter;
[0021]5.繼續(xù)寫入編號I的Bloom Filter,預(yù)填充編號2的Bloom Filter;
[0022]6.當(dāng)編碼為2的Bloom Fi I ter達(dá)到一半容量的時(shí)候,清空清空編號I的BloomFilter;
[0023]7.這樣又回到了步驟4。
[0024]實(shí)施方式二:
[0025]如圖2所示,先判斷方式,往當(dāng)前使用的BloomFilter中寫入數(shù)據(jù)之前先判斷數(shù)據(jù)是否在其他Bloom Filter中存在,當(dāng)當(dāng)前Bloom Filter假陽性概率達(dá)到設(shè)定的值時(shí),將當(dāng)前使用的Bloom Filter更換為下一個(gè)將要使用的Bloom Filter。具體步驟如下:
[0026]1.初始化兩個(gè)Bloom Filter(編號1、2);
[0027]2.將實(shí)時(shí)消息處理的消息寫入編號I的Bloom Filter去判斷是否為重復(fù)數(shù)據(jù);
[0028]3.當(dāng)編號I的Bloom Filter達(dá)到設(shè)置的容量的時(shí)候,不再寫入;
[0029]4.繼續(xù)將消息放入編號I的Bloom Filter判斷是否重復(fù),但是不寫入,如果不重復(fù)則寫入編號2的Bloom Filter去判斷是否為重復(fù)數(shù)據(jù);
[0030]5.當(dāng)編號2的Bloom Filter達(dá)到設(shè)置的容量的時(shí)候,不再寫入,并且清空編號I的Bloom Filter;這樣又回到了步驟3。
[0031]雖然以上描述了本發(fā)明的【具體實(shí)施方式】,但是本領(lǐng)域熟練技術(shù)人員應(yīng)當(dāng)理解,這些僅是舉例說明,可以對本實(shí)施方式作出多種變更或修改,而不背離發(fā)明的原理和實(shí)質(zhì),本發(fā)明的保護(hù)范圍僅由所附權(quán)利要求書限定。
【主權(quán)項(xiàng)】
1.一種流式大數(shù)據(jù)去重的方法,其特征在于:使用多個(gè)BloomFilter輪換的方式來進(jìn)行不間斷實(shí)時(shí)消息處理。2.按照權(quán)利要求1所述的一種流式大數(shù)據(jù)去重的方法,其特征在于,所述多個(gè)BloomFilter輪換的方式為預(yù)寫方式,往當(dāng)前使用的Bloom Filter中寫入數(shù)據(jù)時(shí),也往下一個(gè)將要使用的Bloom Filter預(yù)寫數(shù)據(jù),下一個(gè)Bloom Filter容量達(dá)到一半時(shí),將當(dāng)前使用的Bloom Filter更換為下一個(gè)將要使用的Bloom Filter。3.按照權(quán)利要求1所述的一種流式大數(shù)據(jù)去重的方法,其特征在于,所述多個(gè)BloomFilter輪換的方式為先判斷方式,往當(dāng)前使用的Bloom Filter中寫入數(shù)據(jù)之前先判斷數(shù)據(jù)是否在其他Bloom Filter中存在,當(dāng)當(dāng)前Bloom Filter假陽性概率達(dá)到設(shè)定的值時(shí),將當(dāng)前使用的Bloom Filter更換為下一個(gè)將要使用的Bloom Filter。
【文檔編號】G06F17/30GK105975516SQ201610277707
【公開日】2016年9月28日
【申請日】2016年4月27日
【發(fā)明人】陳海文, 黃三偉
【申請人】湖南蟻坊軟件有限公司