郭詠科 毛宇光 向日鋒
摘要:在流式大數(shù)據(jù)系統(tǒng)測(cè)試過程中,測(cè)試數(shù)據(jù)集越真實(shí),得到的測(cè)試報(bào)告越可信。然而真實(shí)大量的流式數(shù)據(jù)并不容易獲取,因此需要一種方法能夠產(chǎn)生大量符合真實(shí)場(chǎng)景特征的數(shù)據(jù)。這些特征包括數(shù)據(jù)屬性相關(guān)性、數(shù)據(jù)時(shí)序相關(guān)性、數(shù)據(jù)流的流速變化等等。在流式大數(shù)據(jù)環(huán)境下,數(shù)據(jù)的時(shí)序相關(guān)性與流速變化尤為重要。本文提出了一種適用于流式大數(shù)據(jù)系統(tǒng)測(cè)試的數(shù)據(jù)生成方法,以真實(shí)場(chǎng)景的數(shù)據(jù)集作為種子數(shù)據(jù),對(duì)種子數(shù)據(jù)采用最大互信息系數(shù)描述數(shù)據(jù)屬性間的相關(guān)性,改進(jìn)了Prim算法對(duì)屬性列集合進(jìn)行分組,在盡量保證屬性列強(qiáng)相關(guān)的前提下提高生成效率,接著提出了一種時(shí)序模型選擇策略,保證生成的數(shù)據(jù)在時(shí)序上的相關(guān)性,提出了雙層滑動(dòng)窗口的方法控制流數(shù)據(jù)輸出速度。最后,本文比較了提出的方法與其他流數(shù)據(jù)生成方法的生成效率。
關(guān)鍵詞:流式大數(shù)據(jù)生成;非線性相關(guān)性;時(shí)序相關(guān)性;流速控制
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:In the process of streaming big data system testing,the more real test data sets,the more reliable the test report can be obtained.However,real data is not easy to obtain,so a method is needed to generate a large number of data with real scenario features.Thesefeatures include data attribute correlation,data temporal sequence correlation and the rates of streaming data.In the streaming big data environment,the data temporal sequence correlation and the rates of streaming dataare especially important.In this paper,we present amethod forstreaming big data generation,using real scenario streaming data as the seed data,using the maximum mutual information coefficient to describe the correlation between the data attributes,putting forward acprim algorithm to partition the attribute group,improve efficiency in the premise of ensuring that the attributes arestrong related.according to the different characteristics of each attribute group,using different temporal sequence model to ensure that the data generated hold temporal sequence correlation,a double sliding window method is proposed to control thedegree of parallelism and the output speed of the streaming data.Finally,this paper compares the proposed method with other streaming data generation methods for generating efficiency.
Key words:streaming data generation;nonlinear correlation;temporal sequence correlation;velocity control
1簡(jiǎn)介
流式大數(shù)據(jù)廣泛存在于社交網(wǎng)絡(luò)、金融服務(wù)等領(lǐng)域,越來(lái)越多的流式大數(shù)據(jù)處理系統(tǒng)應(yīng)運(yùn)而生,為了保證此類系統(tǒng)的性能滿足設(shè)計(jì)需求,需要對(duì)其進(jìn)行相應(yīng)的性能測(cè)試。Yahoo開發(fā)了云服務(wù)測(cè)試套件YCSB,用來(lái)對(duì)云服務(wù)進(jìn)行基礎(chǔ)測(cè)試,目標(biāo)是進(jìn)行云數(shù)據(jù)服務(wù)系統(tǒng)的性能比較[1];Ruirui Lu等人提出了測(cè)試套件StreamBench,描繪了流式系統(tǒng)的性能測(cè)試框架,比較全面地對(duì)流式大數(shù)據(jù)系統(tǒng)進(jìn)行了測(cè)評(píng)[2];詹劍鋒等人提出了大數(shù)據(jù)測(cè)試基準(zhǔn)BigDataBench,其基準(zhǔn)測(cè)試程序覆蓋了多個(gè)大數(shù)據(jù)應(yīng)用領(lǐng)域[3]。然而諸如此類的測(cè)試套件,重點(diǎn)關(guān)注的是負(fù)載的全面性,在輸入數(shù)據(jù)集的選擇問題上考慮得不夠全面。進(jìn)行流式大數(shù)據(jù)系統(tǒng)的測(cè)試,輸入到系統(tǒng)的數(shù)據(jù)與真實(shí)場(chǎng)景下的數(shù)據(jù)特征越吻合,得到的測(cè)試結(jié)果越準(zhǔn)確,因此需要一種能夠保持?jǐn)?shù)據(jù)真實(shí)特征的大數(shù)據(jù)仿真生成方法。
在流數(shù)據(jù)和流數(shù)據(jù)庫(kù)仿真生成方面近年來(lái)有很多豐碩成果,Eric等人提出了DBMS測(cè)試套件MyBenchmark以及數(shù)據(jù)生成工具[4],把一組查詢操作作為輸入,能夠生成數(shù)據(jù)庫(kù)實(shí)例,同時(shí)用戶還能控制生成負(fù)載的特征。由于保持了大量數(shù)據(jù)依賴、數(shù)據(jù)分布等內(nèi)層特征,數(shù)據(jù)生成的速度不是很高。Joseph等人提出了一種合成數(shù)據(jù)形式化的描述語(yǔ)言SDDL[5],能夠并行生成具有某些約束和簡(jiǎn)單用戶定義函數(shù)的數(shù)據(jù),但是沒有考慮到數(shù)據(jù)的分布特征,不能生成滿足例如高斯分布等復(fù)雜概率分布的數(shù)據(jù)。Kenneth等人將數(shù)據(jù)表的生成轉(zhuǎn)換成圖的遍歷過程[6],能夠保證比較好的屬性依賴和概率分布,由于重點(diǎn)保持屬性依賴,使得數(shù)據(jù)的并行化程度不高,在生成數(shù)據(jù)表規(guī)模比較龐大或者依賴關(guān)系比較復(fù)雜的時(shí)候生成速度比較慢。華東師范大學(xué)的顧伶等人提出了通用數(shù)據(jù)生成框架PSUG,使用標(biāo)準(zhǔn)均方關(guān)聯(lián)度量計(jì)算屬性間相關(guān)性,使用隱式狄利克雷模型模擬數(shù)據(jù)流前后的主題相關(guān)性,開發(fā)了數(shù)據(jù)生成工具Chronos,能夠生成滿足流數(shù)據(jù)庫(kù)測(cè)試套件的數(shù)據(jù)[7][8],但是Chronos使用的標(biāo)準(zhǔn)關(guān)聯(lián)度是一個(gè)線性的相關(guān)性度量指標(biāo),對(duì)于具有非線性關(guān)系的屬性關(guān)聯(lián)不能準(zhǔn)確地描述,同時(shí)對(duì)于不存在主題的純數(shù)字型數(shù)據(jù),該生成方法無(wú)法滿足生成的數(shù)據(jù)在時(shí)序上的相關(guān)性。流式大數(shù)據(jù)的屬性依賴關(guān)系以及其固有流式特征都與傳統(tǒng)的數(shù)據(jù)庫(kù)和流數(shù)據(jù)庫(kù)有所不同。錢宇華等人研究了大數(shù)據(jù)環(huán)境下的數(shù)據(jù)相關(guān)性度量指標(biāo)的優(yōu)缺點(diǎn)[9][10],同時(shí)指出在大數(shù)據(jù)環(huán)境下,數(shù)據(jù)之間的相關(guān)性一般都是非線性的。Reshef等人提出了最大互信息系數(shù),證明了該度量指標(biāo)對(duì)非線性相關(guān)性能進(jìn)行比較準(zhǔn)確的刻畫[11]。endprint
本文在此基礎(chǔ)上提出一種適用于流式大數(shù)據(jù)系統(tǒng)測(cè)試的數(shù)據(jù)生成方法,在盡可能保證數(shù)據(jù)屬性相關(guān)性的同時(shí),加入流式數(shù)據(jù)的時(shí)序性特征,同時(shí)還能控制流數(shù)據(jù)的流速。本文最后也進(jìn)行了效率方面的檢測(cè),證明了該數(shù)據(jù)生成方法的有效性。
本文的結(jié)構(gòu)如下:第2節(jié)介紹數(shù)據(jù)生成方法的整體框架,第3節(jié)介紹參數(shù)設(shè)置方法,第4節(jié)介紹相關(guān)性控制方法,第5節(jié)介紹流速控制方法,第6節(jié)介紹實(shí)驗(yàn)。
2框架結(jié)構(gòu)概述
本節(jié)對(duì)數(shù)據(jù)生成方法的框架進(jìn)行簡(jiǎn)要的描述,如圖1所示,整個(gè)框架分為3個(gè)部分:參數(shù)設(shè)置模塊、相關(guān)性控制模塊、流速控制模塊。
參數(shù)設(shè)置模塊以種子數(shù)據(jù)作為輸入,提取屬性列的信息,生成數(shù)據(jù)描述文件,定義參數(shù)對(duì)后續(xù)生成的數(shù)據(jù)的特征進(jìn)行校正,不同的參數(shù)組合可以代表不同的應(yīng)用場(chǎng)景下數(shù)據(jù)的不同特點(diǎn)。相關(guān)性控制模塊任務(wù)是計(jì)算數(shù)據(jù)屬性間的相關(guān)性系數(shù),對(duì)屬性集合進(jìn)行劃分,劃分后得到的屬性組擁有類似高內(nèi)聚低耦合的特征。提出時(shí)序模型選擇策略對(duì)于每個(gè)屬性組進(jìn)行時(shí)序相關(guān)性的分析,得出回歸方程用作數(shù)據(jù)生成。流速控制模塊定義內(nèi)層滑動(dòng)窗口保證并行生成的數(shù)據(jù)在整個(gè)時(shí)間序上的相關(guān)性,定義外層滑動(dòng)窗口控制數(shù)據(jù)流輸出速率。
3參數(shù)設(shè)置
本節(jié)介紹數(shù)據(jù)生成方法的參數(shù)設(shè)置。本文方法定義了四個(gè)參數(shù):最大相關(guān)性忽略系數(shù)c;時(shí)序相關(guān)回歸階數(shù)r;時(shí)間分段T;數(shù)據(jù)流速S。
最大相關(guān)性忽略系數(shù)c是在數(shù)據(jù)屬性組劃分階段,終止搜索下一個(gè)屬性所參考的變量。取值范圍在0.2~0.4,屬性相關(guān)性在0.2以下說(shuō)明屬性之間相關(guān)性極低,在0.2~0.4之間相關(guān)性較低。該參數(shù)越小,允許忽略的相關(guān)性越少,因此分解出的屬性組越少,并行化程度越低;相反,分解出的屬性組越多,并行化程度越高。對(duì)于僅僅需要進(jìn)行壓力或者負(fù)載測(cè)試的系統(tǒng)來(lái)說(shuō),該參數(shù)設(shè)置大一些,忽略數(shù)據(jù)屬性之間一些不必要的相關(guān)性;對(duì)于某些具備數(shù)據(jù)挖掘功能的系統(tǒng)來(lái)說(shuō),該參數(shù)應(yīng)設(shè)置小一些,盡量保存數(shù)據(jù)屬性之間的相關(guān)性,使得數(shù)據(jù)挖掘性能能夠得到展現(xiàn)。
時(shí)序相關(guān)回歸階數(shù)r是在進(jìn)行數(shù)據(jù)時(shí)序相關(guān)性分析階段,向前參考數(shù)據(jù)的個(gè)數(shù),取值范圍在2~4。該參數(shù)越小,時(shí)序相關(guān)性越弱,但回歸公式越簡(jiǎn)單,數(shù)據(jù)生成效率越高;相反,考慮的數(shù)據(jù)時(shí)序相關(guān)性越強(qiáng),回歸公式越復(fù)雜,數(shù)據(jù)生成效率越低。對(duì)于類似股票流數(shù)據(jù)的場(chǎng)景,該參數(shù)應(yīng)設(shè)置高一些,使得生成的數(shù)據(jù)與之前數(shù)據(jù)的關(guān)系盡可能精準(zhǔn)一些;而對(duì)于類似車載物聯(lián)網(wǎng)系統(tǒng)來(lái)說(shuō),其前后的流數(shù)據(jù)相關(guān)性不是特別重要,該參數(shù)可以設(shè)置低一點(diǎn)。
時(shí)間分段T描述的就是某一個(gè)周期下不同數(shù)據(jù)流速的段數(shù)以及時(shí)長(zhǎng),是一個(gè)自然數(shù)的集合,即T={t1,t2,t3……}。該參數(shù)元素個(gè)數(shù)越小,流速越平穩(wěn),數(shù)據(jù)流越穩(wěn)定;相反,流速變化越頻繁,數(shù)據(jù)流波動(dòng)越大。例如銀行系統(tǒng),每天早7點(diǎn)之前和晚7點(diǎn)之后,系統(tǒng)負(fù)載較小,早7點(diǎn)到11點(diǎn)和下午2點(diǎn)到7點(diǎn)為高峰,負(fù)載較大,則可以將整個(gè)數(shù)據(jù)流分為4段,即t1=12(晚7點(diǎn)到第二天早7點(diǎn));t2=4(早7點(diǎn)到早11點(diǎn));t2=3(早11點(diǎn)到下午2點(diǎn));t4=5(下午2點(diǎn)到下午7點(diǎn))。
數(shù)據(jù)流速S描述的是時(shí)間分段T上的數(shù)據(jù)流速,S同樣是一個(gè)自然數(shù)的集合,元素個(gè)數(shù)與T一致。2012年的新年新浪微博的單秒最大數(shù)據(jù)條數(shù)達(dá)到了4萬(wàn)條, 2016年11月11日,天貓購(gòu)物節(jié)支付寶的交易峰值也只有16萬(wàn)條數(shù)據(jù)/秒,根據(jù)互聯(lián)網(wǎng)用戶每年25%的增長(zhǎng)趨勢(shì),本文將其取值范圍設(shè)置在0~200000條數(shù)據(jù)/秒。S中元素的值越大,數(shù)據(jù)輸出得越快。假設(shè)s1代表晚上5點(diǎn)之前的流速,s2代表晚上7點(diǎn)之后的流速,則對(duì)于上述銀行系統(tǒng),朝九晚五的特點(diǎn)使得系統(tǒng)的數(shù)據(jù)流速在晚上7點(diǎn)之后明顯小于5點(diǎn)之前(s1s2);相反對(duì)于微博系統(tǒng),上班族下班,數(shù)據(jù)流速在晚上7點(diǎn)之后可能又遠(yuǎn)遠(yuǎn)大于晚上5點(diǎn)之前(s1s2)。
4相關(guān)性控制
本節(jié)介紹數(shù)據(jù)相關(guān)性控制方法,對(duì)于保證生成的數(shù)據(jù)符合真實(shí)數(shù)據(jù)特征具有重要作用。首先分析其兩兩之間的最大互信息相關(guān)系數(shù)(MIC),得到相關(guān)系數(shù)圖,接著改進(jìn)了Prim算法進(jìn)行屬性列集合的劃分,使得保持?jǐn)?shù)據(jù)屬性列強(qiáng)相關(guān)的同時(shí)增加并行化來(lái)增加數(shù)據(jù)生成效率,最后給出一種時(shí)序模型選擇策略,對(duì)不同特征的屬性列集合采取不同的時(shí)序模型進(jìn)行擬合,得到回歸方程或方程組用作后續(xù)數(shù)據(jù)生成。
41屬性相關(guān)性
屬性相關(guān)性是指擁有多個(gè)屬性的一批數(shù)據(jù),其屬性之間的關(guān)聯(lián)程度。在大數(shù)據(jù)相關(guān)分析中,MIC可以度量任何函數(shù)形式的相關(guān)性,具有通用性。同時(shí),如果兩組不同形式、擁有相同MIC取值的數(shù)據(jù),當(dāng)給它們同等程度的噪音,MIC的取值仍然保持相等。流式大數(shù)據(jù)環(huán)境下,對(duì)數(shù)據(jù)的生成速度有要求,生成算法計(jì)算的復(fù)雜度越低越好,同時(shí)大數(shù)據(jù)復(fù)雜多樣、噪聲數(shù)據(jù)很多,算法的魯棒性同樣重要。表1是MIC與其他相關(guān)性度量指標(biāo)的對(duì)比,可以看出MIC更加適合流式大數(shù)據(jù)的環(huán)境。
由于MIC具有對(duì)稱性,即MIC(A,B) = MIC(B,A),因此對(duì)于具有N個(gè)屬性的數(shù)據(jù)集,計(jì)算后能夠得到一個(gè)N個(gè)節(jié)點(diǎn)的帶權(quán)無(wú)向完全圖,圖中的邊的權(quán)值代表兩個(gè)屬性列之間的相關(guān)系數(shù)。當(dāng)兩個(gè)屬性列之間的相關(guān)性比較小時(shí),應(yīng)該將它們單獨(dú)生成,而相關(guān)性比較大的幾個(gè)屬性列必須作為整體一起生成,所以可以對(duì)屬性列相關(guān)系數(shù)圖進(jìn)行劃分,把相關(guān)性大的屬性列劃到同一組,以提高并行度,進(jìn)而提高數(shù)據(jù)生成的整體效率。
圖的最小生成樹算法以圖中連線權(quán)值為參考,生成一條包含所有節(jié)點(diǎn)的序列,由于本文進(jìn)行屬性列分組時(shí)也需要參考連線權(quán)值,所以可以通過加入終止條件的辦法,讓算法提前結(jié)束,獲得序列的一條子序列,子序列中包含的節(jié)點(diǎn)就被分為同組。普利姆算法(Prim算法)和克魯斯卡爾算法(Kruskal算法),是最基本的兩種圖最小生成樹算法,分別適用于稠密圖和稀疏圖。帶權(quán)無(wú)向完全圖屬于稠密圖,因此本文對(duì)Prim算法進(jìn)行改進(jìn),提出一種附加終止條件的Prim算法——cPrim算法劃分屬性列集合。endprint
cPrim算法思想:從任意一個(gè)頂點(diǎn)出發(fā),尋找與其相連的邊集合中權(quán)值最大的邊,如果該邊的權(quán)值仍然小于等于最大相關(guān)性忽略系數(shù)c,則直接將該節(jié)點(diǎn)單獨(dú)分為一組;如果不小于c,找出最大權(quán)值邊對(duì)應(yīng)的節(jié)點(diǎn),將該節(jié)點(diǎn)納入出發(fā)節(jié)點(diǎn)集合,再?gòu)某霭l(fā)節(jié)點(diǎn)集合出發(fā)尋找最大權(quán)值的邊,不斷循環(huán),直到所有節(jié)點(diǎn)被分成了若干組。假定最大相關(guān)性忽略系數(shù)c為0.2,下面以圖2為例,簡(jiǎn)單介紹算法步驟。
圖2(a)為劃分之前的關(guān)聯(lián)關(guān)系圖。隨機(jī)從一個(gè)節(jié)點(diǎn)出發(fā)(例如1號(hào)節(jié)點(diǎn)),與其相連的邊上的權(quán)值為0.1、0.1、0.2,均小于等于c,故直接將1號(hào)節(jié)點(diǎn)單獨(dú)分為一組,如圖2(b)所示。
再?gòu)氖O碌?,3,4號(hào)節(jié)點(diǎn)中隨機(jī)選取一個(gè)(例如3號(hào)節(jié)點(diǎn)),與其相連邊最大權(quán)值為0.5,大于c,那么將4號(hào)節(jié)點(diǎn)納入{3},如圖2(c)所示。
繼續(xù)尋找從3,4號(hào)節(jié)點(diǎn)出發(fā)的最大權(quán)值的邊,是2號(hào)與4號(hào)節(jié)點(diǎn)的連接邊,權(quán)值為0.3,大于0.2,將2號(hào)節(jié)點(diǎn)納入{3,4}。整個(gè)屬性集合被分成了2組:{1},{2,3,4},如圖2(d)所示。
假定的最大相關(guān)性忽略系數(shù)c為0.4,根據(jù)算法可以將屬性集合分為3組:{1},{2},{3,4}。
算法偽代碼:
42時(shí)序相關(guān)性
數(shù)據(jù)的時(shí)序相關(guān)性是指帶有時(shí)間戳的一組數(shù)據(jù),其前后數(shù)據(jù)屬性值的關(guān)聯(lián)關(guān)系。在流式大數(shù)據(jù)環(huán)境下,數(shù)據(jù)的時(shí)序性非常關(guān)鍵,缺少了時(shí)序的流式數(shù)據(jù)就喪失了數(shù)據(jù)挖掘特別是趨勢(shì)預(yù)測(cè)的意義。本小節(jié)提出一種時(shí)序模型選擇策略,針對(duì)不同特點(diǎn)的屬性組采用不同的時(shí)序模型進(jìn)行回歸方程的擬合。
屬性分組劃分完之后,首先將屬性組分為2類:?jiǎn)螌傩越M和多屬性組。
對(duì)于單屬性組,首先判斷其是否平穩(wěn),即序列是否圍繞某個(gè)固定值上下波動(dòng)或者序列的標(biāo)準(zhǔn)差是否保持不變。若平穩(wěn),則采用經(jīng)典的自回歸移動(dòng)平均(ARMA)模型進(jìn)行擬合,形式為:
Xt=Φ1Xt-1+…+ΦpXt-p+εt-…-θqεq(5)
其中Xt是需要估計(jì)的下一個(gè)值,Xt-1~Xt-p是回歸參考的屬性數(shù)據(jù),εt是當(dāng)前噪聲,εt-1~εt-p是回歸參考的噪聲數(shù)據(jù),Φ1~Φp以及θ1~θq為回歸參考數(shù)據(jù)的參數(shù)。
若非平穩(wěn),則采用自回歸滑動(dòng)平均(ARIMA)模型進(jìn)行擬合。ARIMA模型是針對(duì)非平穩(wěn)的單變量時(shí)間序列的,其基本思想是將一個(gè)非平穩(wěn)的時(shí)間序列通過一次或者多次差分轉(zhuǎn)換成平穩(wěn)序列再進(jìn)行擬合。一般來(lái)說(shuō),一階差分可以使有線性趨勢(shì)的序列變得平穩(wěn);二階差分可以使有曲線趨勢(shì)的序列變得平穩(wěn)。ARIMA模型形式為:
其中Δd是指經(jīng)過了d階差分,其他參數(shù)同ARMA模型的參數(shù)。
對(duì)于多屬性組,采用自向量回歸(VAR)模型進(jìn)行擬合。VAR模型針對(duì)的是多變量的時(shí)間序列,擬合之前需要觀察數(shù)據(jù)VAR模型根模散點(diǎn)是否均落在單位圓內(nèi)來(lái)的判斷序列是否平穩(wěn),若不平穩(wěn),首先差分成平穩(wěn)序列再進(jìn)行擬合,模型形式為:
Xt=Φ1Xt-1+…+ΦpXt-p+βYt+εt(7)
其中Xt~Xt-p為內(nèi)生變量向量,Yt是外生變量向量,改變量是指除了參與,εt是當(dāng)前噪聲向量,Φ1~Φp以及β為回歸參考數(shù)據(jù)的參數(shù)。對(duì)所有屬性組進(jìn)行擬合得到回歸方程,用作數(shù)據(jù)生成。
5流速控制
本節(jié)描述一種雙層滑動(dòng)窗口的方法,控制流數(shù)據(jù)流速?;瑒?dòng)窗口的概念最先出現(xiàn)在計(jì)算機(jī)網(wǎng)絡(luò)中,通訊雙方約定一個(gè)能夠接受的窗口大小,每次只發(fā)送和接收指定窗口大小的內(nèi)容,防止數(shù)據(jù)溢出。
為了保證流數(shù)據(jù)整體的時(shí)序性,必須在增加并行度時(shí)進(jìn)行控制,定義內(nèi)層滑動(dòng)窗口,窗口大小為時(shí)序相關(guān)回歸階數(shù)r,維護(hù)著最新的r個(gè)數(shù)據(jù),如圖3所示,有2個(gè)線程分別生成屬性a和屬性b,c。
當(dāng)屬性組需要增加并行化時(shí),不直接通過隨機(jī)數(shù)生成器生成種子,而是將窗口內(nèi)的r個(gè)數(shù)據(jù)當(dāng)作新線程的種子數(shù)據(jù),如圖4所示。因?yàn)榛貧w方程帶有一定的噪聲,因此在當(dāng)前窗口基礎(chǔ)上生成的后續(xù)數(shù)據(jù)和以這批數(shù)據(jù)作為新種子生成的數(shù)據(jù)不會(huì)完全一樣,同時(shí)保證了一個(gè)屬性組在整個(gè)時(shí)間序列上的相關(guān)性。
為了控制數(shù)據(jù)流流速,定義外層滑動(dòng)窗口,外層窗口大小為當(dāng)前時(shí)間段T上的流速S,輸出數(shù)據(jù)時(shí),以恒定的速率輸出窗口內(nèi)數(shù)據(jù),需要流速加大時(shí),就增大窗口大?。恍枰魉贉p小時(shí),就減小窗口大小。如圖5所示,T1階段流速為500條/秒,T2階段流速為5000條/秒。
6實(shí)驗(yàn)
本節(jié)介紹實(shí)驗(yàn),驗(yàn)證提出的方法生成的數(shù)據(jù)滿足預(yù)設(shè)的速率要求;數(shù)據(jù)屬性之間的相關(guān)性仍然保持;最終生成的數(shù)據(jù)與種子數(shù)據(jù)的分布基本一致。此外,實(shí)驗(yàn)還比較了本文方法與PSUG[7]和文獻(xiàn)[13]提出方法的數(shù)據(jù)生成效率。
61實(shí)驗(yàn)設(shè)置
實(shí)驗(yàn)配置為:4核酷睿i7處理器,主頻3.4 GHz,內(nèi)存16 GB,硬盤存儲(chǔ)1 TB。
初始參數(shù)設(shè)置:最大相關(guān)性忽略系數(shù)c為0.2,時(shí)序相關(guān)回歸階數(shù)r為2,運(yùn)行總時(shí)間30分鐘,分為3段,即t1=10、t2=10、tz=10,流速分別為500條/秒,10000條/秒,50000條/秒,即s1=500、s2=10000、sz=50000,3個(gè)時(shí)間段總計(jì)分別生成30W,600W,3000W條數(shù)據(jù)。實(shí)驗(yàn)的種子數(shù)據(jù)為10000條帶有時(shí)間戳的新浪微博數(shù)據(jù),經(jīng)過清洗之后每條數(shù)據(jù)包含“微博文本長(zhǎng)度”,“轉(zhuǎn)發(fā)數(shù)”,“評(píng)論數(shù)”,“點(diǎn)贊數(shù)”4個(gè)屬性。
62實(shí)驗(yàn)結(jié)果
圖7為生成的數(shù)據(jù)分布與種子數(shù)據(jù)分布的對(duì)比,其中生成數(shù)據(jù)的分布圖是由生成的數(shù)據(jù)隨機(jī)開始位置10000條連續(xù)的記錄產(chǎn)生的,由于無(wú)法確定提取的數(shù)據(jù)流處在整個(gè)數(shù)據(jù)流的位置,考察每個(gè)值出現(xiàn)的位置沒有意義,比較每個(gè)數(shù)據(jù)段上的數(shù)據(jù)量分布即可,可以看到生成的數(shù)據(jù)比較符合種子數(shù)據(jù)的數(shù)據(jù)分布,圖7只列出了“文本長(zhǎng)度”和“轉(zhuǎn)發(fā)數(shù)”的數(shù)據(jù)分布對(duì)比,“評(píng)論數(shù)”和“點(diǎn)贊數(shù)”與“轉(zhuǎn)發(fā)數(shù)”類似。endprint
圖8為本文方法與其他方法的效率對(duì)比,與PSUG相比,兩種方法在屬性相關(guān)性分析方法策略上有所不同,但數(shù)據(jù)生成的速率本文方法大約為PSUG的2倍;與不保證時(shí)序相關(guān)的流數(shù)據(jù)表生成方法相比,本文提出的方法加入了數(shù)據(jù)時(shí)序性的特征,生成速度大約下降了20%,速度損失可以接受。
7總結(jié)和展望
本文提出了一種適用于流式大數(shù)據(jù)系統(tǒng)測(cè)試的數(shù)據(jù)生成方法,采用了更加適用于流式大數(shù)據(jù)系統(tǒng)的非線性相關(guān)系數(shù)MIC來(lái)描述數(shù)據(jù)屬性之間的相關(guān)關(guān)系,改進(jìn)了Prim算法合理地劃分屬性集合;加入流式數(shù)據(jù)重要的時(shí)序性特征,盡可能保留了前后數(shù)據(jù)之間的相關(guān)性;提出了雙層滑動(dòng)窗口的概念,能更好地控制數(shù)據(jù)輸出的速率。
本文的不足之處在于:自動(dòng)化程度不高,不能運(yùn)行時(shí)動(dòng)態(tài)添加屬性;需要手動(dòng)定義變量;數(shù)據(jù)時(shí)序相關(guān)性分析的參數(shù)需要手動(dòng)賦值;整個(gè)數(shù)據(jù)流的流速變化比較突然,實(shí)際的應(yīng)用系統(tǒng)中的數(shù)據(jù)流速變化應(yīng)該比較平滑;不能支持非結(jié)構(gòu)化類型的數(shù)據(jù)生成。
在未來(lái)的工作中,我們希望能夠?qū)?shù)據(jù)生成的預(yù)處理過程進(jìn)一步自動(dòng)化,挖掘數(shù)據(jù)流的流速變化規(guī)律,支持生成更多數(shù)據(jù)類型的數(shù)據(jù)。
參考文獻(xiàn)
[1]COOPER B F,SILBERSTEIN A.Benchmarking Cloud Serving Systems with YCSB[C].international IEEE SOCC,2010.
[2]LU Ruirui,WU Gang,XIE Bin.StreamBench:Towards Benchmarking Modern Distributed Stream Computing Frameworks[C].IEEE/ACM 7th International Conference on Utility and Cloud Computing.2014.
[3]ZHAN Jianfeng,GAO Wanling,WANG Lei.Big Data Bench:An Opensource Big Data Benchmark Suite[J].Chinese Journal Of Computers,2016,39(1):196-211.
[4]LO Eric,CHENG Nick.Generating Databases for Query Workloads[J].VLDB.2010,3(1),848-855.
[5]HOAG J E,THOMPSON C W.A parallel generalpurpose synthetic data generator[C].SIGMOD.2007,36(1),19-24.
[6]HOUKJAR K,TORP K,WID R.Simple and realistic data generation[C].VLDB.2006,1243-1246.
[7]GU Ling,ZHOU Minqi.A Scalable Framework for Universal Data Generation in Parallel[C].6th TPCTC.2014.
[8]GU Ling,ZHOU Minqi.Chronos:An Elastic Parallel Framework for Stream Benchmark Generation and Simulation[C],IEEE 31st International Conference on Data Engineering.2015.
[9]LIANG Jiye,F(xiàn)ENG Chenjiao,SONG Peng.A Survey on Correlation Analysis of Big Data[J].ChineseJournal Of Computers,2016,39(1),1-18.
[10]QIAN Yuhua,CHENG Honghong,LIANG Xinyan.Review for Association Measures in Big Data[J].Journal of Data Acquisition and Processing,2015,30(6),1147-1159.
[11]RESHEF D N,RESHEF Y A,F(xiàn)INUCANE H K,et al.Grossman.Detecting Novel Associations in Large Data Sets[C].Science,2011,334(10),1518-1524.
[12]HU Bo,GUO Li.Practical statistical analysis method and technology[M].Beijing:Chemical Industry Press,2013.
[13]ARASU A,KAUSHIK R,LI Jian.Data Generation using Declarative Constraints[J].Acm Sigmod International Conference on Management of Data,2011,685-696.endprint