一種估算誤差可控的概要數(shù)據(jù)壓縮方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于信息技術(shù)領(lǐng)域,針對大數(shù)據(jù)環(huán)境下的近似查詢系統(tǒng)概要數(shù)據(jù)不斷膨脹 的應(yīng)用背景,提出一種誤差可控的概要數(shù)據(jù)壓縮方法。
【背景技術(shù)】
[0002] 目前大數(shù)據(jù)分析處理技術(shù)已經(jīng)廣泛應(yīng)用于各行業(yè)中,通過分析行業(yè)內(nèi)的海量數(shù) 據(jù)資源,為上層業(yè)務(wù)提供及時(shí)可靠的解決方案。近似計(jì)算是大數(shù)據(jù)分析處理系統(tǒng)中一種 重要的技術(shù)手段,由于近似計(jì)算需要比原始數(shù)據(jù)少得多的概要數(shù)據(jù),提供高精度的近似 計(jì)算結(jié)果,在容忍一定誤差的各類應(yīng)用中已經(jīng)被廣泛采用。例如針對大型微博網(wǎng)站的微 博數(shù)據(jù)統(tǒng)計(jì)、購物網(wǎng)站的點(diǎn)擊流數(shù)據(jù)統(tǒng)計(jì)、交易日志流數(shù)據(jù)統(tǒng)計(jì)等系統(tǒng)中,近似計(jì)算不但 能夠有效應(yīng)對海量的數(shù)據(jù)規(guī)模,同時(shí)也為上層業(yè)務(wù)提供高實(shí)時(shí)的決策支持。目前近似計(jì) 算已經(jīng)進(jìn)一步應(yīng)用在網(wǎng)絡(luò)實(shí)時(shí)情感計(jì)算(參考文獻(xiàn):H.Wang,D.Can,A.Kazemzadeh,F. Bar,andS.Narayanan,"Asystemforreal-timetwittersentimentanalysisof 2012u.s.presidentialelectioncycle,"inProceedingsoftheACL2012System Demonstrations,ser.ACL^ 12.Stroudsburg,PA,USA:AssociationforComputational Linguistics,2012,pp. 115 - 120),經(jīng)濟(jì)數(shù)據(jù)指標(biāo)預(yù)測(參考文獻(xiàn):T.Preis,H.S.Moat,and E.H.Stanley,"QuantifyingtradingbehaviorinfinancialmarketsusingGoogle trends,"Sci.R印?,vol. 3,p. 1684, 2013)以及實(shí)時(shí)入侵檢測系統(tǒng)等領(lǐng)域中(參考: X.Yun,Y.Wang,Y.Zhang,andY.Zhou,"Asemantics-awareapproachtotheautomated networkprotocolidentification, "Networking,IEEE/ACMTransactionson,vol. PP,no. 99,pp. 1 - 1,2015) 〇
[0003] 但是大數(shù)據(jù)環(huán)境下的近似查詢系統(tǒng),面臨概要數(shù)據(jù)不斷膨脹的問題。即隨 著大數(shù)據(jù)規(guī)模的急劇膨脹,近似查詢所依賴的概要數(shù)據(jù)規(guī)模也在不斷的增加。此時(shí) 面臨估算精度與概要數(shù)據(jù)量之間的矛盾問題。即所提供的近似估算精度越高,所 需存儲(chǔ)的概要數(shù)據(jù)量就越大。最近提出的大數(shù)據(jù)近似計(jì)算技術(shù),如:近似top-k計(jì) 算(參考:J.Jestes,J.M.Phillips,F(xiàn).Li,andM.Tang,"Rankinglargetemporal data,"Proc.VLDBEndow.,vol. 5,no. 11,pp. 1412 - 1423,Jul. 2012)、近似range-sum 計(jì)算(參考X.Yun,G.Wu,G.Zhang,K.Li,andS.Wang,"Fastraq:Afastapproachto range-aggregatequeriesinbigdataenvironments,"CloudComputing,IEEE Transactionson,vol.PP,no. 99,pp. 1 - 1,2014),有序集合米樣方法(參考:E.Cohen,G. Cormode,andN.Duffield,uStructure-awaresamp1ing:Flexibleandaccurate summarization,"ProceedingsoftheVLDBEndowment,vol. 4,no. 11,2011), 以及 滑動(dòng)窗 口技術(shù)(參考:M.Datar,A.Gionis,P.Indyk,andR.Motwani,"Maintaining streamstatisticsoverslidingwindows:(extendedabstract),"inProceedings oftheThirteenthAnnualACM-SIAMSymposiumonDiscreteAlgorithms,ser. SODA' 02,2002,pp. 635 - 644)等,都沒有考慮到概要數(shù)據(jù)容量問題。當(dāng)新老數(shù)據(jù)采用統(tǒng)一 的誤差參數(shù)時(shí),如果希望獲得高精度的估算結(jié)果,則需要設(shè)置較低的誤差參數(shù),此時(shí)就需要 維護(hù)更大規(guī)模的概要數(shù)據(jù)。而對于長期且不經(jīng)常使用的概要數(shù)據(jù),保存較大規(guī)模的概要數(shù) 據(jù)明顯浪費(fèi)空間。其他的解決方法也包括采用高速介質(zhì),例如使用SSD固態(tài)硬盤,存儲(chǔ)概要 數(shù)據(jù),在擴(kuò)大內(nèi)存容量的基礎(chǔ)上,提高概要數(shù)據(jù)的訪問效率。但是這一解決思路不但成本較 高,而且仍然沒有解決大數(shù)據(jù)環(huán)境下,不同概要數(shù)據(jù)的估算精度和概要數(shù)據(jù)量之間的矛盾 問題。
【發(fā)明內(nèi)容】
[0004] 針對現(xiàn)有技術(shù)中存在的技術(shù)問題,本發(fā)明的目的在于提供一種估算誤差可控的概 要數(shù)據(jù)壓縮方法。本發(fā)明基于大數(shù)據(jù)新鮮度敏感的特點(diǎn),提出誤差限定的概要數(shù)據(jù)壓縮方 法。大數(shù)據(jù)的新鮮度敏感特性可以描述如下:大數(shù)據(jù)中的任意一個(gè)對象object,在某一時(shí) 間點(diǎn)高速到達(dá),然后開始在相關(guān)主題中傳播,經(jīng)過數(shù)天或者數(shù)周以后,逐漸衰減、最后消亡。 本發(fā)明結(jié)合大數(shù)據(jù)的上述特點(diǎn),對長期存在,且不經(jīng)常使用的object,在key、time兩個(gè)維 度上進(jìn)行壓縮,壓縮后的概要數(shù)據(jù)不僅線性的提升存儲(chǔ)空間,而且仍然能夠支持誤差限定 的近似計(jì)算。
[0005] 大數(shù)據(jù)一般具有key和time兩個(gè)屬性的維度,本發(fā)明相應(yīng)的提出基于key維度的 和基于Time維度的兩種概要數(shù)據(jù)壓縮方法。壓縮過程中選用不常用的且長期存在的概要 數(shù)據(jù)進(jìn)行壓縮,壓縮以后的概要數(shù)據(jù)保持原概要數(shù)據(jù)的計(jì)算邏輯,并且能夠線性的提升存 儲(chǔ)空間。進(jìn)一步,本發(fā)明具體以確定波采樣技術(shù)為基礎(chǔ),詳細(xì)介紹概要數(shù)據(jù)的壓縮方法與過 程。
[0006] 本發(fā)明針對數(shù)據(jù)項(xiàng)格式為〈key,time,value〉數(shù)據(jù)源的概要數(shù)據(jù)結(jié)構(gòu)進(jìn)行壓縮, 關(guān)鍵點(diǎn)概況起來如下:
[0007] 1)提出在key維度上概要數(shù)據(jù)的壓縮方法。在key維度上的概要數(shù)據(jù)壓縮過程是 針對一個(gè)集合內(nèi)多個(gè)不同的key對應(yīng)的概要數(shù)據(jù)壓縮成一個(gè)單一結(jié)構(gòu)的概要數(shù)據(jù)的過程。 壓縮以后的概要數(shù)據(jù)可以針對集合內(nèi)的任意key提供集合內(nèi)平均的估算誤差,利用這一方 法實(shí)現(xiàn)面向集合的概要數(shù)據(jù)壓縮過程;
[0008] 2)提出在time維度上概要數(shù)據(jù)壓縮方法。在time維度上的概要數(shù)據(jù)壓縮過程是 根據(jù)大數(shù)據(jù)的時(shí)間敏感特點(diǎn),新數(shù)據(jù)設(shè)置較低的相對誤差,老數(shù)據(jù)設(shè)置較大的相對誤差,使 得新數(shù)據(jù)具備較高的計(jì)算精度,而長期存在的概要數(shù)據(jù)估算精度較低,新老數(shù)據(jù)之間根據(jù) 配置的誤差參數(shù)實(shí)現(xiàn)自動(dòng)轉(zhuǎn)化;
[0009] 3)以確定波采樣技術(shù)為基礎(chǔ)給出上述概要數(shù)據(jù)壓縮的具體應(yīng)用實(shí)例,描述概要數(shù) 據(jù)的構(gòu)建以及在key和time兩個(gè)維度上的概要數(shù)據(jù)具體壓縮過程和概要數(shù)據(jù)的維護(hù)方法, 有效解決真實(shí)流式大數(shù)據(jù)環(huán)境下的概要數(shù)據(jù)估算精度與數(shù)據(jù)量之間的矛盾問題;
[0010] 本發(fā)明的技術(shù)方案為:
[0011] 一種估算誤差可控的概要數(shù)據(jù)壓縮方法,其步驟為:
[0012] 1)對每個(gè)對象object的概要數(shù)據(jù)建立一時(shí)間追蹤器tracker;對于待寫入的概 要數(shù)據(jù),根據(jù)概要數(shù)據(jù)中的對象object定位到對應(yīng)的時(shí)間追蹤器tracker,然后時(shí)間追蹤 器tracker根據(jù)誤差限定的采樣方法對對應(yīng)的概要數(shù)據(jù)進(jìn)行采樣并保存對該時(shí)間追蹤器 tracker對應(yīng)的樣本集合中;
[0013] 2)將每個(gè)時(shí)間追蹤器tracked的樣本集合i中的樣本在時(shí)間維度上劃分為多個(gè) 時(shí)間階段并設(shè)置每一時(shí)間階段的誤差參數(shù);然后時(shí)間追蹤器tracker根據(jù)第i個(gè)時(shí)間階段 對應(yīng)的誤差參數(shù)IJ寸第i_l個(gè)時(shí)間階段的樣本進(jìn)行采樣;
[0014] 3)將步驟2)處理后的樣本集合合并成一個(gè)樣本集合H,然后將該樣本集合H中 的樣本數(shù)據(jù)按照時(shí)間順序?qū)懭氲揭粋€(gè)時(shí)間追蹤器trackei^J^樣本集合內(nèi);其中寫入過程 中,該時(shí)間追蹤器trackernew對該樣本集合H中的樣本在時(shí)間維度上劃分為多個(gè)時(shí)間階段 并設(shè)置每一時(shí)間階段的誤差參數(shù);然后根據(jù)每一時(shí)間階段對應(yīng)的誤差參數(shù)對相應(yīng)時(shí)間階段 的樣本進(jìn)行采樣。
[0015] 進(jìn)一步的,每一時(shí)間階段的誤差參數(shù)的設(shè)置方法為:設(shè)第i個(gè)時(shí)間追蹤器 trackerj^樣本集合中第j個(gè)時(shí)間階段phase^的誤差為|i,」,則|i,j=rh*| ;其中,壓 縮參數(shù)為r,且r>l,|為第一個(gè)時(shí)間階段的誤差參數(shù),h= (TsmaX-StartTs)/TL,TL為時(shí)間 階段phasetj^t間區(qū)間長度,Tsmax為時(shí)間追蹤器tracker最大時(shí)間戳,StartTs為時(shí) 間階段phase^j的起始時(shí)間。
[0016] 進(jìn)一步的,每一時(shí)間階段的所述誤差參數(shù)相同。
[0017] 進(jìn)一步的,所述時(shí)間追蹤器tracked的樣本集合中的樣本數(shù)據(jù)結(jié)構(gòu)為: n <N,value,TS>,其中N是當(dāng)前所有寫入數(shù)據(jù)的value的聚合值,S卩N=^valuCi,vaiueiS i~l 第i個(gè)概要數(shù)據(jù)的value值,value為概要數(shù)據(jù)中用于統(tǒng)計(jì)的數(shù)值。
[0018] 進(jìn)一步的,每一分層中的維護(hù)的樣本數(shù)目.
:寸于位置超過m'位 置的樣本直接丟棄掉。
[0019] 進(jìn)一步的,所述時(shí)間追蹤器tracker采用確定波采樣方法根據(jù)N值進(jìn)行采樣,并 將獲得的樣本數(shù)據(jù)以時(shí)間戳遞增的順序分層放置在所述時(shí)間追蹤器tracker的樣本集合 內(nèi)。
[0020] 進(jìn)一步的,所述采樣的方法為:確定波采樣方法、隨機(jī)波采樣方法、隨機(jī)采樣方法 或指數(shù)直方圖采樣方法。
[0021] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:
[0022] 1)根據(jù)大數(shù)據(jù)新鮮度敏感的特點(diǎn)提出誤差限定的概要數(shù)據(jù)壓縮處理方法。大數(shù)據(jù) 環(huán)境下,為了維持高精度的近似計(jì)算,所需要存儲(chǔ)以及管理的概要數(shù)據(jù)規(guī)模往往十分巨大。 本發(fā)明根據(jù)大數(shù)據(jù)應(yīng)用具有新鮮度敏感的特點(diǎn),選用長期存在且不經(jīng)常使用的概要數(shù)據(jù), 在key和time兩個(gè)維度上進(jìn)行誤差限定的壓縮處理。與傳統(tǒng)的近似計(jì)算系統(tǒng)以及概要數(shù) 據(jù)維護(hù)方法相比,在兼顧了估算精度需求的同時(shí)對樣本數(shù)據(jù)進(jìn)行差異化的處理,不但有效 支持了高精度的近似計(jì)算的需求,同時(shí)顯著降低了概要數(shù)據(jù)存儲(chǔ)和維護(hù)的開銷。
[0023] 以具體的FS-Sketch為例,給出了具體的概要數(shù)據(jù)壓縮與維護(hù)方法。壓縮后的概 要數(shù)據(jù)仍然具備原始概要數(shù)據(jù)的應(yīng)用特點(diǎn),同時(shí)近似計(jì)算結(jié)果的誤差參數(shù)是可控。與現(xiàn)有 的方法相比,更能適合流式大數(shù)據(jù)中具有新鮮度敏感特征的各類應(yīng)用,有效支持點(diǎn)查詢,區(qū) 間查詢等近似計(jì)算。
【附圖說明】
[0024] 圖1為支持壓縮的復(fù)合概要組織結(jié)構(gòu)示意圖;
[0025] 圖2為基于時(shí)間的概要數(shù)據(jù)壓縮處理流程;
[0026] 圖3為壓縮過程中概要數(shù)據(jù)量與相對誤差之間的關(guān)系圖;
[0027] 圖4為不同誤差條件下概要數(shù)據(jù)壓縮的時(shí)間消耗對比圖。
【具體實(shí)施方式】
[0028] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對根據(jù)本發(fā) 明一個(gè)實(shí)施例的層次分段式的備份數(shù)據(jù)組織管理方法進(jìn)一步詳細(xì)說明。
[0029] 大數(shù)據(jù)應(yīng)用一般同時(shí)具有較高的數(shù)據(jù)吞吐率和海量的數(shù)據(jù)規(guī)模。本發(fā)明中對象 Object的數(shù)據(jù)項(xiàng)基本格式為:0bject:〈key, value, Ts>。其中ke