1.一種面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法,其特征在于,所述面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法針對(duì)流式大數(shù)據(jù),通過(guò)降低計(jì)算精度提高基數(shù)估計(jì)效率;對(duì)HyperLogLog Counting算法所需的中間統(tǒng)計(jì)信息進(jìn)行分區(qū)計(jì)算,選擇高效的哈希算法和最優(yōu)的分桶個(gè)數(shù),通過(guò)改進(jìn)的分桶方法將哈希過(guò)的數(shù)據(jù)較為均勻的映射到m個(gè)不同的桶號(hào)中,并進(jìn)行增量維護(hù),再進(jìn)行合并得到最終的中間統(tǒng)計(jì)信息,從而計(jì)算基數(shù)估計(jì)值。
2.如權(quán)利要求1所述的面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法,其特征在于,所述面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法包括以下步驟:
步驟一,按照流式數(shù)據(jù)到達(dá)時(shí)刻以相同的時(shí)間間隔將大數(shù)據(jù)劃分成多個(gè)分區(qū),每個(gè)分區(qū)內(nèi)保存所述大數(shù)據(jù)中的一段數(shù)據(jù)源,各個(gè)分區(qū)之間按照時(shí)序關(guān)系有序排列;
步驟二,在每個(gè)分區(qū)構(gòu)建統(tǒng)計(jì)信息計(jì)算器,通過(guò)改進(jìn)的分桶方法將哈希過(guò)的數(shù)據(jù)較為均勻的映射到m個(gè)不同的桶號(hào)中,維護(hù)和建立一個(gè)m字節(jié)大小的記錄分區(qū)數(shù)據(jù)統(tǒng)計(jì)信息的bitmap;
步驟三,建立和增量維護(hù)全局哈希表,每個(gè)分區(qū)的統(tǒng)計(jì)信息以鍵值對(duì)的形式存入全局哈希表,鍵為對(duì)應(yīng)分區(qū)起始時(shí)刻時(shí)間經(jīng)過(guò)哈希后的值,值即為該分區(qū)的經(jīng)過(guò)統(tǒng)計(jì)信息計(jì)算器獲得的bitmap中存放的值;
步驟四,構(gòu)建分區(qū)統(tǒng)計(jì)信息合并器,從全局哈希表中獲取給定數(shù)據(jù)時(shí)間窗口中所有分區(qū)的統(tǒng)計(jì)信息bitmap,合并成代表數(shù)據(jù)時(shí)間窗口中所有數(shù)據(jù)的統(tǒng)計(jì)信息bitmap;
步驟五,構(gòu)建基數(shù)估計(jì)計(jì)算器,從分區(qū)統(tǒng)計(jì)信息合并器中獲取最終的統(tǒng)計(jì)信息bitmap,進(jìn)行偏差調(diào)整,選擇最優(yōu)的結(jié)果。
3.如權(quán)利要求2所述的面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法,其特征在于,所述分區(qū)的建立包括:按照流式數(shù)據(jù)到達(dá)時(shí)刻以相同的時(shí)間間隔將大數(shù)據(jù)劃分成多個(gè)分區(qū),每個(gè)分區(qū)內(nèi)保存所述大數(shù)據(jù)中的一段數(shù)據(jù)源,各個(gè)分區(qū)之間按照時(shí)序關(guān)系有序排列如下:[t1,t1+Δt),[t1+Δt,t1+2Δt),[t1+2Δt,t1+3Δt),...,[t1+kΔt,t2),其中k=floor((t2-t1)/Δt)。
4.如權(quán)利要求2所述的面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法,其特征在于,所述在每個(gè)分區(qū)構(gòu)建統(tǒng)計(jì)信息計(jì)算器將數(shù)據(jù)映射到64比特空間;最終確定分桶數(shù)m=216;截取64比特?cái)?shù)據(jù)值的前3組log2m比特的二進(jìn)制值相互異或,將異或值作為桶號(hào);64比特?cái)?shù)據(jù)值去掉前l(fā)og2m比特剩余比特組成的二進(jìn)制值就是需處理的真實(shí)值,計(jì)算其ρ值,更新bitmap中對(duì)應(yīng)桶號(hào)的最大ρ值。
5.如權(quán)利要求2所述的面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法,其特征在于,所述建立和增量維護(hù)全局哈希表包括:
第一步,實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)時(shí)間窗口中的分區(qū),確定離開(kāi)數(shù)據(jù)時(shí)間窗口,新進(jìn)入數(shù)據(jù)時(shí)間窗口,仍在數(shù)據(jù)時(shí)間窗口數(shù)據(jù)未發(fā)生改變,仍在數(shù)據(jù)時(shí)間窗口數(shù)據(jù)發(fā)生改變這四類(lèi)分區(qū);
第二步,根據(jù)鍵值從全局哈希表中刪除不在數(shù)據(jù)時(shí)間窗口的分區(qū)統(tǒng)計(jì)信息;
第三步,計(jì)算新進(jìn)入時(shí)間窗口中的分區(qū)統(tǒng)計(jì)信息,添加到全局哈希表中;
第四步,重新計(jì)算仍在時(shí)間窗口中但數(shù)據(jù)發(fā)生改變的分區(qū)統(tǒng)計(jì)信息;
第五步,保持仍在時(shí)間窗口中數(shù)據(jù)未發(fā)生改變的分區(qū)統(tǒng)計(jì)信息。
6.如權(quán)利要求2所述的面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法,其特征在于,所述構(gòu)建分區(qū)統(tǒng)計(jì)信息合并器包括:
1)遍歷全局哈希表,根據(jù)鍵獲取存放分區(qū)統(tǒng)計(jì)新的所有值;
2)存放每個(gè)分區(qū)統(tǒng)計(jì)信息的bitmap一共有m字節(jié),有n個(gè)分區(qū)統(tǒng)計(jì)信息b1,b2,b3,...,bn,則M[i]=max{b1[i],b2[i],...,bn[i]},i=0,1,...,m-1,則M中存放的就是最終所有分區(qū)合并后的統(tǒng)計(jì)信息。
7.如權(quán)利要求2所述的面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法,其特征在于,所述構(gòu)建基數(shù)估計(jì)計(jì)算器包括:
(1)從分區(qū)統(tǒng)計(jì)信息合并器中獲取最終的統(tǒng)計(jì)信息M,通過(guò)調(diào)和平均計(jì)算初步的基數(shù)估計(jì)值E;
(2)根據(jù)計(jì)算出的基數(shù)估計(jì)值,E太大就進(jìn)行大范圍修正,若范圍太小則進(jìn)行小范圍修正,若范圍剛好則不修正。
8.一種應(yīng)用權(quán)利要求1~7任意一項(xiàng)所述面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法的數(shù)據(jù)庫(kù)優(yōu)化系統(tǒng)。
9.一種應(yīng)用權(quán)利要求1~7任意一項(xiàng)所述面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法的網(wǎng)絡(luò)監(jiān)控系統(tǒng)。
10.一種應(yīng)用權(quán)利要求1~7任意一項(xiàng)所述面向流式大數(shù)據(jù)的基數(shù)估計(jì)方法的數(shù)據(jù)分析系統(tǒng)。