一種基于概要結(jié)構(gòu)的流數(shù)據(jù)立方體構(gòu)建方法
【專利摘要】本發(fā)明涉及一種基于概要結(jié)構(gòu)的流數(shù)據(jù)立方體構(gòu)建方法(Sketch?Cube),包括以下步驟:把任意維度組合映射成唯一自然數(shù);根據(jù)上下限單調(diào)原則對(duì)維度組合裁剪;在類線性空間中保存有效數(shù)據(jù)單元信息;構(gòu)建時(shí)間序列索引。本發(fā)明的有益效果為:可以在類線性存儲(chǔ)空間中滿足實(shí)時(shí)分析要求,并且可以有效地控制正確率。
【專利說明】一種基于概要結(jié)構(gòu)的流數(shù)據(jù)立方體構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)統(tǒng)計(jì)與分析領(lǐng)域,尤其涉及一種基于概要結(jié)構(gòu)的流數(shù)據(jù)立方體構(gòu)建方法。
【背景技術(shù)】
[0002]移動(dòng)互聯(lián)網(wǎng)的發(fā)展帶來了越來越多的流數(shù)據(jù),如路由器中的IP地址包、微博微信等社交媒體中的短文本內(nèi)容、用戶商品瀏覽行為日志信息等,流數(shù)據(jù)是一組順序、大量、快速且連續(xù)到達(dá)的數(shù)據(jù)序列,一般情況下,其可被視為隨時(shí)間延續(xù)而無限增長(zhǎng)的動(dòng)態(tài)數(shù)據(jù)的隹A
口 O
[0003]目前,常見的流數(shù)據(jù)分析方法有基于數(shù)據(jù)抽樣和基于數(shù)據(jù)壓縮兩種方式。這些方法把數(shù)據(jù)看成整體而進(jìn)行全局的分析,而并沒有把流數(shù)據(jù)看成是一串連續(xù)的多維度數(shù)據(jù)而在不同層次進(jìn)行分析挖掘。對(duì)不同層次和大小的數(shù)據(jù)單元進(jìn)行聚合操作分析,可以挖掘出應(yīng)用在特定時(shí)間下的使用場(chǎng)景,因而具有重要意義。傳統(tǒng)數(shù)據(jù)倉庫聯(lián)機(jī)分析OLAP處理工具把數(shù)據(jù)倉庫中的記錄投射到不同空間中的數(shù)據(jù)立方進(jìn)行分析,從而提供多角度綜合分析能力。OLAP結(jié)合概要結(jié)構(gòu)可以提供在實(shí)時(shí)流數(shù)據(jù)中的數(shù)據(jù)立方方法。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)中存在的不足,本發(fā)明的目的在于提供一種基于概要結(jié)構(gòu)的流數(shù)據(jù)立方體構(gòu)建方法,以解決現(xiàn)有海量流數(shù)據(jù)下的數(shù)據(jù)立方體在存儲(chǔ)空間、處理速度等方面的缺點(diǎn)。
[0005]本發(fā)明的技術(shù)方案如下:
[0006]一種基于概要結(jié)構(gòu)的流數(shù)據(jù)立方體構(gòu)建方法,包括以下步驟:
[0007]步驟SlOO:對(duì)流數(shù)據(jù)的任意維度組合通過配對(duì)函數(shù)映射成一唯一標(biāo)識(shí),該標(biāo)識(shí)為一自然數(shù);
[0008]步驟SlOO進(jìn)一步包括有:
[0009]步驟SllO:將所需構(gòu)建的流數(shù)據(jù)立方體中的相同屬性值按照頻率的高低進(jìn)行排序,并按照自然數(shù)從小向大的次序進(jìn)行映射;
[0010]步驟S120:對(duì)于所需構(gòu)建的流數(shù)據(jù)立方體中的不同屬性值,按其數(shù)值的基數(shù)進(jìn)行倒排;
[0011]步驟S200:提供一概要統(tǒng)計(jì)模型,其根據(jù)所需構(gòu)建的流數(shù)據(jù)立方體的數(shù)據(jù)分布特性和存儲(chǔ)模型特點(diǎn),依據(jù)上下限單調(diào)原則對(duì)各維度組合裁剪;
[0012]步驟S200進(jìn)一步包括有:
[0013]步驟S210:提供一裁剪模型,對(duì)單個(gè)維度進(jìn)行統(tǒng)計(jì),由所需構(gòu)建的流數(shù)據(jù)立方體聚合的單調(diào)性獲得裁剪公式;
[0014]步驟S220:根據(jù)最終效果,判斷使用單維度裁剪模型或者組合維度的裁剪模型;
[0015]步驟S300:以固定時(shí)間片為單位進(jìn)行索引,使用的主鍵為流數(shù)據(jù)所在的ID和時(shí)間值,對(duì)應(yīng)的值為概要統(tǒng)計(jì)模型中的多維度數(shù)組,并將有效的數(shù)據(jù)單元信息保存在類線性空間中;
[0016]步驟S300進(jìn)一步包括:
[0017]步驟S310:不同的流數(shù)據(jù)在特定的時(shí)間段內(nèi),對(duì)所有維度組合產(chǎn)生的唯一標(biāo)識(shí)進(jìn)行最小計(jì)數(shù)概要統(tǒng)計(jì);
[0018]步驟S320:對(duì)于統(tǒng)計(jì)結(jié)果先放置在計(jì)算機(jī)的內(nèi)存,然后定時(shí)存儲(chǔ)于NoSql數(shù)據(jù)庫中;
[0019]步驟S400:實(shí)時(shí)查詢時(shí),給定流數(shù)據(jù)所在的ID、時(shí)間段以及相關(guān)屬性值,返回相應(yīng)流數(shù)據(jù)立方體中的度量值。
[0020]步驟S400進(jìn)一步包括:
[0021]步驟S410:不同的流數(shù)據(jù)在特定的時(shí)間段內(nèi),所有的維度都會(huì)在先映射后添加到Hash表中,給定流數(shù)據(jù)所在的ID、時(shí)間段以及相關(guān)屬性值,生成含有這些屬性的所有維度組合;
[0022]步驟S420:將這些維度組合映射成為映射值后,找出各映射值所對(duì)應(yīng)的在Hash表中的位置信息;
[0023]步驟S430:根據(jù)步驟S420中獲得的位置信息,查詢并使用最小技術(shù)概要方法得到該組合的統(tǒng)計(jì)數(shù)據(jù);
[0024]步驟S440:將這些維度組合按照所要求的屬性,進(jìn)行組合或者抵消后形成具體的屬性,然后將結(jié)果返回。
[0025]本發(fā)明的有益效果是:對(duì)于互聯(lián)網(wǎng)中出現(xiàn)的越來越復(fù)雜的流數(shù)據(jù),將其看作是一連串的多維度數(shù)據(jù)并當(dāng)作整體進(jìn)行全局分析,將流數(shù)據(jù)的各維度組合進(jìn)行一一映射生成一永不沖突且唯一的標(biāo)識(shí),并以連續(xù)的自然數(shù)依小到大的方式呈現(xiàn),如此實(shí)現(xiàn)了在類線性存儲(chǔ)空間中的實(shí)時(shí)分析,且可以有效地控制正確率。
[0026]說明書附圖
[0027]圖1是本發(fā)明的流程框圖;
[0028]圖2是本發(fā)明的操作框圖;
[0029]圖3是小顆粒時(shí)間累加得到大顆粒時(shí)間度量值示意圖。
【具體實(shí)施方式】
[0030]以下描述和附圖充分地示出本發(fā)明的具體實(shí)施方案,以使本領(lǐng)域的技術(shù)人員能夠?qū)嵺`它們。實(shí)施例僅代表可能的變化。本發(fā)明的實(shí)施方案的范圍包括權(quán)利要求書的整個(gè)范圍,以及權(quán)利要求書的所有可獲得的等同物。在本文中,本發(fā)明的這些實(shí)施方案可以被單獨(dú)地或總地用術(shù)語“發(fā)明”來表示,這僅僅是為了方便,并且如果事實(shí)上公開了超過一個(gè)的發(fā)明,不是要自動(dòng)地限制該應(yīng)用的范圍為任何單個(gè)發(fā)明或發(fā)明構(gòu)思。
[0031]實(shí)施例1
[0032]本發(fā)明提出一種基于概要結(jié)構(gòu)的流數(shù)據(jù)立方體構(gòu)建方法,其用于解決海量流數(shù)據(jù)下的數(shù)據(jù)立方體在存儲(chǔ)空間、處理速度等方面的缺點(diǎn)。
[0033]構(gòu)建概要結(jié)構(gòu)的流數(shù)據(jù)立方體包括如下步驟:
[0034]步驟SlOO:提出一種可擴(kuò)展的數(shù)據(jù)單元標(biāo)識(shí)模型,對(duì)流數(shù)據(jù)的任意維度組合通過配對(duì)函數(shù)映射生成唯一標(biāo)識(shí),且永不沖突。
[0035]該步驟SlOO進(jìn)一步包括:
[0036]步驟SllO:將所需要的流數(shù)據(jù)立方體中的相同屬性值按照其頻率的高低排序,按自然數(shù)從小向大的次序進(jìn)行映射;
[0037]步驟S120:對(duì)于所需要的流數(shù)據(jù)立方體中的不同屬性值,按其數(shù)值的基數(shù)進(jìn)行倒排,使得屬性值分布廣泛的值放置靠后,可以有效減少配對(duì)函數(shù)產(chǎn)生的值。
[0038]在步驟SlOO中運(yùn)用一數(shù)據(jù)單元標(biāo)識(shí)器進(jìn)行映射,其功能是把不同的維度組合映射成一唯一整數(shù),且該數(shù)據(jù)單元標(biāo)識(shí)器支持維度的擴(kuò)展,在新增維度或修改維度值都不會(huì)影響原有的映射值。
[0039]數(shù)據(jù)單元標(biāo)識(shí)器為一數(shù)據(jù)單元標(biāo)識(shí)函數(shù),具體包括:
[0040]算法1:數(shù)據(jù)單元標(biāo)識(shí)算法DCI
[0041]輸入:流數(shù)據(jù)記錄r= (a” a2,…,ai; m, t)。
[0042]輸出:r所有維度組合標(biāo)識(shí)。
[0043]①將記錄r中的維度映射成Oi1, n2,…,nn)
[0044]②根據(jù)計(jì)算出其對(duì)應(yīng)的所有組合set〈Combinat1n>。
[0045]③將set〈result>設(shè)置為空;
[0046]④對(duì)于set〈Combinat1n>中的任何一個(gè)元素X,做以下操作:
[0047]⑤對(duì)這個(gè)元素進(jìn)行求Pairing Funct1n (x)操作后,將結(jié)果存入到set〈result>集中;
[0048]⑥結(jié)束循環(huán);
[0049]⑦將set〈result> 集返回;
[0050]算法I (Data Cell Identifier)把流數(shù)據(jù)中每條記錄映射成由小到大的自然數(shù),通過遞歸函數(shù)得到與之相關(guān)的所有維度組合,并使用康托爾配對(duì)函數(shù)獲得每個(gè)組合唯一標(biāo)識(shí)。數(shù)據(jù)單元標(biāo)識(shí)算法輸出所有相關(guān)數(shù)據(jù)單元標(biāo)識(shí),且配對(duì)函數(shù)保證標(biāo)識(shí)符可擴(kuò)展不沖突。
[0051]具體地,如,在流數(shù)據(jù)R= (A11A2, - ,An, Μ, T)中,|A」表示第i維的基數(shù)。
[0052]把記錄R的維度Ai映射成連續(xù)的自然數(shù)。
[0053]對(duì)于上述的記錄R產(chǎn)生的η個(gè)自然數(shù)Ni,這些自然數(shù)形成了一個(gè)集合S,使用配對(duì)函數(shù)對(duì)S中的任意非空子集生成唯一自然數(shù)。
[0054]繼續(xù)進(jìn)行一第二步驟S200,為一數(shù)據(jù)分析步驟,該步驟S200為提出一種改進(jìn)的概要統(tǒng)計(jì)模型,根據(jù)數(shù)據(jù)分布特性和存儲(chǔ)模型特點(diǎn),有效裁剪結(jié)果無效的數(shù)據(jù)單元。不但可以提高計(jì)算能力和存儲(chǔ)空間效率,而且可大幅度提高統(tǒng)計(jì)精確度。
[0055]提出一種通過概要技術(shù)對(duì)流數(shù)據(jù)進(jìn)行OLAP統(tǒng)計(jì)的方法,存儲(chǔ)和計(jì)數(shù)由數(shù)據(jù)單元標(biāo)識(shí)模型產(chǎn)生的維度組合信息。
[0056]計(jì)數(shù)最小概要模型CM Sketch(Count-Min Sketch)是一個(gè)使用互相獨(dú)立哈希函數(shù)族函數(shù)統(tǒng)計(jì)流數(shù)據(jù)元素出現(xiàn)頻率的模型。
[0057]該模型進(jìn)一步包括:
[0058]下面所示為wXd的二維數(shù)組。
[0059]
Skcich[l,I]...Skclch[Lw]
Sketch[d,I]...Skclch[d,w]
[0060]其中d表示互相獨(dú)立哈希族函數(shù)的個(gè)數(shù),w表示每個(gè)哈希函數(shù)的映射范圍,如下式所示
[0061]hk: {1...N} — {1...w}, (I ^ k ^ d)
[0062]同時(shí),對(duì)于2n元素的集合只需η位就能表示。因此,設(shè)計(jì)包含d個(gè)函數(shù)的互相獨(dú)立哈希函數(shù)族,可使用及個(gè)不同元素兩兩組合表示。
[0063]在該數(shù)據(jù)表示時(shí),給定數(shù)據(jù)集合如下式所示
[0064]SecdSct-| η < Vd + 11
[0065]從SeedSet中隨機(jī)取不同的元素a和b,設(shè)計(jì)哈希函數(shù)為式
[0066]ha;b (Z) = aX z+b
[0067]由ha,b(Z)產(chǎn)生的坐標(biāo)信息是變長(zhǎng)的,下式可把變長(zhǎng)值規(guī)約到長(zhǎng)度為w大小的數(shù)組中:
[0068]ha;b(Z) = ((aXz+b) % p) % w, (I)其中 P 為大質(zhì)數(shù)。
[0069]上式(I)為Carter-Wegman模型,以保證元素的平均分布。
[0070]該步驟S200進(jìn)一步包括:
[0071]步驟S210:提供一種裁剪模型,對(duì)單個(gè)維度進(jìn)行統(tǒng)計(jì),由數(shù)據(jù)立方體聚合的單調(diào)性給出裁剪公式;
[0072]步驟S220:根據(jù)最終效果,判斷使用單維度裁剪模型或者組合維度的裁剪模型。
[0073]繼續(xù)進(jìn)行一第三步驟S300,以固定時(shí)間片為單位進(jìn)行索引,使用的主鍵為流數(shù)據(jù)所在的ID和時(shí)間值,對(duì)應(yīng)的值為概要統(tǒng)計(jì)模型中的多維度數(shù)組,并將有效的數(shù)據(jù)單元信息保存在類線性空間中;
[0074]步驟S300進(jìn)一步包括:
[0075]步驟S310:不同的流數(shù)據(jù)在特定的時(shí)間段內(nèi),對(duì)所有維度組合產(chǎn)生的唯一標(biāo)識(shí)進(jìn)行最小計(jì)數(shù)概要統(tǒng)計(jì);
[0076]步驟S320:對(duì)于統(tǒng)計(jì)結(jié)果先放置在計(jì)算機(jī)的內(nèi)存,然后定時(shí)存儲(chǔ)于NoSql數(shù)據(jù)庫中。
[0077]然后進(jìn)行步驟S400,為在實(shí)時(shí)查詢時(shí),給定流數(shù)據(jù)所在的ID、時(shí)間段以及相關(guān)屬性值,返回相應(yīng)流數(shù)據(jù)立方體中的度量值。
[0078]步驟S400進(jìn)一步包括:
[0079]步驟S410:不同的流數(shù)據(jù)在特定的時(shí)間段內(nèi),所有的維度都會(huì)在先映射后添加到Hash表中,給定流數(shù)據(jù)所在的ID、時(shí)間段以及相關(guān)屬性值,生成含有這些屬性的所有維度組合;
[0080]步驟S420:將這些維度組合映射成為映射值后,找出各映射值所對(duì)應(yīng)的在Hash表中的位置信息;
[0081]步驟S430:根據(jù)步驟S420中獲得的位置信息,查詢并使用最小技術(shù)概要方法得到該維度組合的統(tǒng)計(jì)數(shù)據(jù);
[0082]步驟S440:將這些維度組合按照所要求的屬性,進(jìn)行組合或者抵消后形成具體的屬性,然后將結(jié)果返回。
[0083]具體如下,對(duì)于該概要統(tǒng)計(jì)模型的填充操作為:對(duì)于第t次到達(dá)的元素C,計(jì)數(shù)最小概要模型更新操作如下式所示。
[0084]Vl< j<d:CM[j,CM[j,hjf1.j] + C1( 2 )
[0085]該概要統(tǒng)計(jì)模型的更新時(shí)間復(fù)雜度為O&cg 。
[0086]該概要統(tǒng)計(jì)模型中統(tǒng)計(jì)元素%在CM Sketch中的操作如下式:
[0087]a; = mini <: < dCM[j,hj(i)]( 3 )
[0088]即通過哈希函數(shù)族中的每個(gè)函數(shù)計(jì)算該元素在對(duì)應(yīng)數(shù)組中的下標(biāo)值,獲得所有可能值中的最小值即為該元素的估計(jì)值。其查詢時(shí)間復(fù)雜度為0(1)。
[0089]該概要統(tǒng)計(jì)模型的壓縮率為:
[0090]對(duì)于(ApA2, - ,An)數(shù)據(jù)立方體,其所有數(shù)據(jù)單元個(gè)數(shù)T為:
[0091]T = ]"^] +1)(4)
[0092]則Sketch Cube模型的壓縮率P為下式:
[0093]P = Π'(lAll +O χ j Q0O7Z1( 5 )
w xd
[0094]流數(shù)據(jù)具體有內(nèi)在時(shí)序性,對(duì)流數(shù)據(jù)挖掘用傾斜時(shí)間窗口 TTW(TiIted-TimeWindow)在不同時(shí)間粒度(Multiple Time Granularities)上進(jìn)行分析,即對(duì)流數(shù)據(jù)挖掘用傾斜時(shí)間窗口在不同時(shí)間粒度上進(jìn)行分析。Sketch Cube按時(shí)間片段對(duì)元素組合進(jìn)行統(tǒng)計(jì)把結(jié)果放入計(jì)數(shù)最小概要模型。如此不但可以提高計(jì)算能力和存儲(chǔ)空間效率,而且可大幅度提高統(tǒng)計(jì)精確度。
[0095]SketchCube設(shè)計(jì)的存儲(chǔ)結(jié)構(gòu)可支持任意時(shí)間粒度的組合,其合并公式如下。
[0096]Vl < j < d: CM[j,h,;(il:, , ^)] ^ CM [j, hi(il:,)] + CM [j, ^(1.,)]( 6 )
[0097]對(duì)于給定哈希函數(shù)族,相同維度組合在不同時(shí)間中的映射地址相等,可單次掃描小顆粒時(shí)間累加得到大顆粒時(shí)間度量值(參見圖3)。
[0098]上述實(shí)施例僅僅是為清楚地說明本發(fā)明創(chuàng)造所作的舉例,而并非對(duì)本發(fā)明【具體實(shí)施方式】的限定。對(duì)于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng)。這里無需也無法對(duì)所有的實(shí)施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所引伸出的任何顯而易見的變化或變動(dòng)仍處于本權(quán)利要求的保護(hù)范圍之中。
【權(quán)利要求】
1.一種基于概要結(jié)構(gòu)的流數(shù)據(jù)立方體構(gòu)建方法,其特征在于,包括以下步驟: 步驟SlOO:對(duì)流數(shù)據(jù)的任意維度組合通過配對(duì)函數(shù)映射成一唯一標(biāo)識(shí),該標(biāo)識(shí)為一自然數(shù); 步驟S200:提供一概要統(tǒng)計(jì)模型,其根據(jù)所需構(gòu)建的流數(shù)據(jù)立方體的數(shù)據(jù)分布特性和存儲(chǔ)模型特點(diǎn),依據(jù)上下限單調(diào)原則對(duì)各維度組合裁剪; 步驟S300:以固定時(shí)間片為單位進(jìn)行索引,使用的主鍵為流數(shù)據(jù)所在的ID和時(shí)間值,對(duì)應(yīng)的值為概要統(tǒng)計(jì)模型中的多維度數(shù)組,并將有效的數(shù)據(jù)單元信息保存在類線性空間中; 步驟S400:實(shí)時(shí)查詢時(shí),給定流數(shù)據(jù)所在的ID、時(shí)間段以及相關(guān)屬性值,返回相應(yīng)流數(shù)據(jù)立方體中的度量值。
2.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,其中的步驟SlOO進(jìn)一步包括有: 步驟SllO:將所需構(gòu)建的流數(shù)據(jù)立方體中的相同屬性值按照頻率的高低進(jìn)行排序,并按照自然數(shù)從小向大的次序進(jìn)行映射; 步驟S120:對(duì)于所需構(gòu)建的流數(shù)據(jù)立方體中的不同屬性值,按其數(shù)值的基數(shù)進(jìn)行倒排。
3.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,其中的步驟S200進(jìn)一步包括有: 步驟S210:提供一裁剪模型,對(duì)單個(gè)維度進(jìn)行統(tǒng)計(jì),由所需構(gòu)建的流數(shù)據(jù)立方體聚合的單調(diào)性獲得裁剪公式; 步驟S220:根據(jù)最終效果,判斷使用單維度裁剪模型或者組合維度的裁剪模型。
4.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,其中的步驟S300進(jìn)一步包括: 步驟S310:不同的流數(shù)據(jù)在特定的時(shí)間段內(nèi),對(duì)所有維度組合產(chǎn)生的唯一標(biāo)識(shí)進(jìn)行最小計(jì)數(shù)概要統(tǒng)計(jì); 步驟S320:對(duì)于統(tǒng)計(jì)結(jié)果先放置在計(jì)算機(jī)的內(nèi)存,然后定時(shí)存儲(chǔ)于NoSql數(shù)據(jù)庫中。
5.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,其中的步驟S400進(jìn)一步包括: 步驟S410:不同的流數(shù)據(jù)在特定的時(shí)間段內(nèi),所有的維度都會(huì)在先映射后添加到Hash表中,給定流數(shù)據(jù)所在的ID、時(shí)間段以及相關(guān)屬性值,生成含有這些屬性的所有維度組合;步驟S420:將這些維度組合映射成為映射值后,找出各映射值所對(duì)應(yīng)的在Hash表中的位置信息; 步驟S430:根據(jù)步驟S420中獲得的位置信息,查詢并使用最小技術(shù)概要方法得到該組合的統(tǒng)計(jì)數(shù)據(jù); 步驟S440:將這些維度組合按照所要求的屬性,進(jìn)行組合或者抵消后形成具體的屬性,然后將結(jié)果返回。
6.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,所述步驟SlOO中,運(yùn)用一數(shù)據(jù)單元標(biāo)識(shí)器進(jìn)行映射,該數(shù)據(jù)單元標(biāo)識(shí)器支持維度擴(kuò)展。
【文檔編號(hào)】G06F17/30GK104199821SQ201410323039
【公開日】2014年12月10日 申請(qǐng)日期:2014年7月8日 優(yōu)先權(quán)日:2014年7月8日
【發(fā)明者】吳明暉, 金蒼宏, 胡宇響, 應(yīng)晶, 朱凡微, 劉澤民 申請(qǐng)人:浙江大學(xué)城市學(xué)院