本發(fā)明涉及信息處理技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)處理方法及裝置。
背景技術(shù):重復(fù)數(shù)據(jù)刪除(De-duplication)是一種數(shù)據(jù)縮減技術(shù),旨在減少存儲(chǔ)系統(tǒng)中使用的存儲(chǔ)容量或減少數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸量。因此它廣泛應(yīng)用于備份或廣域網(wǎng)數(shù)據(jù)傳輸?shù)膱?chǎng)景。重復(fù)數(shù)據(jù)刪除技術(shù)一般會(huì)對(duì)輸入數(shù)據(jù)先進(jìn)行分塊,然后計(jì)算分塊所得每個(gè)數(shù)據(jù)塊的指紋(如哈希值),接著用該指紋在單一實(shí)例庫(kù)內(nèi)查找其對(duì)應(yīng)的數(shù)據(jù)塊是否為重復(fù)塊,若為重復(fù)塊,則用一個(gè)長(zhǎng)度短很多的索引數(shù)據(jù)(可以是該數(shù)據(jù)塊的指紋)替代該重復(fù)塊進(jìn)行存儲(chǔ),從而達(dá)到縮減數(shù)據(jù)的目的?,F(xiàn)有數(shù)據(jù)縮減技術(shù)中,一般是用一個(gè)索引數(shù)據(jù)對(duì)應(yīng)一個(gè)重復(fù)數(shù)據(jù)塊,請(qǐng)參見圖1,圖1為現(xiàn)有技術(shù)的索引數(shù)據(jù)與重復(fù)數(shù)據(jù)塊對(duì)應(yīng)關(guān)系示意圖。如附圖1所示,R1-Rn為索引數(shù)據(jù),D1-Dn為重復(fù)數(shù)據(jù)塊,現(xiàn)有技術(shù)中,一個(gè)索引數(shù)據(jù)與一個(gè)重復(fù)數(shù)據(jù)塊對(duì)應(yīng)。這種方法存在一種缺陷,即高的重復(fù)數(shù)據(jù)刪除率和高的數(shù)據(jù)縮減率相互矛盾,具體而言,高的重復(fù)數(shù)據(jù)刪除率要求找到盡可能多的重復(fù)數(shù)據(jù)塊,因此其需要分塊所得數(shù)據(jù)塊越小越好,而高的數(shù)據(jù)縮減率要求一個(gè)索引數(shù)據(jù)可以替代盡可能多的重復(fù)數(shù)據(jù)塊,因此其需要分塊所得數(shù)據(jù)塊越大越好,故在現(xiàn)有技術(shù)中,該兩種需求存在矛盾。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明主要解決的技術(shù)問題是提供一種數(shù)據(jù)處理方法及裝置,可在不增加數(shù)據(jù)塊大小的前提下使得一個(gè)索引數(shù)據(jù)可以替代盡可能多的重復(fù)數(shù)據(jù)塊,因此可同時(shí)滿足高的重復(fù)數(shù)據(jù)刪除率和高的數(shù)據(jù)縮減率的要求。第一方面提供一種數(shù)據(jù)處理方法,包括:將源數(shù)據(jù)分成多個(gè)數(shù)據(jù)塊;判斷多個(gè)數(shù)據(jù)塊中是否包括兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊,重復(fù)數(shù)據(jù)塊是指與實(shí)例庫(kù)中所存儲(chǔ)的實(shí)例相同的數(shù)據(jù)塊;如果是,并且實(shí)例庫(kù)中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例存儲(chǔ)的位置也是依次相鄰的,則利用一個(gè)索引數(shù)據(jù)替換依次相鄰的重復(fù)數(shù)據(jù)塊以生成目標(biāo)數(shù)據(jù)。結(jié)合第一方面的實(shí)現(xiàn)方式,在第一種可能的實(shí)現(xiàn)方式中,索引數(shù)據(jù)包括區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段,區(qū)域索引段表示各實(shí)例在實(shí)例庫(kù)中存儲(chǔ)的區(qū)域,偏移量索引段表示各實(shí)例中的第一個(gè)實(shí)例在區(qū)域中的位置偏移,長(zhǎng)度索引段表示各實(shí)例的總的數(shù)據(jù)長(zhǎng)度。第二方面提供一種數(shù)據(jù)處理方法,包括:讀取目標(biāo)數(shù)據(jù),目標(biāo)數(shù)據(jù)包括索引數(shù)據(jù),索引數(shù)據(jù)包括區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段,區(qū)域索引段表示各實(shí)例在實(shí)例庫(kù)中存儲(chǔ)的區(qū)域,偏移量索引段表示各實(shí)例中的第一個(gè)實(shí)例在區(qū)域中的位置偏移,長(zhǎng)度索引段表示各實(shí)例的總的數(shù)據(jù)長(zhǎng)度,各實(shí)例是指與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例;根據(jù)索引數(shù)據(jù)中的區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段獲取各實(shí)例;利用各實(shí)例替換索引數(shù)據(jù)以生成源數(shù)據(jù)。第三方面提供一種數(shù)據(jù)處理裝置,包括:實(shí)例庫(kù),用于存儲(chǔ)多個(gè)實(shí)例;分塊模塊,用于將源數(shù)據(jù)分成多個(gè)數(shù)據(jù)塊;處理模塊,用于判斷多個(gè)數(shù)據(jù)塊中是否包括兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊,重復(fù)數(shù)據(jù)塊是指與實(shí)例庫(kù)中所存儲(chǔ)的實(shí)例相同的數(shù)據(jù)塊;如果是,并且實(shí)例庫(kù)中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例存儲(chǔ)的位置也是依次相鄰的,則利用一個(gè)索引數(shù)據(jù)替換依次相鄰的重復(fù)數(shù)據(jù)塊以生成目標(biāo)數(shù)據(jù)。結(jié)合第三方面的實(shí)現(xiàn)方式,在第一種可能的實(shí)現(xiàn)方式中,索引數(shù)據(jù)包括區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段,區(qū)域索引段表示各實(shí)例在實(shí)例庫(kù)中的存儲(chǔ)的區(qū)域,偏移量索引段表示各實(shí)例中的第一個(gè)實(shí)例在區(qū)域中的位置偏移,長(zhǎng)度索引段用于表示各實(shí)例的總的數(shù)據(jù)長(zhǎng)度。第四方面提供一種數(shù)據(jù)處理裝置,包括:實(shí)例庫(kù),用于存儲(chǔ)多個(gè)實(shí)例;讀取模塊,用于讀取目標(biāo)數(shù)據(jù),目標(biāo)數(shù)據(jù)包括索引數(shù)據(jù),索引數(shù)據(jù)包括區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段,區(qū)域索引段表示各實(shí)例在實(shí)例庫(kù)中的存儲(chǔ)的區(qū)域,偏移量索引段表示各實(shí)例中的第一個(gè)實(shí)例在區(qū)域中的位置偏移,長(zhǎng)度索引段表示各實(shí)例的總的數(shù)據(jù)長(zhǎng)度,各實(shí)例是指與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例;查找模塊,用于根據(jù)索引數(shù)據(jù)中的區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段獲取各實(shí)例;替代模塊,用于利用各實(shí)例替換索引數(shù)據(jù)以生成源數(shù)據(jù)。區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明實(shí)施例的數(shù)據(jù)處理方法及裝置在判斷到多個(gè)數(shù)據(jù)塊中包括兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊后,在實(shí)例庫(kù)中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例存儲(chǔ)的位置也是依次相鄰的情況下利用一個(gè)索引數(shù)據(jù)替換依次相鄰的重復(fù)數(shù)據(jù)塊以生成目標(biāo)數(shù)據(jù),該方案可在不增加數(shù)據(jù)塊大小的前提下使得一個(gè)索引數(shù)據(jù)可以替代盡可能多的重復(fù)數(shù)據(jù)塊,因此可同時(shí)滿足高的重復(fù)數(shù)據(jù)刪除率和高的數(shù)據(jù)縮減率的要求。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)的索引數(shù)據(jù)與重復(fù)數(shù)據(jù)塊對(duì)應(yīng)關(guān)系示意圖;圖2是本發(fā)明第一實(shí)施例的數(shù)據(jù)處理方法的流程圖;圖3是本發(fā)明第一實(shí)施例的數(shù)據(jù)處理裝置的裝置結(jié)構(gòu)示意圖;圖4是本發(fā)明第一實(shí)施例的實(shí)例庫(kù)的數(shù)據(jù)結(jié)構(gòu)示意圖;圖5為本發(fā)明第一實(shí)施例的索引數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)示意圖;圖6是本發(fā)明第一實(shí)施例的數(shù)據(jù)處理方法應(yīng)用于源數(shù)據(jù)之后的數(shù)據(jù)結(jié)構(gòu)狀態(tài)圖;圖7是本發(fā)明第二實(shí)施例的數(shù)據(jù)處理方法的流程圖;圖8是本發(fā)明第二實(shí)施例的數(shù)據(jù)處理裝置的裝置結(jié)構(gòu)示意圖;圖9是本發(fā)明第二實(shí)施例的數(shù)據(jù)處理方法應(yīng)用于目標(biāo)數(shù)據(jù)之后的數(shù)據(jù)結(jié)構(gòu)狀態(tài)圖;圖10是本發(fā)明第三實(shí)施例的數(shù)據(jù)處理裝置的硬件結(jié)構(gòu)示意圖;圖11是本發(fā)明第四實(shí)施例的數(shù)據(jù)處理裝置的硬件結(jié)構(gòu)示意圖;圖12為本發(fā)明的數(shù)據(jù)處理方法在一個(gè)具體應(yīng)用場(chǎng)景中的流程圖。具體實(shí)施方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。首先請(qǐng)參見圖2,其中圖2是本發(fā)明第一實(shí)施例的數(shù)據(jù)處理方法的流程圖。如圖2所示,本發(fā)明的數(shù)據(jù)處理方法包括以下步驟:步驟101:將源數(shù)據(jù)分成多個(gè)數(shù)據(jù)塊。步驟102:判斷多個(gè)數(shù)據(jù)塊中是否包括兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊。如果判斷結(jié)果為是,執(zhí)行步驟103,如果判斷結(jié)果為否,執(zhí)行步驟104。其中,重復(fù)數(shù)據(jù)塊是指與實(shí)例庫(kù)中所存儲(chǔ)的實(shí)例相同的數(shù)據(jù)塊。步驟103:在實(shí)例庫(kù)中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例存儲(chǔ)的位置是否依次相鄰,時(shí)利用一個(gè)索引數(shù)據(jù)替換依次相鄰的重復(fù)數(shù)據(jù)塊以生成目標(biāo)數(shù)據(jù)。步驟104:利用一個(gè)索引數(shù)據(jù)替換一個(gè)重復(fù)數(shù)據(jù)塊以生成目標(biāo)數(shù)據(jù)。在本實(shí)施例中,在判斷到多個(gè)數(shù)據(jù)塊中包括兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊后,并不馬上利用一個(gè)索引數(shù)據(jù)替換一個(gè)重復(fù)數(shù)據(jù)塊,而是進(jìn)一步判斷在實(shí)例庫(kù)中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例存儲(chǔ)的位置是否也是依次相鄰的,如果是,則利用一個(gè)索引數(shù)據(jù)替換依次相鄰的重復(fù)數(shù)據(jù)塊以生成目標(biāo)數(shù)據(jù),該方案可在不增加數(shù)據(jù)塊大小的前提下使得一個(gè)索引數(shù)據(jù)可以替代盡可能多的重復(fù)數(shù)據(jù)塊,因此可同時(shí)滿足高的重復(fù)數(shù)據(jù)刪除率和高的數(shù)據(jù)縮減率的要求。并請(qǐng)參見圖3,圖3是本發(fā)明第一實(shí)施例的數(shù)據(jù)處理裝置的裝置結(jié)構(gòu)示意圖,如圖3所示,本發(fā)明的數(shù)據(jù)處理裝置包括實(shí)例庫(kù)201、分塊模塊202以及處理模塊203。其中:實(shí)例庫(kù)201用于存儲(chǔ)多個(gè)實(shí)例;分塊模塊202用于將源數(shù)據(jù)分成多個(gè)數(shù)據(jù)塊;處理模塊203用于判斷多個(gè)數(shù)據(jù)塊中是否包括兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊,并且實(shí)例庫(kù)中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例存儲(chǔ)的位置也是依次相鄰的,則利用一個(gè)索引數(shù)據(jù)替換依次相鄰的重復(fù)數(shù)據(jù)塊以生成目標(biāo)數(shù)據(jù)。其中,重復(fù)數(shù)據(jù)塊是指與實(shí)例庫(kù)中所存儲(chǔ)的實(shí)例相同的數(shù)據(jù)塊。而若處理模塊203判斷到多個(gè)數(shù)據(jù)塊中沒有包括兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊時(shí),則利用一個(gè)索引數(shù)據(jù)替換一個(gè)重復(fù)數(shù)據(jù)塊以生成目標(biāo)數(shù)據(jù)。以下請(qǐng)參見圖4,圖4是本發(fā)明第一實(shí)施例的實(shí)例庫(kù)的數(shù)據(jù)結(jié)構(gòu)示意圖,如圖4所示,實(shí)例庫(kù)包括區(qū)域1、2…n,每一區(qū)域包括元數(shù)據(jù)區(qū)段與數(shù)據(jù)段區(qū)段,舉例而言,區(qū)域1包括元數(shù)據(jù)區(qū)段11以及數(shù)據(jù)段區(qū)段12,元數(shù)據(jù)區(qū)段用于存儲(chǔ)指紋(如哈希值),數(shù)據(jù)段區(qū)段用于存儲(chǔ)實(shí)例,其中一個(gè)實(shí)例對(duì)應(yīng)于一個(gè)指紋。并請(qǐng)結(jié)合圖5進(jìn)行參考,圖5為本發(fā)明第一實(shí)施例的索引數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)示意圖,如圖3所示,基于圖4所示的實(shí)例庫(kù)的上述數(shù)據(jù)結(jié)構(gòu),本發(fā)明的索引數(shù)據(jù)可設(shè)置為包括區(qū)域索引段801、偏移量索引段802以及長(zhǎng)度索引段803,區(qū)域索引段801表示實(shí)例庫(kù)201中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例在實(shí)例庫(kù)201中的區(qū)域,偏移量索引段802表示各實(shí)例中的第一個(gè)實(shí)例在實(shí)例庫(kù)201的區(qū)域中的位置偏移,長(zhǎng)度索引段803用于表示各實(shí)例的總的數(shù)據(jù)長(zhǎng)度。通過索引數(shù)據(jù)的區(qū)域索引段801、偏移量索引段802以及長(zhǎng)度索引段803可找到實(shí)例庫(kù)201中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例,而索引數(shù)據(jù)本身的數(shù)據(jù)大小相對(duì)于其所替代的依次相鄰的重復(fù)數(shù)據(jù)塊而言很小,因此在分別將一個(gè)索引數(shù)據(jù)替代所有依次相鄰的重復(fù)數(shù)據(jù)塊之后,可以預(yù)見到,所得到的目標(biāo)數(shù)據(jù)比源數(shù)據(jù)的數(shù)據(jù)量大大減少,從而有效地提高了數(shù)據(jù)縮減率。以下請(qǐng)進(jìn)一步參見圖6,其中圖6是本發(fā)明第一實(shí)施例的數(shù)據(jù)處理方法應(yīng)用于源數(shù)據(jù)之后的數(shù)據(jù)結(jié)構(gòu)狀態(tài)圖。如圖6所示,源數(shù)據(jù)601分成多個(gè)數(shù)據(jù)塊SA、SB、SC、SD、SE、SF、SG、SH。判斷多個(gè)數(shù)據(jù)塊中是否包括兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊,如果判斷結(jié)果為是,這里假設(shè)數(shù)據(jù)塊SA、SB、SC、SD、SE、SF是相鄰的重復(fù)數(shù)據(jù)塊,但實(shí)例庫(kù)中與依次相鄰的重復(fù)數(shù)據(jù)塊SA、SB、SC、SD、SE、SF對(duì)應(yīng)的各實(shí)例存儲(chǔ)的位置不是依次相鄰的,而只有SA、SB、SC、SD、SE對(duì)應(yīng)的各實(shí)例在實(shí)例庫(kù)中存儲(chǔ)的位置是依次相鄰的,而SF對(duì)應(yīng)的實(shí)例在實(shí)例庫(kù)中存儲(chǔ)的位置與SE對(duì)應(yīng)的實(shí)例在實(shí)例庫(kù)中存儲(chǔ)的位置不相鄰,則利用一個(gè)索引數(shù)據(jù)R31替換依次相鄰的重復(fù)數(shù)據(jù)塊SA、SB、SC、SD、SE。另外,基于現(xiàn)有技術(shù),更利用一個(gè)索引數(shù)據(jù)R17替換重復(fù)數(shù)據(jù)塊SF,利用一個(gè)索引數(shù)據(jù)R16替換重復(fù)數(shù)據(jù)塊SH。最后,生成目標(biāo)數(shù)據(jù)604,其包括R31、R17、SG、R16。因此,本發(fā)明可通過判斷實(shí)例庫(kù)中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例存儲(chǔ)的位置是否依次相鄰來找到最長(zhǎng)匹配的兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊,從而實(shí)現(xiàn)更為高效的數(shù)據(jù)縮減。在本發(fā)明中,由于單個(gè)索引數(shù)據(jù)可以代替兩個(gè)或兩個(gè)以上重復(fù)數(shù)據(jù)塊,因此可提高重復(fù)數(shù)據(jù)刪除率。在應(yīng)用到廣域網(wǎng)優(yōu)化場(chǎng)景中時(shí),由于重復(fù)數(shù)據(jù)刪除率的提高,本發(fā)明更可減少網(wǎng)絡(luò)數(shù)據(jù)的傳輸。請(qǐng)參見圖7,圖7是本發(fā)明第二實(shí)施例的數(shù)據(jù)處理方法的流程圖,如圖7所示,本發(fā)明的數(shù)據(jù)處理方法包括以下步驟:步驟301:讀取目標(biāo)數(shù)據(jù),其中目標(biāo)數(shù)據(jù)包括索引數(shù)據(jù),索引數(shù)據(jù)包括如圖5所示的區(qū)域索引段801、偏移量索引段802以及長(zhǎng)度索引段803,區(qū)域索引段801表示實(shí)例庫(kù)中與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例在實(shí)例庫(kù)中的區(qū)域,偏移量索引段802表示各實(shí)例中的第一個(gè)實(shí)例在實(shí)例庫(kù)的區(qū)域中的位置偏移,長(zhǎng)度索引段803表示各實(shí)例的總的數(shù)據(jù)長(zhǎng)度。步驟302:判斷是否讀取到目標(biāo)數(shù)據(jù)中的索引數(shù)據(jù),如果判斷結(jié)果為是,執(zhí)行步驟303,如果判斷結(jié)構(gòu)為否,執(zhí)行步驟305。步驟303:根據(jù)索引數(shù)據(jù)中的區(qū)域索引段801、偏移量索引段802以及長(zhǎng)度索引段803獲取實(shí)例庫(kù)中與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例。步驟304:利用各實(shí)例替換索引數(shù)據(jù)以生成源數(shù)據(jù)。步驟305:對(duì)讀取到的數(shù)據(jù)不作處理。在本發(fā)明的第二實(shí)施例中,對(duì)第一實(shí)施例中得到的目標(biāo)數(shù)據(jù)進(jìn)行還原處理,根據(jù)索引數(shù)據(jù)中的區(qū)域索引段801、偏移量索引段802以及長(zhǎng)度索引段803獲取實(shí)例庫(kù)中與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例,并利用各實(shí)例替換索引數(shù)據(jù)以生成源數(shù)據(jù),從而實(shí)現(xiàn)了數(shù)據(jù)還原。并請(qǐng)參見圖8,圖8是本發(fā)明第二實(shí)施例的數(shù)據(jù)處理裝置的裝置結(jié)構(gòu)示意圖。如圖8所示,本發(fā)明第二實(shí)施例的數(shù)據(jù)處理裝置包括實(shí)例庫(kù)201、讀取模塊204、查找模塊205以及替代模塊206。其中:實(shí)例庫(kù)201用于存儲(chǔ)多個(gè)實(shí)例;讀取模塊204用于讀取目標(biāo)數(shù)據(jù),目標(biāo)數(shù)據(jù)包括索引數(shù)據(jù),索引數(shù)據(jù)包括如圖5所述的區(qū)域索引段801、偏移量索引段802以及長(zhǎng)度索引段803,區(qū)域索引段801表示實(shí)例庫(kù)201中與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例在實(shí)例庫(kù)201中存儲(chǔ)的區(qū)域,偏移量索引段802表示各實(shí)例中的第一個(gè)實(shí)例在區(qū)域中的位置偏移,長(zhǎng)度索引段803表示各實(shí)例的總的數(shù)據(jù)長(zhǎng)度;查找模塊205用于根據(jù)索引數(shù)據(jù)中的區(qū)域索引段801、偏移量索引段802以及長(zhǎng)度索引段803獲取實(shí)例庫(kù)201中與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例;替代模塊206用于利用各實(shí)例替換索引數(shù)據(jù)以生成源數(shù)據(jù)。以下請(qǐng)進(jìn)一步參見圖9,其中圖9是本發(fā)明第二實(shí)施例的數(shù)據(jù)處理方法應(yīng)用于目標(biāo)數(shù)據(jù)之后的數(shù)據(jù)結(jié)構(gòu)狀態(tài)圖。如圖9所示,目標(biāo)數(shù)據(jù)604包括R31、R17、SG、R16。在讀取到索引數(shù)據(jù)R31時(shí),根據(jù)索引數(shù)據(jù)R31中的區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段找到實(shí)例庫(kù)201中與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊SA、SB、SC、SD、SE對(duì)應(yīng)的各實(shí)例,并將各實(shí)例替換索引數(shù)據(jù)R31。在讀取到索引數(shù)據(jù)R1或R167時(shí),根據(jù)索引數(shù)據(jù)R17或R167獲取實(shí)例庫(kù)201中與重復(fù)數(shù)據(jù)塊SE或SH對(duì)應(yīng)的實(shí)例,并將對(duì)應(yīng)實(shí)例替換索引數(shù)據(jù)R1或R167。最后,生成源數(shù)據(jù)601。進(jìn)一步地,請(qǐng)參見圖10,圖10是本發(fā)明第三實(shí)施例的數(shù)據(jù)處理裝置的硬件結(jié)構(gòu)示意圖,如圖10所示,本發(fā)明第三實(shí)施例所揭示的數(shù)據(jù)處理裝置包括存儲(chǔ)器401、處理器402以及總線403,存儲(chǔ)器401、處理器402分別與總線403耦接以進(jìn)行數(shù)據(jù)交互,其中:存儲(chǔ)器401用于存儲(chǔ)實(shí)例庫(kù)和程序,實(shí)例庫(kù)中存儲(chǔ)有多個(gè)實(shí)例;該程序包括:將源數(shù)據(jù)分成多個(gè)數(shù)據(jù)塊;判斷多個(gè)數(shù)據(jù)塊中是否包括兩個(gè)或兩個(gè)以上依次相鄰的重復(fù)數(shù)據(jù)塊,重復(fù)數(shù)據(jù)塊是指與實(shí)例庫(kù)中所存儲(chǔ)的實(shí)例相同的數(shù)據(jù)塊;如果是,并且實(shí)例庫(kù)中與依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例存儲(chǔ)的位置也是依次相鄰的,則利用一個(gè)索引數(shù)據(jù)替換依次相鄰的重復(fù)數(shù)據(jù)塊以生成目標(biāo)數(shù)據(jù)。處理器402用于執(zhí)行上述程序。其中,所述的索引數(shù)據(jù)包括區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段,區(qū)域索引段表示各實(shí)例在實(shí)例庫(kù)中存儲(chǔ)的區(qū)域,偏移量索引段表示各實(shí)例中的第一個(gè)實(shí)例在區(qū)域中的位置偏移,長(zhǎng)度索引段用于表示各實(shí)例的總的數(shù)據(jù)長(zhǎng)度。因此,在對(duì)目標(biāo)數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)以獲取到源數(shù)據(jù)時(shí),由于本發(fā)明中一個(gè)索引數(shù)據(jù)可以替代兩個(gè)或兩個(gè)以上的重復(fù)數(shù)據(jù)塊,因此可以減少數(shù)據(jù)處理次數(shù),從而提高數(shù)據(jù)處理速度。以下請(qǐng)參見圖11,圖11是本發(fā)明第四實(shí)施例的數(shù)據(jù)處理裝置的硬件結(jié)構(gòu)示意圖,如圖11所示,本發(fā)明第四實(shí)施例所揭示的數(shù)據(jù)處理裝置包括存儲(chǔ)器501、處理器502以及總線503,存儲(chǔ)器501、處理器502分別與總線503耦接以進(jìn)行數(shù)據(jù)交互,其中:存儲(chǔ)器501用于存儲(chǔ)實(shí)例庫(kù)和程序,實(shí)例庫(kù)中存儲(chǔ)有多個(gè)實(shí)例。該程序包括:讀取目標(biāo)數(shù)據(jù),該目標(biāo)數(shù)據(jù)包括索引數(shù)據(jù),索引數(shù)據(jù)包括區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段,區(qū)域索引段表示各實(shí)例在實(shí)例庫(kù)中存儲(chǔ)的區(qū)域,偏移量索引段表示各實(shí)例中的第一個(gè)實(shí)例在實(shí)例庫(kù)的區(qū)域中的位置偏移,長(zhǎng)度索引段表示各實(shí)例的總的數(shù)據(jù)長(zhǎng)度;根據(jù)索引數(shù)據(jù)中的區(qū)域索引段、偏移量索引段以及長(zhǎng)度索引段獲取實(shí)例庫(kù)中與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例;利用各實(shí)例替換索引數(shù)據(jù)以生成源數(shù)據(jù)。其中,上述的各實(shí)例為實(shí)例庫(kù)中與源數(shù)據(jù)中依次相鄰的重復(fù)數(shù)據(jù)塊對(duì)應(yīng)的各實(shí)例。處理器502用于執(zhí)行上述程序。以下請(qǐng)參見圖12,圖12為本發(fā)明的數(shù)據(jù)處理方法在一個(gè)具體應(yīng)用場(chǎng)景中的流程圖。其中,在該應(yīng)用場(chǎng)景中,利用流程圖方式從另一個(gè)角度對(duì)本發(fā)明的數(shù)據(jù)處理方法的發(fā)明思想進(jìn)行說明,從而使得本領(lǐng)域技術(shù)人員可以進(jìn)一步清楚認(rèn)識(shí)到本發(fā)明的數(shù)據(jù)處理方法是如何應(yīng)用于實(shí)際中的。如圖12所示,該流程圖包括以下步驟:步驟901:接收源數(shù)據(jù)。步驟902:收到的源數(shù)據(jù)進(jìn)行分塊,得出M個(gè)數(shù)據(jù)塊。步驟903:設(shè)輔助變量k=1,j=0,其中k代表目前所處理的是第幾個(gè)數(shù)據(jù)塊,j代表發(fā)現(xiàn)重復(fù)數(shù)據(jù)塊的數(shù)量。步驟904:判斷k是否大于M,若k>M則認(rèn)為處理完所有數(shù)據(jù)塊,跳至步驟905,反之則執(zhí)行步驟906。步驟905:退出本流程。步驟906:在實(shí)例庫(kù)中檢索數(shù)據(jù)塊Dk。步驟907:判斷Dk是否為重復(fù)數(shù)據(jù)塊,若是,則執(zhí)行步驟910,若否,則執(zhí)行步驟908。步驟908:將Dk插入實(shí)例庫(kù)中。步驟909:將k進(jìn)行加1處理,以表示對(duì)Dk分塊處理完畢,從而返回步驟904,以對(duì)與其相鄰的數(shù)據(jù)塊進(jìn)行處理。步驟910:設(shè)實(shí)例庫(kù)中與重復(fù)數(shù)據(jù)塊Dk相同的實(shí)例為Ci。步驟911:令j=j+1,即j=0+1=1。步驟912:判斷Dk+j(即Dk+1,意為與Dk相鄰的數(shù)據(jù)塊)與實(shí)例庫(kù)中的實(shí)例Ci+j(即Ci+1)是否相同,若是,返回步驟911,繼續(xù)判斷Dk+j(即Dk+2,意為與Dk+1相鄰的數(shù)據(jù)塊)與實(shí)例庫(kù)中的實(shí)例Ci+j(即Ci+2)是否相同,若否,執(zhí)行步驟913。步驟913:用索引數(shù)據(jù)替代Dk到Dk+j-1之間所有數(shù)據(jù)塊。步驟914:設(shè)置k=k+j;j=0,并返回步驟904,將Dk視為新的數(shù)據(jù)塊進(jìn)行上述處理。因此,本發(fā)明的總的思想是發(fā)現(xiàn)一個(gè)重復(fù)數(shù)據(jù)塊后,并不立即用一個(gè)索引數(shù)據(jù)表示該重復(fù)數(shù)據(jù)塊,而是繼續(xù)將該數(shù)據(jù)塊之后的彼此相鄰的數(shù)據(jù)塊繼續(xù)和實(shí)例庫(kù)中對(duì)應(yīng)的重復(fù)數(shù)據(jù)塊之后的數(shù)據(jù)塊進(jìn)行比較,找到最長(zhǎng)的匹配之后,用一個(gè)索引數(shù)據(jù)替代相鄰的至少兩個(gè)重復(fù)數(shù)據(jù)塊。該方案可在不增加數(shù)據(jù)塊大小的前提下使得一個(gè)索引數(shù)據(jù)可以替代盡可能多的重復(fù)數(shù)據(jù)塊,因此可同時(shí)滿足高的重復(fù)數(shù)據(jù)刪除率和高的數(shù)據(jù)縮減率的要求。另外,在本申請(qǐng)所提供的幾個(gè)實(shí)施方式中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例實(shí)施方式僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例實(shí)施方式方案的目的。另外,在本申請(qǐng)各個(gè)實(shí)施例實(shí)施方式中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例實(shí)施方式所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccessMemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。