本發(fā)明涉及計算機技術領域,尤其涉及一種數(shù)據(jù)壓縮方法及裝置。
背景技術:隨著信息化社會的飛速發(fā)展,需要存儲或傳輸?shù)臄?shù)據(jù)呈指數(shù)級增長,數(shù)據(jù)占用的空間急劇膨脹,但是用于數(shù)據(jù)存儲的容量空間與用于數(shù)據(jù)傳輸?shù)木W(wǎng)絡帶寬卻受限于存儲系統(tǒng)和網(wǎng)絡設備高昂的架設、管理以及維護成本而難以與當今龐大的數(shù)據(jù)量相匹配。在數(shù)據(jù)存儲或網(wǎng)絡傳輸過程中存在大量的重復數(shù)據(jù)。為了緩解數(shù)據(jù)量飛快增長與硬件設施更新緩慢之間的矛盾,可采用數(shù)據(jù)去重(DataDeduplication,簡稱DD)壓縮技術對數(shù)據(jù)進行壓縮處理。有別于視頻、音頻、圖像以及其它通用的數(shù)據(jù)壓縮技術,DD壓縮技術不僅關注數(shù)據(jù)對象內(nèi)部數(shù)據(jù)的重復,還關注數(shù)據(jù)對象之間數(shù)據(jù)的重復。其處理流程如下:預先將數(shù)據(jù)對象切割成片,并建立數(shù)據(jù)分片及其特征索引庫。當相應的數(shù)據(jù)分片再次出現(xiàn)時,使用較短的分片索引代替較長的分片數(shù)據(jù),從而實現(xiàn)存儲或傳輸?shù)臄?shù)據(jù)壓縮,達到節(jié)省存儲空間或提升傳輸帶寬利用率的效果。其中,數(shù)據(jù)壓縮比是壓縮效果的重要評估標準之一,具體表示為原始數(shù)據(jù)與壓縮數(shù)據(jù)占用字節(jié)數(shù)的比值。更大的數(shù)據(jù)壓縮比,意味著更高的資源利用率、更少的硬件部署以及更低的設備運營和維護成本。因此,在不以過分犧牲壓縮數(shù)據(jù)可恢復性和數(shù)據(jù)處理性能為代價的前提下,極限的數(shù)據(jù)壓縮比一直是業(yè)界追求的目標。DD壓縮技術一般基于內(nèi)容對數(shù)據(jù)進行分片,在分片方法及其參數(shù)選定之后,其數(shù)據(jù)壓縮比,即數(shù)據(jù)分片與分片索引平均占用字節(jié)數(shù)的比值,基本固定?,F(xiàn)有技術中,提供了一種采用合并數(shù)據(jù)分片來提高數(shù)據(jù)壓縮比的方法。通過統(tǒng)計分析,將出現(xiàn)頻率較高的數(shù)據(jù)分片序列合并成超級分片,并為之建立對應的超級分片索引,從而取代零散的數(shù)據(jù)分片及其分片索引。這樣相當于間接放大了數(shù)據(jù)壓縮比的分子部分,進而實現(xiàn)DD壓縮效果的提升。但是該方法對數(shù)據(jù)變化的適用性較差,一旦超級分片對應的原始數(shù)據(jù)發(fā)生變化,超級分片將失效,不能作為數(shù)據(jù)去重的參考以進行數(shù)據(jù)壓縮。超級分片合并的數(shù)據(jù)分片越多,其應對數(shù)據(jù)變化的能力就越差。從而導致DD壓縮效果惡化,存儲資源將因超級分片失效而浪費,提升了成本;此外由于增加了超級分片的構(gòu)建及對應超級分片索引的計算,數(shù)據(jù)處理性能較低。現(xiàn)有技術中,還提供了一種采用合并分片索引來提高數(shù)據(jù)壓縮比的方法。通過統(tǒng)計分析,將出現(xiàn)頻率較高的分片索引序列合并成超級索引,從而取代零散的分片索引。這樣相當于間接縮小了數(shù)據(jù)壓縮比的分母部分,進而實現(xiàn)DD壓縮效果的提升。但是該方法同樣面臨超級索引對應的原始數(shù)據(jù)發(fā)生變化導致超級索引失效而帶來的壓縮效果差、存儲資源浪費、成本高的缺點,同時因為增加了超級索引的構(gòu)建且在數(shù)據(jù)恢復過程中需要對分片索引作二次檢索,數(shù)據(jù)處理性能同樣較低。
技術實現(xiàn)要素:有鑒于此,本發(fā)明實施例提供了一種數(shù)據(jù)壓縮方法及裝置,以解決現(xiàn)有技術中由于原始數(shù)據(jù)發(fā)生變化而帶來的壓縮效果差、存儲資源浪費和成本高的問題。本發(fā)明實施例第一方面提供一種數(shù)據(jù)壓縮方法,可包括:依次計算數(shù)據(jù)分片序列中數(shù)據(jù)分片的分片索引,形成分片索引序列,為所述分片索引擴充后向索引描述符,其中,取自同一數(shù)據(jù)對象的分片索引存在數(shù)據(jù)相關性,所述后向索引描述符用于標識與所述分片索引存在數(shù)據(jù)相關性的后一個分片索引;判斷已有的分片索引庫中是否存在所述分片索引;若不存在,則根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列;若存在,則進一步判斷所述分片索引序列中是否存在所述分片索引的參考索引,其中,所述參考索引為已建立的分片索引參考序列中所述分片索引的前一個分片索引;若存在所述參考索引,則根據(jù)所述分片索引相對于所述參考索引的位移量,采用相對索引表示所述分片索引,否則不改變所述分片索引的表示方式??蛇x的,根據(jù)所述分片索引相對于所述參考索引的位移量,采用相對索引表示所述分片索引,包括:將所述參考索引的位置作為起始點,對所述分片索引序列進行后向遍歷,檢測所述分片索引的位置;每向后遍歷1個分片索引,所述位移量增加1,若位移量增加至n時檢測到所述分片索引,則將所述分片索引采用相對索引n表示,其中,n為大于1的自然數(shù)。可選的,在采用相對索引表示所述分片索引之前,還包括:判斷所述分片索引序列中是否存在所述已建立的分片索引參考序列中的連續(xù)分片索引,其中,所述連續(xù)分片索引中各個相鄰分片索引的位移量為1;若存在,則根據(jù)所述連續(xù)分片索引中分片索引的數(shù)目m,將第一個分片索引作為后續(xù)m-1個分片索引的參考索引,采用連續(xù)索引m-1表示所述后續(xù)m-1個分片索引,其中,m為大于2的自然數(shù);若不存在,則采用相對索引表示所述分片索引;其中,配置至少一個比特位用于區(qū)別所述相對索引與所述連續(xù)索引??蛇x的,所述后向索引描述符包括指針或編號??蛇x的,根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列,包括:判斷是否存在與所述分片索引存在數(shù)據(jù)相關性的分片索引參考序列;若存在,則將所述分片索引插入所述分片索引參考序列并更新所述分片索引參考序列;否則根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成新的分片索引參考序列。本發(fā)明實施例第二方面提供一種數(shù)據(jù)壓縮裝置,可包括:計算擴充單元,用于依次計算數(shù)據(jù)分片序列中數(shù)據(jù)分片的分片索引,形成分片索引序列,為所述分片索引擴充后向索引描述符,其中,取自同一數(shù)據(jù)對象的分片索引存在數(shù)據(jù)相關性,所述后向索引描述符用于標識與所述分片索引存在數(shù)據(jù)相關性的后一個分片索引;第一判斷單元,用于判斷已有的分片索引庫中是否存在所述分片索引;序列構(gòu)建單元,用于當所述第一判斷單元判定已有的分片索引庫中不存在所述分片索引時,根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列;第二判斷單元,用于當所述第一判斷單元判定已有的分片索引庫中存在所述分片索引時,進一步判斷所述分片索引序列中是否存在所述分片索引的參考索引,其中,所述參考索引為已建立的分片索引參考序列中所述分片索引的前一個分片索引;索引表示單元,用于若存在所述參考索引,則根據(jù)所述分片索引相對于所述參考索引的位移量,采用相對索引表示所述分片索引,否則不改變所述分片索引的表示方式。可選的,所述索引表示單元進一步用于:將所述參考索引的位置作為起始點,對所述分片索引序列進行后向遍歷,檢測所述分片索引的位置;每向后遍歷1個分片索引,所述位移量增加1,若位移量增加至n時檢測到所述分片索引,則將所述分片索引采用相對索引n表示,其中n為大于1的自然數(shù)??蛇x的,在采用相對索引表示所述分片索引之前,所述索引表示單元還用于:判斷所述分片索引序列中是否存在所述已建立的分片索引參考序列中的連續(xù)分片索引,其中,所述連續(xù)分片索引中各個相鄰分片索引的位移量為1;若存在,則根據(jù)所述連續(xù)分片索引中分片索引的數(shù)目m,將第一個分片索引作為后續(xù)m-1個分片索引的參考索引,采用連續(xù)索引m-1表示所述后續(xù)m-1個分片索引,其中,m為大于2的自然數(shù);若不存在,則采用相對索引表示所述分片索引;配置至少一個比特位用于區(qū)別所述相對索引與所述連續(xù)索引??蛇x的,所述裝置還包括:第三判斷單元,用于當所述第一判斷單元判定已有的分片索引庫中不存在所述分片索引時,進一步判斷是否存在與所述分片索引存在數(shù)據(jù)相關性的分片索引參考序列;若存在,則指示所述序列構(gòu)建單元將所述分片索引插入所述分片索引參考序列并更新所述分片索引參考序列;否則指示所述序列構(gòu)建單元根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成新的分片索引參考序列。本發(fā)明實施例第三方面提供一種數(shù)據(jù)壓縮裝置,可包括:處理器及與所述處理器相配合的存儲器;所述存儲器用于存儲所述處理器執(zhí)行的程序及數(shù)據(jù)壓縮過程中產(chǎn)生的各種數(shù)據(jù)和索引;所述處理器用于依次計算數(shù)據(jù)分片序列中數(shù)據(jù)分片的分片索引,形成分片索引序列,為所述分片索引擴充后向索引描述符,其中,取自同一數(shù)據(jù)對象的分片索引存在數(shù)據(jù)相關性,所述后向索引描述符用于標識與所述分片索引存在數(shù)據(jù)相關性的后一個分片索引;判斷已有的分片索引庫中是否存在所述分片索引;若不存在,則根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列;若存在,則進一步判斷所述分片索引序列中是否存在所述分片索引的參考索引,其中,所述參考索引為已建立的分片索引參考序列中所述分片索引的前一個分片索引;若存在所述參考索引,則根據(jù)所述分片索引相對于所述參考索引的位移量,采用相對索引表示所述分片索引,否則不改變所述分片索引的表示方式。可選的,所述處理器進一步用于:將所述參考索引的位置作為起始點,對所述分片索引序列進行后向遍歷,檢測所述分片索引的位置;每向后遍歷1個分片索引,所述位移量增加1,若位移量增加至n時檢測到所述分片索引,則將所述分片索引采用相對索引n表示,其中n為大于1的自然數(shù)??蛇x的,在采用相對索引表示所述分片索引之前,所述處理器還用于:判斷所述分片索引序列中是否存在所述已建立的分片索引參考序列中的連續(xù)分片索引,其中,所述連續(xù)分片索引中各個相鄰分片索引的位移量為1;若存在,則根據(jù)所述連續(xù)分片索引中分片索引的數(shù)目m,將第一個分片索引作為后續(xù)m-1個分片索引的參考索引,采用連續(xù)索引m-1表示所述后續(xù)m-1個分片索引,其中,m為大于2的自然數(shù);若不存在,則采用相對索引表示所述分片索引;配置至少一個比特位用于區(qū)別所述相對索引與所述連續(xù)索引??蛇x的,所述處理器還用于:當已有的分片索引庫中不存在所述分片索引時,進一步判斷是否存在與所述分片索引存在數(shù)據(jù)相關性的分片索引參考序列;若存在,則將所述分片索引插入所述分片索引參考序列并更新所述分片索引參考序列;否則根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成新的分片索引參考序列。實施本發(fā)明實施例,具有如下有益效果:通過建立相對索引的方式進行數(shù)據(jù)壓縮,不會破壞原始數(shù)據(jù)分片,也未改變其分布狀態(tài),當特定數(shù)據(jù)分片對應的原始數(shù)據(jù)發(fā)生改變時,其影響僅限于當前數(shù)據(jù)分片對應的分片索引;當前分片索引的后一分片索引將以其前一分片索引作為參考,繼續(xù)建立相對索引,從而保證了對數(shù)據(jù)變化的較佳適應性;基于分片索引之間的數(shù)據(jù)相關性,利用彼此之間的相對位置關系進行壓縮,相對于簡單地捆綁數(shù)據(jù)分片或分片索引,壓縮效果提升明顯,尤其對于較長的分片索引,壓縮效果更佳;壓縮過程中只需要作后向遍歷和比較,比合并數(shù)據(jù)分片方法構(gòu)建超級分片或合并分片索引方法構(gòu)建超級索引的操作更高效;且相對索引以參考索引為標準建立,建立時間可大大縮短;且建立過程中只需要在原索引結(jié)構(gòu)基礎上擴充一個字段,存儲開銷小。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例。圖1為本發(fā)明數(shù)據(jù)壓縮方法的第一實施例的流程示意圖;圖2為本發(fā)明數(shù)據(jù)壓縮方法的第二實施例的流程示意圖;圖3為本發(fā)明數(shù)據(jù)壓縮方法的第三實施例的流程示意圖;圖4為本發(fā)明數(shù)據(jù)壓縮方法的第四實施例的流程示意圖;圖5為本發(fā)明數(shù)據(jù)壓縮裝置的第一實施例的組成示意圖;圖6為本發(fā)明數(shù)據(jù)壓縮裝置的第二實施例的組成示意圖;圖7為本發(fā)明數(shù)據(jù)壓縮裝置的第三實施例的組成示意圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。請參照圖1,為本發(fā)明數(shù)據(jù)壓縮方法的第一實施例的流程示意圖;在本實施例中,所述方法包括以下步驟:S101,依次計算數(shù)據(jù)分片序列中數(shù)據(jù)分片的分片索引,形成分片索引序列,為所述分片索引擴充后向索引描述符。在數(shù)據(jù)存儲和傳輸過程中,特定的數(shù)據(jù)分片并不是孤立地復現(xiàn)。在數(shù)據(jù)分片過程中,被同時切割出來的數(shù)據(jù)分片往往會以很高的機率復現(xiàn),甚至彼此之間先后順序也保持不變。對于這種數(shù)據(jù)分片之間隱藏的相互關系,可稱之為數(shù)據(jù)相關性。數(shù)據(jù)相關性可以是網(wǎng)絡傳輸中的一次交互會話、數(shù)據(jù)存儲中的一個歸檔文件或數(shù)據(jù)備份中的一份同步數(shù)據(jù)。優(yōu)秀的DD技術方案通常會利用數(shù)據(jù)相關性,將關聯(lián)的數(shù)據(jù)分片按其在原始數(shù)據(jù)中出現(xiàn)的先后順序統(tǒng)一存放,集中管理,以減少對存儲設備,尤其是磁盤的頻繁訪問,提高數(shù)據(jù)恢復效率。在本實施例中,取自同一數(shù)據(jù)對象的分片索引存在數(shù)據(jù)相關性,所述后向索引描述符用于標識與所述分片索引存在數(shù)據(jù)相關性的后一個分片索引。所述后向索引描述符可以是指針或編號。S102,判斷已有的分片索引庫中是否存在所述分片索引。若是,則執(zhí)行步驟S103,否則執(zhí)行步驟S105。S103,進一步判斷所述分片索引序列中是否存在所述分片索引的參考索引。若是,則執(zhí)行步驟S104,否則執(zhí)行步驟S106。其中,所述參考索引為已建立的分片索引參考序列中所述分片索引的前一個分片索引。S104,根據(jù)所述分片索引相對于所述參考索引的位移量,采用相對索引表示所述分片索引。S105,根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列。S106,不改變所述分片索引的表示方式。例如,數(shù)據(jù)流被切割成<Si1,Si2,Si3,Si4,Si5,Si6,…>的數(shù)據(jù)分片序列,依次計算可得到對應的<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>的分片索引序列。由于取自同一數(shù)據(jù)對象,分片索引序列內(nèi)所有分片索引均存在數(shù)據(jù)相關性,而且不重復,充分滿足分片索引參考序列的條件。因此可以根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>。當新的數(shù)據(jù)流被切割成<Si1,Sj1,Sj2,Si3,Si4,Si5,Sj3,…>的數(shù)據(jù)分片序列,對應<Ri1,Rj1,Rj2,Ri3,Ri4,Ri5,Rj3,…>的分片索引序列。其中,數(shù)據(jù)分片Si1、Si3、Si4和Si5重復,按照分片索引參考序列<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>,取Ri1作為參考,則Ri3可以簡單地使用符號“2”代替,表示二者之間在分片索引參考序列上的相對位置偏移了2個分片索引。類似地,Ri4是Ri3,Ri5是Ri4的后向索引,均可以使用符號“1”表示。于是,<Ri1,Ri3,Ri4,Ri5>的分片索引序列使用相對分片索引可以表示成<Ri1,2,1,1>。數(shù)據(jù)分片Sj1、Sj2和Sj3不重復,對應的分片索引Rj1、Rj2和Rj3沒有參考序列,無法建立相對索引。但是,基于當前數(shù)據(jù)的相關性,可以利用后向索引字段,將上述不重復的分片索引串聯(lián)起來,組成新的分片索引參考序列<Rj1,Rj2,Rj3,…>,為后續(xù)重復的分片索引建立相對分片索引提供參考。通過本實施例所述的數(shù)據(jù)壓縮方法,不會破壞原始數(shù)據(jù)分片,也未改變其分布狀態(tài),當特定數(shù)據(jù)分片對應的原始數(shù)據(jù)發(fā)生改變時,其影響僅限于當前數(shù)據(jù)分片對應的分片索引。當前分片索引的后一分片索引將以其前一分片索引作為參考,繼續(xù)建立相對索引,從而保證了對數(shù)據(jù)變化的較佳適應性;基于分片索引之間的數(shù)據(jù)相關性,利用彼此之間的相對位置關系進行壓縮,相對于簡單地捆綁數(shù)據(jù)分片或分片索引,壓縮效果提升明顯,尤其對于較長的分片索引,壓縮效果更佳;壓縮過程中只需要作后向遍歷和比較,比合并數(shù)據(jù)分片方法構(gòu)建超級分片或合并分片索引方法構(gòu)建超級索引的操作更高效;且相對索引以參考索引為標準建立,建立時間可大大縮短;且建立過程中只需要在原索引結(jié)構(gòu)基礎上擴充一個字段,存儲開銷小。請參照圖2,為本發(fā)明數(shù)據(jù)壓縮方法的第二實施例的流程示意圖;在本實施例中,所述方法包括以下步驟:S201,依次計算數(shù)據(jù)分片序列中數(shù)據(jù)分片的分片索引,形成分片索引序列,為所述分片索引擴充后向索引描述符。其中,取自同一數(shù)據(jù)對象的分片索引存在數(shù)據(jù)相關性,所述后向索引描述符用于標識與所述分片索引存在數(shù)據(jù)相關性的后一個分片索引。S202,判斷已有的分片索引庫中是否存在所述分片索引。若是,則執(zhí)行步驟S203,否則執(zhí)行步驟S206。S203,進一步判斷所述分片索引序列中是否存在所述分片索引的參考索引。是,則執(zhí)行步驟S204,否則執(zhí)行步驟S207。其中,所述參考索引為已建立的分片索引參考序列中所述分片索引的前一個分片索引。S204,將所述參考索引的位置作為起始點,對所述分片索引序列進行后向遍歷,檢測所述分片索引的位置。S205,每向后遍歷1個分片索引,所述位移量增加1,若位移量增加至n時檢測到所述分片索引,則將所述分片索引采用相對索引n表示。其中,n為大于1的自然數(shù)。S206,根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列。S207,不改變所述分片索引的表示方式。需要說明的是,雖然本實施例給出了一種建立相對索引的方法,但是本發(fā)明并不限于此,本領域技術人員應當理解,本發(fā)明還可以包括其他任意合適的根據(jù)所述分片索引相對于所述參考索引的位移量建立相對索引的方法。但是本實施例所述的方法不但計算簡單,而且實際壓縮效果較佳。請參照圖3,為本發(fā)明數(shù)據(jù)壓縮方法的第三實施例的流程示意圖;在本實施例中,所述方法包括以下步驟:S301,依次計算數(shù)據(jù)分片序列中數(shù)據(jù)分片的分片索引,形成分片索引序列,為所述分片索引擴充后向索引描述符。其中,取自同一數(shù)據(jù)對象的分片索引存在數(shù)據(jù)相關性,所述后向索引描述符用于標識與所述分片索引存在數(shù)據(jù)相關性的后一個分片索引。S302,判斷已有的分片索引庫中是否存在所述分片索引。若是則執(zhí)行步驟S303,否則執(zhí)行步驟S307。S303,進一步判斷所述分片索引序列中是否存在所述分片索引的參考索引。若是,則執(zhí)行步驟S304,否則執(zhí)行步驟S308。其中,所述參考索引為已建立的分片索引參考序列中所述分片索引的前一個分片索引。S304,判斷所述分片索引序列中是否存在所述已建立的分片索引參考序列中的連續(xù)分片索引。若是,則執(zhí)行步驟S309,否則執(zhí)行步驟S305。其中,所述連續(xù)分片索引中各個相鄰分片索引的位移量為1。S305,將所述參考索引的位置作為起始點,對所述分片索引序列進行后向遍歷,檢測所述分片索引的位置。S306,每向后遍歷1個分片索引,所述位移量增加1,若位移量增加至n時檢測到所述分片索引,則將所述分片索引采用相對索引n表示。其中,n為大于1的自然數(shù)。S307,根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列。S308,不改變所述分片索引的表示方式。S309,根據(jù)所述連續(xù)分片索引中分片索引的數(shù)目m,將第一個分片索引作為后續(xù)m-1個分片索引的參考索引,采用連續(xù)索引m-1表示所述后續(xù)m-1個分片索引。其中,m為大于2的自然數(shù)。配置至少一個比特位用于區(qū)別所述相對索引與所述連續(xù)索引。例如,數(shù)據(jù)流被切割成<Si1,Si2,Si3,Si4,Si5,Si6,…>的數(shù)據(jù)分片序列,依次計算可得到對應的<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>的分片索引序列。由于取自同一數(shù)據(jù)對象,分片索引序列內(nèi)所有分片索引均存在數(shù)據(jù)相關性,而且不重復,充分滿足分片索引參考序列的條件。因此可以根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>。當新的數(shù)據(jù)流被切割成<Si1,Sj1,Sj2,Si3,Si4,Si5,Sj3,…>的數(shù)據(jù)分片序列,對應<Ri1,Rj1,Rj2,Ri3,Ri4,Ri5,Rj3,…>的分片索引序列。其中,數(shù)據(jù)分片Si1、Si3、Si4和Si5重復,按照分片索引參考序列<Ri1,Ri2,Ri3,Ri4,Ri5,Ri6,…>,取Ri1作為參考,則Ri3可以簡單地使用符號“2”代替,表示二者之間在分片索引參考序列上的相對位置偏移了2個分片索引。類似地,Ri4是Ri3,Ri5是Ri4的后向索引,均可以使用符號“1”表示。于是,<Ri1,Ri3,Ri4,Ri5>的分片索引序列使用相對分片索引可以表示成<Ri1,2,1,1>。數(shù)據(jù)分片Sj1、Sj2和Sj3不重復,對應的分片索引Rj1、Rj2和Rj3沒有參考序列,無法建立相對索引。但是,基于當前數(shù)據(jù)的相關性,可以利用后向索引字段,將上述不重復的分片索引串聯(lián)起來,組成新的分片索引參考序列<Rj1,Rj2,Rj3,…>,為后續(xù)重復的分片索引建立相對分片索引提供參考??紤]到分片索引Ri3、Ri4和Ri5在參考序列中連續(xù)的特殊性,上述相對分片索引序列可以進一步優(yōu)化成<Ri1,2,2>,以提升DD壓縮效果。其中,后一符號“2”表示連續(xù)索引的數(shù)量。然而,這種表示方法會引發(fā)歧義,需要加以區(qū)別,因為分片索引序列<Ri1,Ri3,Ri5>對應的相對分片索引序列也是<Ri1,2,2>。為了避免沖突,可以配置至少一個比特位用于區(qū)別所述相對索引與所述連續(xù)索引。如配置相對索引的高位為1,連續(xù)索引的高位為0。當然,也可以配置多個比特位來進行區(qū)別。但是一個比特位占用存儲資源較少且已經(jīng)基本能實現(xiàn)區(qū)別的目的。在本實施例中,對于相鄰連續(xù)的分片索引采用累加計數(shù)的方法作進一步優(yōu)化,可以使DD壓縮效果大幅提升,相對于其它提升DD壓縮效果的方法,本方法不受分片索引本身的長度限制。請參照圖4,為本發(fā)明數(shù)據(jù)壓縮方法的第四實施例的流程示意圖;在本實施例中,所述方法包括以下步驟:S401,依次計算數(shù)據(jù)分片序列中數(shù)據(jù)分片的分片索引,形成分片索引序列,為所述分片索引擴充后向索引描述符。其中,取自同一數(shù)據(jù)對象的分片索引存在數(shù)據(jù)相關性,所述后向索引描述符用于標識與所述分片索引存在數(shù)據(jù)相關性的后一個分片索引。S402,判斷已有的分片索引庫中是否存在所述分片索引。若是,則執(zhí)行步驟S403,否則執(zhí)行步驟S407。S403,進一步判斷所述分片索引序列中是否存在所述分片索引的參考索引。若是,則執(zhí)行步驟S404,否則執(zhí)行步驟S410。其中,所述參考索引為已建立的分片索引參考序列中所述分片索引的前一個分片索引。S404,判斷所述分片索引序列中是否存在所述已建立的分片索引參考序列中的連續(xù)分片索引。若是,則執(zhí)行步驟S411,否則執(zhí)行步驟S405。S405,將所述參考索引的位置作為起始點,對所述分片索引序列進行后向遍歷,檢測所述分片索引的位置。S406,每向后遍歷1個分片索引,所述位移量增加1,若位移量增加至n時檢測到所述分片索引,則將所述分片索引采用相對索引n表示。其中,n為大于1的自然數(shù)。S407,判斷是否存在與所述分片索引存在數(shù)據(jù)相關性的分片索引參考序列。若是,則執(zhí)行步驟S408,否則執(zhí)行步驟S409。S408,將所述分片索引插入所述分片索引參考序列并更新所述分片索引參考序列。S409,根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成新的分片索引參考序列。S410,不改變所述分片索引的表示方式。S411,根據(jù)所述連續(xù)分片索引中分片索引的數(shù)目m,將第一個分片索引作為后續(xù)m-1個分片索引的參考索引,采用連續(xù)索引m-1表示所述后續(xù)m-1個分片索引。其中,m為大于2的自然數(shù)。配置至少一個比特位用于區(qū)別所述相對索引與所述連續(xù)索引。在本實施例中,給出了更新及建立分片索引參考序列的方法,通過這樣不斷的循環(huán)可得到越來越多的參分片索引參考序列,利于更好的實現(xiàn)基于相對索引的方式進行數(shù)據(jù)壓縮,進一步提升壓縮效果。請參照圖5,為本發(fā)明數(shù)據(jù)壓縮裝置的第一實施例的組成示意圖;在本實施例中,所述裝置包括:計算擴充單元100、第一判斷單元200、序列構(gòu)建單元300、第二判斷單元400及索引表示單元500。所述計算擴充單元100用于依次計算數(shù)據(jù)分片序列中數(shù)據(jù)分片的分片索引,形成分片索引序列,為所述分片索引擴充后向索引描述符,其中,取自同一數(shù)據(jù)對象的分片索引存在數(shù)據(jù)相關性,所述后向索引描述符用于標識與所述分片索引存在數(shù)據(jù)相關性的后一個分片索引;所述第一判斷單元200用于判斷已有的分片索引庫中是否存在所述分片索引;所述序列構(gòu)建單元300用于當所述第一判斷單元200判定已有的分片索引庫中不存在所述分片索引時,根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列;所述第二判斷單元400用于當所述第一判斷單元200判定已有的分片索引庫中存在所述分片索引時,進一步判斷所述分片索引序列中是否存在所述分片索引的參考索引,其中,所述參考索引為已建立的分片索引參考序列中所述分片索引的前一個分片索引;所述索引表示單元500用于若存在所述參考索引,則根據(jù)所述分片索引相對于所述參考索引的位移量,采用相對索引表示所述分片索引,否則不改變所述分片索引的表示方式。具體地,所述索引表示單元500進一步用于:將所述參考索引的位置作為起始點,對所述分片索引序列進行后向遍歷,檢測所述分片索引的位置;每向后遍歷1個分片索引,所述位移量增加1,若位移量增加至n時檢測到所述分片索引,則將所述分片索引采用相對索引n表示,其中,n為大于1的自然數(shù)。在采用相對索引表示所述分片索引之前,所述索引表示單元500還用于:判斷所述分片索引序列中是否存在所述已建立的分片索引參考序列中的連續(xù)分片索引,其中,所述連續(xù)分片索引中各個相鄰分片索引的位移量為1;若存在,則根據(jù)所述連續(xù)分片索引中分片索引的數(shù)目m,將第一個分片索引作為后續(xù)m-1個分片索引的參考索引,采用連續(xù)索引m-1表示所述后續(xù)m-1個分片索引,其中,m為大于2的自然數(shù);若不存在,則采用相對索引表示所述分片索引;配置至少一個比特位用于區(qū)別所述相對索引與所述連續(xù)索引。其中,所述后向索引描述符包括指針或編號。請參照圖6,為本發(fā)明數(shù)據(jù)壓縮裝置的第二實施例的組成示意圖;在本實施例中,所述裝置包括:計算擴充單元100、第一判斷單元200、序列構(gòu)建單元300、第二判斷單元400、索引表示單元500及第三判斷單元600。所述第三判斷單元600用于當所述第一判斷單元200判定已有的分片索引庫中不存在所述分片索引時,進一步判斷是否存在與所述分片索引存在數(shù)據(jù)相關性的分片索引參考序列;若存在,則指示所述序列構(gòu)建單元300將所述分片索引插入所述分片索引參考序列并更新所述分片索引參考序列;否則指示所述序列構(gòu)建單元300根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成新的分片索引參考序列。請參照圖7,為本發(fā)明數(shù)據(jù)壓縮裝置的第三實施例的組成示意圖。在本實施例中,所述裝置包括:處理器700及與所述處理器700相配合的存儲器800;所述存儲器800用于存儲所述處理器700執(zhí)行的程序及數(shù)據(jù)壓縮過程中產(chǎn)生的各種數(shù)據(jù)和索引;所述處理器700用于依次計算數(shù)據(jù)分片序列中數(shù)據(jù)分片的分片索引,形成分片索引序列,為所述分片索引擴充后向索引描述符,其中,取自同一數(shù)據(jù)對象的分片索引存在數(shù)據(jù)相關性,所述后向索引描述符用于標識與所述分片索引存在數(shù)據(jù)相關性的后一個分片索引;判斷已有的分片索引庫中是否存在所述分片索引;若不存在,則根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成分片索引參考序列;若存在,則進一步判斷所述分片索引序列中是否存在所述分片索引的參考索引,其中,所述參考索引為已建立的分片索引參考序列中所述分片索引的前一個分片索引;若存在所述參考索引,則根據(jù)所述分片索引相對于所述參考索引的位移量,采用相對索引表示所述分片索引,否則不改變所述分片索引的表示方式。所述處理器700進一步用于:將所述參考索引的位置作為起始點,對所述分片索引序列進行后向遍歷,檢測所述分片索引的位置;每向后遍歷1個分片索引,所述位移量增加1,若位移量增加至n時檢測到所述分片索引,則將所述分片索引采用相對索引n表示,其中n為大于1的自然數(shù)。在采用相對索引表示所述分片索引之前,所述處理器700還用于:判斷所述分片索引序列中是否存在所述已建立的分片索引參考序列中的連續(xù)分片索引,其中,所述連續(xù)分片索引中各個相鄰分片索引的位移量為1;若存在,則根據(jù)所述連續(xù)分片索引中分片索引的數(shù)目m,將第一個分片索引作為后續(xù)m-1個分片索引的參考索引,采用連續(xù)索引m-1表示所述后續(xù)m-1個分片索引,其中,m為大于2的自然數(shù);若不存在,則采用相對索引表示所述分片索引;配置至少一個比特位用于區(qū)別所述相對索引與所述連續(xù)索引。所述處理器700還用于:當已有的分片索引庫中不存在所述分片索引時,進一步判斷是否存在與所述分片索引存在數(shù)據(jù)相關性的分片索引參考序列;若存在,則將所述分片索引插入所述分片索引參考序列并更新所述分片索引參考序列;否則根據(jù)所述后向索引描述符將存在數(shù)據(jù)相關性的分片索引串聯(lián)形成新的分片索引參考序列。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。通過上述實施例的描述,本發(fā)明具有以下優(yōu)點:通過建立相對索引的方式進行數(shù)據(jù)壓縮,不會破壞原始數(shù)據(jù)分片,也未改變其分布狀態(tài),當特定數(shù)據(jù)分片對應的原始數(shù)據(jù)發(fā)生改變時,其影響僅限于當前數(shù)據(jù)分片對應的分片索引;當前分片索引的后一分片索引將以其前一分片索引作為參考,繼續(xù)建立相對索引,從而保證了對數(shù)據(jù)變化的較佳適應性;基于分片索引之間的數(shù)據(jù)相關性,利用彼此之間的相對位置關系進行壓縮,相對于簡單地捆綁數(shù)據(jù)分片或分片索引,壓縮效果提升明顯,尤其對于較長的分片索引,壓縮效果更佳;壓縮過程中只需要作后向遍歷和比較,比合并數(shù)據(jù)分片方法構(gòu)建超級分片或合并分片索引方法構(gòu)建超級索引的操作更高效;且相對索引以參考索引為標準建立,建立時間可大大縮短;且建立過程中只需要在原索引結(jié)構(gòu)基礎上擴充一個字段,存儲開銷??;對于相鄰連續(xù)的分片索引采用累加計數(shù)的方法作進一步優(yōu)化,可以使DD壓縮效果大幅提升。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機存取存儲器(RandomAccessMemory,簡稱RAM)等。以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。