一種高效數(shù)據(jù)分析處理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及大數(shù)據(jù)處理,特別涉及一種高效數(shù)據(jù)分析處理方法。
【背景技術(shù)】
[0002] 云計(jì)算借助互聯(lián)網(wǎng)平臺(tái),提供廉價(jià)的分布式動(dòng)態(tài)可擴(kuò)展的計(jì)算能力。云計(jì)算可以 使實(shí)現(xiàn)物物相連、網(wǎng)網(wǎng)相通的理想效果。多種信息傳感設(shè)備在中相互通信,產(chǎn)生的數(shù)據(jù)是海 量的。因此如何生成的海量大數(shù)據(jù)中快速有效地提取出有用的信息是至關(guān)重要的。傳統(tǒng)的 數(shù)據(jù)處理方法存在的缺點(diǎn)就是在執(zhí)行過(guò)程中要多次掃描整個(gè)數(shù)據(jù)庫(kù),產(chǎn)生龐大的候選集, 造成時(shí)間和空間的浪費(fèi)。
【發(fā)明內(nèi)容】
[0003] 為解決上述現(xiàn)有技術(shù)所存在的問(wèn)題,本發(fā)明提出了一種高效數(shù)據(jù)分析處理方法, 包括:
[0004] 當(dāng)數(shù)據(jù)集發(fā)生更新時(shí),若數(shù)據(jù)量大于預(yù)定義閾值,則云計(jì)算平臺(tái)采用MapReduce 模型,將關(guān)聯(lián)規(guī)則的更新在多個(gè)分布式節(jié)點(diǎn)中并行化處理,即執(zhí)行基于云計(jì)算的關(guān)聯(lián)規(guī)則 更新,否則在單節(jié)點(diǎn)中執(zhí)行關(guān)聯(lián)規(guī)則的更新。
[0005] 優(yōu)選地,其中在基于Hadoop的平臺(tái)中執(zhí)行MapReduce操作包括如下步驟:
[0006] MapReduce庫(kù)將輸入的大數(shù)據(jù)文件分成若干獨(dú)立的數(shù)據(jù),并在不同的機(jī)器上進(jìn)行 程序數(shù)據(jù)的備份;主程序節(jié)點(diǎn)分配子事務(wù),并將子事務(wù)遞交給空閑的工作機(jī)節(jié)點(diǎn)中;被分 配的子事務(wù)的工作節(jié)點(diǎn)讀取輸入的的文件,從中解析出key/value鍵值對(duì),并調(diào)用用戶編 寫(xiě)的Map函數(shù)處理鍵值對(duì),并生成中間鍵值對(duì);分區(qū)函數(shù)將這些中間數(shù)據(jù)分成若干區(qū),將各 個(gè)區(qū)在磁盤(pán)中位置信息發(fā)送給主程序,然后轉(zhuǎn)發(fā)給Reduce子事務(wù)節(jié)點(diǎn);Reduce子事務(wù)節(jié) 點(diǎn)獲取由主程序轉(zhuǎn)發(fā)的子事務(wù)后,根據(jù)位置信息調(diào)用磁盤(pán)上中間數(shù)據(jù),并對(duì)這些中間按key 值進(jìn)行排序,相同key值進(jìn)行合并操作;Reduce子事務(wù)節(jié)點(diǎn)遍歷排序后的中間數(shù)據(jù),并將數(shù) 據(jù)傳遞給用戶定義的Reduce函數(shù),將其執(zhí)行結(jié)果輸出到最終的輸出文件中;當(dāng)所有Reduce 子事務(wù)完成后,主程序節(jié)點(diǎn)將所有數(shù)據(jù)返回給用戶程序,用戶程序合并數(shù)據(jù)并輸出最終數(shù) 據(jù)。
[0007] 優(yōu)選地,所述單節(jié)點(diǎn)執(zhí)行的關(guān)聯(lián)規(guī)則更新進(jìn)一步包括:
[0008] (1)獲取原數(shù)據(jù)庫(kù)TDB,項(xiàng)目集Lk,新增數(shù)據(jù)庫(kù)tdb,最小支持?jǐn)?shù)s,對(duì)所有 的X e Lk,掃描新增數(shù)據(jù)集tdb,得到X在TDB U tdb中的支持?jǐn)?shù)s (TDB U tdb),若 s (TDB U tdb) <s X (TDB+tdb),則將 X 從 Lk中進(jìn)行刪除;
[0009] (2)在tdb中查找所有的候選k項(xiàng)目集Ck,對(duì)所有的X e Ck,掃描tdb并計(jì)算每個(gè) 候選項(xiàng)目集的支持?jǐn)?shù),若支持?jǐn)?shù)小于s X tdb,則將X從Ck中去除,得到一個(gè)精簡(jiǎn)的候選項(xiàng)目 集的集合C k;
[0010] (3)掃描原始數(shù)據(jù)庫(kù)TDB,更新Ck中所有候選項(xiàng)目集的支持?jǐn)?shù),并發(fā)現(xiàn)TDB U tdb 中新的項(xiàng)目集,新的項(xiàng)目集與上述更新后的Lk共同組成新數(shù)據(jù)庫(kù)中的項(xiàng)目集Lk'
[0011] 優(yōu)選地,所述基于云計(jì)算的關(guān)聯(lián)規(guī)則更新進(jìn)一步包括:
[0012] 首先由主程序?qū)π略鰯?shù)據(jù)庫(kù)tdb進(jìn)行項(xiàng)目集的分析處理,得到tdb中所有的項(xiàng)目 集L (tdb),將原有的項(xiàng)目集L (TDB)與L (tdb)進(jìn)行對(duì)比,查找其公共部分并放入最終的項(xiàng)目 集L沖,剩余的項(xiàng)目集L(TDB)與L(tdb)記為Ck;然后進(jìn)行Map操作和Reduce操作,其中:
[0013] Map操作包括并行掃描原始數(shù)據(jù)庫(kù)與新增數(shù)據(jù)庫(kù),根據(jù)原有的項(xiàng)目集與CK,對(duì)數(shù)據(jù) 進(jìn)行格式化操作形成鍵值對(duì)<T num,Lk>,并將所有鍵值對(duì)作為中間數(shù)據(jù)傳遞給Reduce操作;
[0014] Reduce操作:掃描中間結(jié)果集,將中間鍵值對(duì)進(jìn)行升序排序,依次掃描數(shù)據(jù)庫(kù)并 判斷是否滿足條件X e Lk,若條件成立則刪除該鍵值對(duì),否則遍歷tdb,計(jì)算候選項(xiàng)目集在 tdb中的支持?jǐn)?shù),如果滿足條件s (TDB U tdb) <s X (TDB+tdb),則刪除該項(xiàng)目集;
[0015] 最后對(duì)TDB+tdb進(jìn)行遍歷,計(jì)算各個(gè)項(xiàng)目集的支持?jǐn)?shù),再判斷支持?jǐn)?shù)是否高于用 戶預(yù)設(shè)支持?jǐn)?shù)閾值,新數(shù)據(jù)庫(kù)中k項(xiàng)目集由原L k中剩下的項(xiàng)目集和新產(chǎn)生的項(xiàng)目集共同組 成。
[0016] 本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
[0017] 本發(fā)明的方法在基于云計(jì)算的數(shù)據(jù)分析處理中,能夠提高數(shù)據(jù)分析處理的執(zhí)行效 率,特別是在大數(shù)據(jù)集的情況下效果尤為明顯。
【附圖說(shuō)明】
[0018] 圖1是根據(jù)本發(fā)明實(shí)施例的高效數(shù)據(jù)分析處理方法的流程圖。
【具體實(shí)施方式】
[0019] 下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描 述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán) 利要求書(shū)限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié) 以便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無(wú)這些具體細(xì)節(jié)中 的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書(shū)實(shí)現(xiàn)本發(fā)明。
[0020] 本發(fā)明的一方面提供了一種高效數(shù)據(jù)分析處理方法。圖1是根據(jù)本發(fā)明實(shí)施例 的高效數(shù)據(jù)分析處理方法流程圖?;谠朴?jì)算的數(shù)據(jù)分析處理系統(tǒng)由數(shù)據(jù)存儲(chǔ)模塊、數(shù)據(jù) 分析模塊和事務(wù)處理模塊構(gòu)成,本發(fā)明使用Hadoop平臺(tái)作為計(jì)算環(huán)境,開(kāi)發(fā)工具使用的是 Hadoop自帶的MapReduce插件。MapReduce是一種可以對(duì)大數(shù)據(jù)進(jìn)行并行計(jì)算處理的分布 式編程模型。對(duì)數(shù)據(jù)的操作主要分為兩步:Map和Reduce,Map操作是對(duì)輸入的形如(key, value)的鍵值對(duì)進(jìn)行指定的操作,生成一組中間鍵值對(duì)。Reduce操作就是對(duì)Map操作輸出 的中間鍵值對(duì)進(jìn)行規(guī)約合并。
[0021] 本發(fā)明在云計(jì)算平臺(tái)上對(duì)傳統(tǒng)關(guān)聯(lián)規(guī)則生成方法進(jìn)行改進(jìn),首先通過(guò)迭代,查查 找數(shù)據(jù)庫(kù)中所有支持?jǐn)?shù)不低于用戶所設(shè)定閾值的項(xiàng)目集,然后利用檢索得到的項(xiàng)目集來(lái)構(gòu) 造可以滿足最小置信度的規(guī)則。做相應(yīng)改進(jìn)之后的關(guān)聯(lián)規(guī)則生成方法要生成所有的項(xiàng)目 集,只要對(duì)事務(wù)數(shù)據(jù)庫(kù)進(jìn)行一遍掃描就可以完成。利用云計(jì)算的分布式并行計(jì)算的屬性,對(duì) 改進(jìn)的關(guān)聯(lián)規(guī)則生成方法進(jìn)行MapReduce處理,移植到云計(jì)算平臺(tái),使其能夠應(yīng)用于基于 云計(jì)算的數(shù)據(jù)分析處理。
[0022] 本發(fā)明優(yōu)選的關(guān)聯(lián)規(guī)則生成過(guò)程包括:
[0023] (1)為了獲得較好的負(fù)載均衡,以16Mb大小的數(shù)據(jù)集為一個(gè)單位進(jìn)行分配,將事 務(wù)數(shù)據(jù)庫(kù)D水平均勻地劃分成η個(gè)子集,將其發(fā)送到m個(gè)工作節(jié)點(diǎn)。
[0024] (2)候選項(xiàng)目集X的支持?jǐn)?shù)的累計(jì)值記為cs(X),設(shè)定每個(gè)Cs(X)的初始值均為1, 每個(gè)工作節(jié)點(diǎn)掃描各自分配到的子集,產(chǎn)生一個(gè)包含候選1項(xiàng)目集一直到候選K