基于大數(shù)據(jù)的數(shù)據(jù)處理方法研究
許超超
(浙江煙草公司 臺州市公司,浙江 臺州 318000)
摘要:針對大數(shù)據(jù)處理效率低問題,該文提出了新的處理辦法。其基本思想是利用預處理方法和歷史查詢結果作為中間結果集,通過對中間集的匹配減少重復處理時間,提高處理效率。最后通過仿真實驗對比分析,表明新方法能夠一定程度上提高數(shù)據(jù)處理效率。
關鍵詞:大數(shù)據(jù);預處理;歷史查詢
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)05-0894-03
Data Processing Method Based on Large Date
XU Chao-chao
(Taizhou Company of Zhejiang Tobacco Company, Taizhou 318000,China)
Abstract: Due to the low efficiency in large data processing, this paper proposes a new approach, that basic idea is using preprocessing methods and historical query results as an intermediate result set, matching by the middle set, to reduce the time on duplication processing and improve processing efficiency. Finally, simulation experiments comparative analysis shows that the new method can improve the efficiency of data processing.
Key words: big data; preprocessing; history query
1 概述
隨著無紙化電腦辦公的不斷普及,越來越多的數(shù)據(jù)被個人、企業(yè)和機器所產(chǎn)生,以TB或PB級別保存于存儲中,數(shù)據(jù)量直線上升。傳統(tǒng)的數(shù)據(jù)處理主要是對數(shù)據(jù)庫的直接操作,隨著數(shù)據(jù)量的急劇增加,處理效率將急劇下降。與此同時,有效的數(shù)據(jù),正確的數(shù)據(jù)結果已成為企業(yè)競爭的核心因素之一。因此,所有這些對大數(shù)據(jù)的處理能力和效率提出了更高的要求。
為了更好的處理這些大數(shù)據(jù),許多機構與公司開發(fā)了相應的新技術和新架構,主流思想是基于并行編程框架,以并行處理來提高數(shù)據(jù)處理效率,如MapReduce[1]通過機器線性擴張線性增加并行計算能力,MapReduce-Merge在MapReduce基礎上增加數(shù)據(jù)合并,YARN解決并行共享槽瓶頸。此外也產(chǎn)生了其他的編程模型,如提高迭代計算能力的Twister[3]和Haloop[2],提高對圖計算的Pregel,但這些編程模型也是基于對MapReduce的改進,基礎依然是并行處理。
雖然針對大數(shù)據(jù)的并行處理,但處理TB級的大數(shù)據(jù),如統(tǒng)計分析,依然需要花費很長時間,消耗很大的機器性能,這對企業(yè)交互式數(shù)據(jù)操作,依舊很難滿足即時需求。針對這種情況,該文設計了一種基于大數(shù)據(jù)的數(shù)據(jù)處理方法,通過歷史處理結果和預處理結果為中間結果集,減少數(shù)據(jù)重復處理,提高數(shù)據(jù)處理效率,為大數(shù)據(jù)的即時處理提供一種新思路和方法。
2 基于大數(shù)據(jù)的數(shù)據(jù)處理框架
圖1是基于大數(shù)據(jù)的數(shù)據(jù)處理框架。該框架主要依據(jù)用戶的查詢請求,依據(jù)查詢條件首先在歷史查詢集中匹配是否有相同或部分相同的查詢,若有,確認歷史查詢集中的數(shù)據(jù)處理集是否都來自結果集,若是,直接返回結果,通過減少對數(shù)據(jù)的重復處理,從而減少時間消耗。
其中,歷史查詢集是對歷史上用戶某段時間數(shù)據(jù)查詢時數(shù)據(jù)預處理結果,其結果包含兩份分別存于預結果集和結果集。預結果集和結果集時間單位里的數(shù)據(jù)預處理結果,不過,預結果集表示有可能存在更新的最小時間單位數(shù)據(jù)預處理集合,而結果集表示不再變更的數(shù)據(jù)預處理集合,預處理結果粒度大小不一。工作流程如下所示:
1)用戶提交新的查詢請求S;
2)對查詢請求條件與歷史查詢集進行匹配,匹配結果有三種:
① 匹配,歷史曾經(jīng)有相同的查詢,直接返回數(shù)據(jù)預處理結果集合;
② 包含匹配,調(diào)用歷史結果集中的數(shù)據(jù)預處理結果集合,對超出的部分從預結果集和結果集中進行重新匹配;
③ 不匹配,直接在結果集和預結果集中進行匹配查詢,若是依然沒有匹配的結果,執(zhí)行新的查詢操作,結果放入預結果集或結果集。
3)若數(shù)據(jù)處理集有來自預結果集,對來自預結果集的數(shù)據(jù)處理進行更新,若預處理的結果變?yōu)椴辉僮兏D入結果集中。
4)對數(shù)據(jù)處理集合并處理,形成結果R,依據(jù)具體請求進行相關處理,將結果返回給用戶。
5)若是結果R不是完全匹配得出的結果,將結果R更新到歷史查詢集中。
3 基于大數(shù)據(jù)的數(shù)據(jù)處理框架關鍵技術
基于大數(shù)據(jù)的數(shù)據(jù)處理框架的關鍵技術有查詢請求與歷史查詢匹配方法、預結果集更新、轉入結果集方法。
3.1 查詢請求與歷史查詢匹配方法
數(shù)據(jù)預處理結果主要要素有時間、數(shù)據(jù)源,是基于時間單位的粒度式數(shù)據(jù)處理結果,如圖2所示,它為企業(yè)的數(shù)據(jù)統(tǒng)計分析奠定快速反應的基礎。
圖2 數(shù)據(jù)預處理結構
因此查詢請求與歷史查詢匹配以兩者為匹配要點。匹配算法為:
輸入:查詢請求Requst={Ts,Ds},歷史查詢集
輸出:預處理結果集合Result
算法基本思想:
1)找到與查詢請求數(shù)據(jù)源相同的數(shù)據(jù)庫表集合T,T=Ts;
2)查找該表集合T下包含處理時間或是相同時間的歷史查詢記錄,D={D=Ds or Ds ∈ D};
3)若是Ds不包含D,跳轉結果集R匹配算法;
4)若是D=Ds,從結果集S和預結果集U中得到相應的預處理結果Result={r1,u1|r1∈R,u1∈U},結束算法;
5)若是Ds ∈ D,重復步驟4);
6)同時,D=Ds-D,重復步驟3)。
3.2 預結果集更新、轉入結果集方法
數(shù)據(jù)預處理主要分為兩大類,一是不再變更,客觀存在的數(shù)據(jù)預處理,如幾年前的銷售數(shù)據(jù),其保存在結果集中,二是存在變更的數(shù)據(jù)預處理,如近期的銷售數(shù)據(jù),可能會存在更新等情況,此類數(shù)據(jù)預處理以最小時間單位形式放入預結果集中,但在一定的規(guī)則下,如時間限制、產(chǎn)品停用等可轉變?yōu)椴豢勺兏臄?shù)據(jù)預處理,轉入結果集。
假設是對當月的淘寶銷售數(shù)據(jù)預統(tǒng)計,因為當月的數(shù)據(jù)將會因為退貨、貨源不足等原因影響銷售數(shù)據(jù),故對當月的銷售數(shù)據(jù)預處理結果將會存于預結果集中,但淘寶的當月訂單狀態(tài)結束狀態(tài)時,更新包含該訂單銷售數(shù)據(jù)預處理集合,那么在對當月數(shù)據(jù)預處理后,其處理結果是不在變更的,將其轉入到結果集中,減少不必要的數(shù)據(jù)處理,并在一定程度上保證數(shù)據(jù)的準確性。
4 仿真實驗
4.1 實驗環(huán)境
以Windows Server 2003為實驗環(huán)境,Oracle 11g 為數(shù)據(jù)庫,以現(xiàn)有營銷系統(tǒng)的銷售數(shù)據(jù)為數(shù)據(jù)源,采用本文提出的方法對銷售數(shù)據(jù)按最小周期(5天)、月、季度、年的方式進行預處理。以月為預結果集轉入結果集的規(guī)則。
4.2 對比方法
本實驗將用現(xiàn)有的營銷系統(tǒng)和新的統(tǒng)計系統(tǒng)對比統(tǒng)計銷售數(shù)據(jù)所花費的時間和數(shù)據(jù)的準確性。具體設計以下比較方法。
1)最近一個周期某產(chǎn)品的銷售量統(tǒng)計對比。在一周期內(nèi)每日進行數(shù)據(jù)查詢,對比每次花費的時間和數(shù)據(jù)的準確性。
2)時間段某產(chǎn)品銷售量統(tǒng)計對比。進行多個時間段(周期,月,季度)數(shù)據(jù)查詢,對比每次花費的時間和數(shù)據(jù)的準確性。
4.3實驗結果分析
1) 最近一個周期某產(chǎn)品的銷售量統(tǒng)計對比
圖3 周期查詢消耗時間 圖4 周期查詢數(shù)據(jù)準確率
圖3和圖4表明兩個系統(tǒng)查詢消耗時間差不多,新系統(tǒng)只是略少于原系統(tǒng),但準確率一樣,都為100%。這是因為查詢的數(shù)據(jù)源是查詢當天產(chǎn)生的數(shù)據(jù),前幾天的數(shù)據(jù)進行預處理,結果存于預結果集中,每次都查詢都會進行前幾天的數(shù)據(jù)更新,消耗大部分查詢時間.但是因為數(shù)據(jù)實時更新,故兩個系統(tǒng)數(shù)據(jù)準確率是相同的。
2)時間段某產(chǎn)品銷售量統(tǒng)計對比
圖5 時間段查詢消耗時間 圖6 時間段查詢準確率
圖5和圖6表明兩系統(tǒng)在時間段產(chǎn)品銷售量查詢時間新系統(tǒng)遠小于原系統(tǒng),但在準確率上有一定的降低.這是因為新系統(tǒng)對一個月以前的數(shù)據(jù)進行了預處理,并保存在結果集中。查詢月以上周期的銷售量時,不用重新到數(shù)據(jù)庫中查詢,故時間大幅度減少.但因為現(xiàn)有數(shù)據(jù)庫操作是更新操作,若是訂單的更新是超過一個月后更新的話,變更數(shù)據(jù)會被忽略,屬異常個別情況。若采用銷售數(shù)據(jù)變更采用云數(shù)據(jù)庫等追加方式,則準確率上可得到解決。
5 總結
本文針對大數(shù)據(jù)處理效率低問題,提出了新的處理辦法。該方法的主要思想是利用預處理方法和歷史查詢結果作為中間結果集,通過對中間集的匹配減少重復處理時間,提高處理效率。仿真實驗對比分析表明新方法能夠一定程度上提高數(shù)據(jù)處理效率。為進一步提高數(shù)據(jù)處理能力,未來的工作還需改善數(shù)據(jù)準確率以及數(shù)據(jù)更新計算。
參考文獻:
[1] Dean J,Ghemawat S.MapReduce : Simplified data processing on large cluster[C]// Brewer E,Chen P, eds. Proc. Of the OSDI. California:USENIX Associasion,2004:137-150.
[2] Bu Y Y,Howe B.Balazinskska M,et al.HaLoop: Efficient iterative data processing on large clusters [J].PVLDB2010,2010,3(1/2):285-296.
[3] Ekanayake J,Li Hui,Zhang Bing-jing, et al. Twister: A Runtime for Iterative MapReduce[C] //The First International Workshop on MapReduce and its applications(MAPREDUCE10),2010:110-119.
[3] 楊藝,周元.基于用戶查詢意圖識別的Web搜索優(yōu)化模型[J].計算機科學,2012,39(1):264-267.
[4] 尤川川,張桂剛.一種基于大數(shù)據(jù)的有效搜索方法[J].計算機科學,2013,40(6):183-186.
[5] 郭建波.海量結構化大數(shù)據(jù)存儲檢索系統(tǒng)探討[J]. SOFTWARE,2013.34(2):95-96.
[6] 程學旗,王元卓.大數(shù)據(jù)計算的技術體系域引擎系統(tǒng)[J].高科技與產(chǎn)業(yè)化,2013(5).204:62-65.
[7] 李超.大數(shù)據(jù)存儲檢索分析與應用[J].云計算數(shù)據(jù)中心,2010(9).