王小紅
(宜春職業(yè)技術(shù)學(xué)院,江西 宜春 336000)
數(shù)據(jù)粒度能夠有效地描述數(shù)據(jù)的詳細(xì)程度,粒度越小,數(shù)據(jù)包含的信息越具體,對(duì)于獲取數(shù)據(jù)本質(zhì)與規(guī)律越有幫助[1]。細(xì)粒度云數(shù)據(jù)指的是各個(gè)方面信息都非常詳細(xì)具體的云數(shù)據(jù),具有多層次化與高效化的特點(diǎn)。與傳統(tǒng)意義上的云數(shù)據(jù)存在一定差異,細(xì)粒度云數(shù)據(jù)獲取的難度較高,需要經(jīng)過(guò)大量的訓(xùn)練與學(xué)習(xí)才能獲得。隨著數(shù)據(jù)量的快速增長(zhǎng),細(xì)粒度云數(shù)據(jù)中不可避免會(huì)存在各類重復(fù)數(shù)據(jù)。相似重復(fù)的數(shù)據(jù)一方面消耗了大量不必要的存儲(chǔ)空間與人力開(kāi)支,另一方面增大了云數(shù)據(jù)的管理難度,降低了云數(shù)據(jù)管理的效率與質(zhì)量[2]。
基于此,科學(xué)合理的細(xì)粒度云數(shù)據(jù)去重方法至關(guān)重要。當(dāng)前,傳統(tǒng)的云數(shù)據(jù)去重方法逐步成熟完善,在實(shí)際應(yīng)用過(guò)程中,重復(fù)數(shù)據(jù)去除效果較好。文獻(xiàn)[3]采用哈希算法聚類、監(jiān)督判別投影降維、代數(shù)簽名預(yù)估數(shù)據(jù)和最小哈希樹(shù)生成校驗(yàn)值等技術(shù)路徑,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)單信道數(shù)據(jù)的高效去重。文獻(xiàn)[4]采用基于廣義去重的跨用戶安全去重框架,通過(guò)將原始數(shù)據(jù)分解為基和偏移量,對(duì)基進(jìn)行跨用戶去重,并在云端對(duì)偏移量進(jìn)行去重。
然而,傳統(tǒng)的去重方法在細(xì)粒度云數(shù)據(jù)去重操作中仍然存在不足,主要體現(xiàn)在去重覆蓋范圍有限,不能從多個(gè)維度對(duì)細(xì)粒度云數(shù)據(jù)中重復(fù)的數(shù)據(jù)作出處理,去重質(zhì)量較低,實(shí)時(shí)性較差。針對(duì)上述問(wèn)題,本文在傳統(tǒng)數(shù)據(jù)去重方法的基礎(chǔ)上,開(kāi)展了細(xì)粒度云數(shù)據(jù)自適應(yīng)去重方法的深入研究。
本文設(shè)計(jì)的細(xì)粒度云數(shù)據(jù)自適應(yīng)去重方法中,首先,需要采用相似重復(fù)數(shù)據(jù)檢測(cè)方法,對(duì)細(xì)粒度云數(shù)據(jù)作出全方位的檢測(cè),判斷云數(shù)據(jù)集中是否存在相似重復(fù)數(shù)據(jù),為后續(xù)的數(shù)據(jù)自適應(yīng)去重奠定基礎(chǔ)。
通常情況下,重復(fù)的細(xì)粒度云數(shù)據(jù)包括兩種類型,分別為細(xì)粒度云數(shù)據(jù)完全重復(fù)與細(xì)粒度云數(shù)據(jù)相似重復(fù)[7]。本文對(duì)兩種重復(fù)類型的特征作出了分析:
(1)細(xì)粒度云數(shù)據(jù)完全重復(fù),指的是云數(shù)據(jù)標(biāo)記相同,標(biāo)記的屬性及元素內(nèi)容也相同的記錄。
(2)細(xì)粒度云數(shù)據(jù)相似重復(fù)。由于細(xì)粒度云數(shù)據(jù)的靈活性較強(qiáng),同一實(shí)體會(huì)有不同的表現(xiàn)形式,受到云數(shù)據(jù)格式差異、拼寫差異、完整性差異等因素影響,數(shù)據(jù)庫(kù)無(wú)法準(zhǔn)確地識(shí)別出數(shù)據(jù)部分屬性及元素內(nèi)容,即為細(xì)粒度云數(shù)據(jù)相似重復(fù)[8]。
綜合考慮兩種類型的重復(fù)細(xì)粒度云數(shù)據(jù)特征后,本文采用基于邊界距離的云數(shù)據(jù)字段匹配檢測(cè)算法。該算法是基于一系列字符串編輯操作而實(shí)現(xiàn)的,通過(guò)計(jì)算細(xì)粒度云數(shù)據(jù)字符串之間的邊界距離,來(lái)判斷字符串之間的相似重復(fù)性。
邊界距離是一種衡量字符串相似性的度量方法,它考慮了字符串中字符之間的位置關(guān)系。通過(guò)比較字符串的邊界距離,我們可以判斷字符串之間是否存在相似的重復(fù)數(shù)據(jù)。
通過(guò)采用基于邊界距離的云數(shù)據(jù)字段匹配檢測(cè)算法,本文能夠有效地發(fā)現(xiàn)并識(shí)別細(xì)粒度云數(shù)據(jù)中的相似重復(fù)數(shù)據(jù)。這種算法的應(yīng)用可以提高數(shù)據(jù)處理的準(zhǔn)確性和效率,并為后續(xù)的數(shù)據(jù)去重和優(yōu)化提供基礎(chǔ)[9]。本文設(shè)計(jì)的相似重復(fù)細(xì)粒度云數(shù)據(jù)檢測(cè)流程,如圖1所示。
圖1 相似重復(fù)細(xì)粒度云數(shù)據(jù)檢測(cè)流程
如圖1所示,首先,從海量數(shù)據(jù)源中提取云數(shù)據(jù),并根據(jù)云數(shù)據(jù)的結(jié)構(gòu)特征,設(shè)置關(guān)鍵字排序。設(shè)定dist(a,b)表示細(xì)粒度云數(shù)據(jù)字符串A與字符串B之間的邊界距離,其中,a、b均表示字符串A與字符串B的長(zhǎng)度。依據(jù)動(dòng)態(tài)規(guī)范思想,獲取細(xì)粒度云數(shù)據(jù)動(dòng)態(tài)規(guī)劃的狀態(tài)轉(zhuǎn)移方程式,如下:
通過(guò)細(xì)粒度云數(shù)據(jù)動(dòng)態(tài)規(guī)劃的狀態(tài)轉(zhuǎn)移方程式,獲取云數(shù)據(jù)字符串A與字符串B之間的邊界距離,此時(shí),dist(a,b)即為云數(shù)據(jù)字符串A與字符串B的重復(fù)相似度。當(dāng)云數(shù)據(jù)字符串重復(fù)相似度超過(guò)一定的值,則認(rèn)為這些細(xì)粒度云數(shù)據(jù)存在相似重復(fù)。根據(jù)相似度,判定細(xì)粒度云數(shù)據(jù)是否存在相似重復(fù),輸出檢測(cè)結(jié)果。
在上述相似重復(fù)細(xì)粒度云數(shù)據(jù)檢測(cè)完畢后,可以得知云數(shù)據(jù)是否存在相似重復(fù),并根據(jù)字符串相似度,判定云數(shù)據(jù)重復(fù)類型。接下來(lái),壓縮存在相似重復(fù)性質(zhì)的細(xì)粒度云數(shù)據(jù),提取云數(shù)據(jù)去重特征。
首先,設(shè)定Ya表示引用細(xì)粒度云數(shù)據(jù)塊;Yb表示相似細(xì)粒度云數(shù)據(jù)塊,利用差量壓縮方法,對(duì)上述輸出的相似重復(fù)數(shù)據(jù)進(jìn)行壓縮,壓縮過(guò)程表達(dá)式為:
其中,?表示差量編碼;△a,b表示細(xì)粒度云數(shù)據(jù)差量數(shù)據(jù)。通過(guò)該表達(dá)式,獲取細(xì)粒度云數(shù)據(jù)塊與相似細(xì)粒度云數(shù)據(jù)塊之間的差量數(shù)據(jù)。相似重復(fù)云數(shù)據(jù)壓縮完畢后,提取云數(shù)據(jù)的超級(jí)指紋,即去重超級(jí)特征值,能夠表示多個(gè)細(xì)粒度云數(shù)據(jù)的多個(gè)去重特征?;谠茢?shù)據(jù)特征指紋,進(jìn)行相似重復(fù)細(xì)粒度云數(shù)據(jù)的數(shù)據(jù)融合,融合后的特征即能夠代表一類相似重復(fù)云數(shù)據(jù)的去重特征,進(jìn)而實(shí)現(xiàn)細(xì)粒度云數(shù)據(jù)去重特征提取的目標(biāo)。
完成細(xì)粒度云數(shù)據(jù)去重特征提取后,能夠獲取各類相似重復(fù)云數(shù)據(jù)的去重特征。在此基礎(chǔ)上,采用重復(fù)數(shù)據(jù)刪除技術(shù),刪除細(xì)粒度云數(shù)據(jù)中的相似重復(fù)數(shù)據(jù)。本文采用的是重復(fù)數(shù)據(jù)刪除技術(shù)中的數(shù)據(jù)分塊去重技術(shù),其技術(shù)原理示意圖,如圖2所示。
圖2 重復(fù)數(shù)據(jù)分塊去重技術(shù)原理示意圖
如圖2所示,本文采用的技術(shù)能夠多維度地將相同數(shù)據(jù)塊指向唯一的實(shí)例,避免數(shù)據(jù)集內(nèi)存儲(chǔ)相同數(shù)據(jù),進(jìn)而節(jié)省存儲(chǔ)空間。
本文采用了一種基于細(xì)粒度云數(shù)據(jù)分塊去重的新方法,旨在解決云存儲(chǔ)系統(tǒng)中的數(shù)據(jù)冗余和存儲(chǔ)效率問(wèn)題。傳統(tǒng)的去重方法通常是以文件為單位進(jìn)行去重,而這種細(xì)粒度的分塊去重方法可以更精細(xì)地處理數(shù)據(jù),提高去重的準(zhǔn)確性和效率。
具體而言,本文首先對(duì)細(xì)粒度云數(shù)據(jù)備份流中的所有文件進(jìn)行分塊處理。通過(guò)將大文件劃分為更小的數(shù)據(jù)塊,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的精細(xì)管理和處理。接下來(lái),采用哈希算法計(jì)算每個(gè)數(shù)據(jù)塊的哈希指紋,并將其與之前提取到的超級(jí)指紋共同設(shè)置為該數(shù)據(jù)塊的標(biāo)識(shí)。哈希指紋是數(shù)據(jù)塊的唯一標(biāo)識(shí),可以用于后續(xù)的去重比對(duì)。
當(dāng)云存儲(chǔ)系統(tǒng)接收到每個(gè)數(shù)據(jù)塊時(shí),會(huì)將該數(shù)據(jù)塊的指紋與系統(tǒng)中已有的數(shù)據(jù)塊指紋進(jìn)行比對(duì)。如果數(shù)據(jù)塊指紋已經(jīng)存在于系統(tǒng)中,說(shuō)明接收到的數(shù)據(jù)塊是冗余的,即已經(jīng)存在相同的數(shù)據(jù)塊。為了避免存儲(chǔ)重復(fù)數(shù)據(jù),云存儲(chǔ)系統(tǒng)需要在網(wǎng)絡(luò)的兩個(gè)端點(diǎn),即發(fā)送端和接收端,消除冗余數(shù)據(jù)包,并對(duì)該數(shù)據(jù)包進(jìn)行編碼。通過(guò)編碼技術(shù),可以將冗余數(shù)據(jù)包轉(zhuǎn)換為校驗(yàn)信息,減少上傳到服務(wù)器端的數(shù)據(jù)傳輸量,提高云數(shù)據(jù)去重的效率和速度。
另一方面,如果數(shù)據(jù)塊指紋在云存儲(chǔ)系統(tǒng)中不存在,則存儲(chǔ)該數(shù)據(jù)塊,并及時(shí)更新系統(tǒng)的指紋庫(kù)。這樣就能保證云存儲(chǔ)系統(tǒng)中只保存唯一的數(shù)據(jù)塊,避免了冗余存儲(chǔ),節(jié)省了存儲(chǔ)空間。
綜上所述,本文所采用的細(xì)粒度云數(shù)據(jù)分塊去重方法能夠有效地解決云存儲(chǔ)系統(tǒng)中的數(shù)據(jù)冗余和存儲(chǔ)效率問(wèn)題。通過(guò)分塊處理、哈希指紋比對(duì)、冗余數(shù)據(jù)包消除和數(shù)據(jù)編碼等關(guān)鍵步驟,可以實(shí)現(xiàn)高效的云數(shù)據(jù)去重,提高存儲(chǔ)效率和數(shù)據(jù)處理速度。這種方法在大規(guī)模的云存儲(chǔ)系統(tǒng)中具有重要的應(yīng)用價(jià)值。
上述內(nèi)容,便是本文提出的細(xì)粒度云數(shù)據(jù)自適應(yīng)去重方法的全部設(shè)計(jì)流程。在提出的數(shù)據(jù)去重方法投入實(shí)際使用前,進(jìn)行了如下文所示的實(shí)驗(yàn)分析,檢驗(yàn)方法的可行性與去重效果,確認(rèn)整個(gè)去重過(guò)程中無(wú)異常問(wèn)題后,方可投入使用。
首先,對(duì)細(xì)粒度云數(shù)據(jù)自適應(yīng)去重實(shí)驗(yàn)的環(huán)境配置進(jìn)行設(shè)置,為實(shí)驗(yàn)的順利開(kāi)展奠定良好基礎(chǔ)。實(shí)驗(yàn)環(huán)境配置如表1所示。
表1 細(xì)粒度云數(shù)據(jù)自適應(yīng)去重實(shí)驗(yàn)環(huán)境配置
按照表1的配置,設(shè)置好實(shí)驗(yàn)所需環(huán)境。其次,為了提高此次去重實(shí)驗(yàn)測(cè)試的準(zhǔn)確性,選用重復(fù)度較大的細(xì)粒度云數(shù)據(jù)集,如表2所示。
表2 細(xì)粒度云數(shù)據(jù)集說(shuō)明
表2 中的Web 數(shù)據(jù)集中包含了100,000 個(gè)網(wǎng)頁(yè),其中包括不同主題的新聞、博客、論壇等頁(yè)面。每個(gè)網(wǎng)頁(yè)的URL、標(biāo)題和正文內(nèi)容都被提取存儲(chǔ)在數(shù)據(jù)集中。此外,還記錄了網(wǎng)頁(yè)之間的鏈接關(guān)系,如頁(yè)面A鏈接到頁(yè)面B等;同時(shí),還包含了網(wǎng)頁(yè)的HTML 結(jié)構(gòu)和標(biāo)簽信息,用于進(jìn)一步的分析和處理。Linux 源碼數(shù)據(jù)集中包含了Linux 操作系統(tǒng)的源代碼文件。每個(gè)源代碼文件包含了函數(shù)定義、變量定義以及相關(guān)的注釋。源代碼組織成目錄結(jié)構(gòu),每個(gè)目錄代表不同的子系統(tǒng)或功能模塊;此外,還包含了Makefile、README文件等輔助信息。
實(shí)驗(yàn)所需的細(xì)粒度云數(shù)據(jù)集準(zhǔn)備完畢后,按照上述本文提出的云數(shù)據(jù)自適應(yīng)去重方法步驟,對(duì)云數(shù)據(jù)集進(jìn)行去重處理,獲取細(xì)粒度云數(shù)據(jù)去重結(jié)果,進(jìn)而檢驗(yàn)方法的有效性與去重效果。
在此次實(shí)驗(yàn)中,本文特意引入了文獻(xiàn)[2]提出的基于最小哈希的數(shù)據(jù)去重方法、文獻(xiàn)[3]提出的基于Reed-Solomon 數(shù)據(jù)去重方法,分別作為對(duì)照組1與對(duì)照組2,將上述本文提出的細(xì)粒度云數(shù)據(jù)自適應(yīng)去重方法設(shè)置為實(shí)驗(yàn)組,分別對(duì)比三種方法應(yīng)用后云數(shù)據(jù)的去重結(jié)果。采用對(duì)比分析的實(shí)驗(yàn)方法,能夠更加直觀地得出此次云數(shù)據(jù)去重實(shí)驗(yàn)的結(jié)果,避免結(jié)果存在偶然性,增強(qiáng)說(shuō)服力。本次實(shí)驗(yàn)選取細(xì)粒度云數(shù)據(jù)的空間壓縮率作為此次實(shí)驗(yàn)的性能評(píng)價(jià)指標(biāo),云數(shù)據(jù)空間壓縮率越高,說(shuō)明細(xì)粒度云數(shù)據(jù)中重復(fù)數(shù)據(jù)自適應(yīng)去重效果越好,反之則說(shuō)明去重效果越差,不能有效消除數(shù)據(jù)集中的相似重復(fù)數(shù)據(jù)。
分別在云數(shù)據(jù)集1與云數(shù)據(jù)集2中,選取3個(gè)不同大小的細(xì)粒度云數(shù)據(jù)文件,將其編號(hào)為SJJ-101、SJJ-102、SJJ-103、SJJ-201、SJJ-202、SJJ-203。利用上述三種數(shù)據(jù)去重方法,對(duì)6個(gè)細(xì)粒度云數(shù)據(jù)文件進(jìn)行去重處理,通過(guò)MATLAB 軟件的模擬作用與SPSS 軟件的數(shù)據(jù)統(tǒng)計(jì)作用,模擬云數(shù)據(jù)去重全過(guò)程,并統(tǒng)計(jì)三種方法的空間壓縮率,繪制成如圖3所示的性能評(píng)價(jià)指標(biāo)對(duì)比圖。
圖3 實(shí)驗(yàn)性能評(píng)價(jià)指標(biāo)對(duì)比結(jié)果
通過(guò)圖3的性能評(píng)價(jià)指標(biāo)對(duì)比結(jié)果可以得知,三種云數(shù)據(jù)去重方法應(yīng)用后,性能指標(biāo)結(jié)果存在較大的差異。其中,本文提出的云數(shù)據(jù)自適應(yīng)去重方法應(yīng)用后,6 個(gè)不同大小的細(xì)粒度云數(shù)據(jù)文件的空間壓縮率始終高于對(duì)照組1與對(duì)照組2 提出的方法,空間壓縮率均達(dá)到了98%以上。由此對(duì)比結(jié)果不難看出,本文提出的細(xì)粒度云數(shù)據(jù)自適應(yīng)去重方法具有較高的可行性,能夠最大限度地去除細(xì)粒度云數(shù)據(jù)中的重復(fù)數(shù)據(jù),去重準(zhǔn)確性優(yōu)勢(shì)顯著,可以大規(guī)模投入使用。
某個(gè)算法在相同數(shù)據(jù)集規(guī)模下處理時(shí)間較短,即呈現(xiàn)較低的計(jì)算開(kāi)銷,相對(duì)于其他算法來(lái)說(shuō)更高效,具有更高的去重效率。根據(jù)給定的實(shí)驗(yàn)組別編號(hào)對(duì)不同組別的實(shí)驗(yàn)結(jié)果進(jìn)行了測(cè)量,并將結(jié)果匯總?cè)绫?所示。
表3 去重耗時(shí)對(duì)比/ms
通過(guò)對(duì)表3中的數(shù)據(jù)進(jìn)行分析,可以得到以下結(jié)論:實(shí)驗(yàn)組的平均去重耗時(shí)為254.8ms,對(duì)照組1 的平均去重耗時(shí)為485ms,對(duì)照組2 的平均去重耗時(shí)為492.5ms。由此可見(jiàn),實(shí)驗(yàn)組采用的細(xì)粒度云數(shù)據(jù)分塊去重方法相較于對(duì)照組1和對(duì)照組2的文件級(jí)別去重方法,在平均去重耗時(shí)上具有更好的性能表現(xiàn),進(jìn)一步說(shuō)明實(shí)驗(yàn)組的計(jì)算開(kāi)銷較小,可以有效提高去重效率。因此,根據(jù)實(shí)驗(yàn)結(jié)果的平均值分析,得出結(jié)論:實(shí)驗(yàn)組采用的細(xì)粒度云數(shù)據(jù)分塊去重方法相較于傳統(tǒng)的文件級(jí)別去重方法,在平均去重耗時(shí)上具有更好的性能表現(xiàn)。
存儲(chǔ)開(kāi)銷是一個(gè)關(guān)鍵指標(biāo),可以影響系統(tǒng)的性能和擴(kuò)展性。較低的存儲(chǔ)開(kāi)銷意味著在處理數(shù)據(jù)時(shí),所需的存儲(chǔ)空間較小,從而減少了存儲(chǔ)引擎的負(fù)載和磁盤IO操作,提高了系統(tǒng)的響應(yīng)速度和吞吐量。此外,較低的存儲(chǔ)開(kāi)銷也意味著系統(tǒng)具有更大的擴(kuò)展能力,能夠適應(yīng)更大規(guī)模的數(shù)據(jù)處理需求。為了進(jìn)一步驗(yàn)證本文提出的細(xì)粒度云數(shù)據(jù)自適應(yīng)去重方法的應(yīng)用性能,對(duì)比同一細(xì)粒度云數(shù)據(jù)文件下不同算法所需的存儲(chǔ)空間。如圖4所示。
圖4 存儲(chǔ)空間對(duì)比結(jié)果
通過(guò)圖4的存儲(chǔ)空間對(duì)比結(jié)果可知,三種云數(shù)據(jù)去重方法應(yīng)用后,對(duì)云數(shù)據(jù)進(jìn)行去重處理時(shí)所占用的存儲(chǔ)空間有所不同。其中,應(yīng)用本文提出的云數(shù)據(jù)自適應(yīng)去重方法后,對(duì)于不同云數(shù)據(jù)文件進(jìn)行去重處理時(shí),所占用的存儲(chǔ)空間低于4GB;對(duì)照組1和對(duì)照組2所占用的存儲(chǔ)空間均低于8GB,較實(shí)驗(yàn)組占用的存儲(chǔ)空間較大,表明本文提出的細(xì)粒度云數(shù)據(jù)自適應(yīng)去重方法具有較低的儲(chǔ)存開(kāi)銷,相對(duì)于其他算法來(lái)說(shuō)更高效。
在當(dāng)前云數(shù)據(jù)存儲(chǔ)能力指數(shù)級(jí)不斷提升的背景下,用戶對(duì)云數(shù)據(jù)私密性、安全性的重視程度大幅度提升。由于網(wǎng)絡(luò)信息安全系統(tǒng)長(zhǎng)期處于工作運(yùn)行狀態(tài),會(huì)實(shí)時(shí)產(chǎn)生大量的云數(shù)據(jù),其中存在較多的重復(fù)細(xì)粒度云數(shù)據(jù),占用存儲(chǔ)空間的同時(shí),降低了云數(shù)據(jù)傳輸、加密、解密的效率。為了改善這一問(wèn)題,本文提出了細(xì)粒度云數(shù)據(jù)自適應(yīng)去重方法的研究。通過(guò)本文的研究,有效地降低了細(xì)粒度云數(shù)據(jù)的重復(fù)率,且去重正確率較高,全方位滿足了網(wǎng)絡(luò)信息安全系統(tǒng)細(xì)粒度云數(shù)據(jù)去重實(shí)時(shí)性與準(zhǔn)確性的要求,具有良好的應(yīng)用前景。