本發明專利技術提供了一種數據字典的生成方法,該方法從輸入的樣本數據S的一個起點位置按序增量取得索引數據串Ck,使用該索引數據串Ck掃描輸入數據S的剩余位,記錄Ck以及數據長度、重復次數等參數,最后得到重復數據段的集合,從所述集合中的數據段中找到最佳數據段,用所述最佳數據段及其標簽生成標簽數據庫。佳數據段及其標簽生成標簽數據庫。佳數據段及其標簽生成標簽數據庫。
【技術實現步驟摘要】
數據字典的生成方法
[0001]本專利技術涉及一種數據處理
,尤其是數據字典的生成方法。
技術介紹
[0002]在數據傳輸的各個層次,減少傳輸重復數據的傳輸都具有重要意義。而減少數據重復傳輸的關鍵,在于如何獲知哪些數據是重復的,以及在數據接收端迅速且無瑕疵地的恢復數據發送端的原始數據。對于靜態數據,即內容確定的數據集合,如果能夠獲知需要重復傳輸的數據或數據集合,為重復的數據分配一個標簽或標識,就可以用所述標簽替代重復的數據進行傳輸,從而減少數據的重傳以及在數據接收端恢復原始數據。而且,標簽的長度和重復數據長度的比值越小,數據傳輸效率就越高。而對于動態數據,即內容不確定的數據集合,則需要恰當地分割數據以獲得重復數據,以及為所述重復數據分配一個標簽。
[0003]因此,需要預先獲知重復概率高的數據段,將這些數據段和標識它們的互不重復的標簽綁定存儲到一個數據庫,就可以實現對任何數據段的標簽標識。
[0004]在傳統的方法中,一般利用某個特定領域的數據特性,根據經驗和大量數據試驗查找這樣的重復數據段。例如,采用滑動窗口技術從一個方向順序掃描樣本數據,就可以找到重復的數據段,但是這個數據段的大小和重復性受窗口大小的限制,難以在一個樣本數據中找到最優的重復數據段。這樣就難以生成高效率的標簽數據庫。
技術實現思路
[0005]本專利技術解決的問題是,提供一種生成高效率的標簽數據庫,即高效率的數據字典的方法及裝置。
[0006]為解決上述問題,本專利技術實施例提供的數據字典的生成方法,包括:
[0007]A、對輸入的樣本數據S,從一個方向確定一個起點位置i;
[0008]B、判斷位置i是否為輸入數據S的尾部,如果是,輸出失敗信息,結束;否則轉步驟C;
[0009]C、使用位置i到數據S尾部的數據生成待處理數據串Si,Ck=Si的前k位,1≤k ≤[j/2],令j等于Si的長度;其中,[]為取小數點前面整數部分的取整計算符號;
[0010]D、使用Ck從Si的k+1位起掃描剩余位,記錄Ck,與Ck相同的數據段的起點位置 Lm,以及數據長度、重復次數;令k=k+1,Ck=Si的前k位,其中,m為大于1的整數;
[0011]E、判斷k是否小于[j/2],如果是,則轉步驟F;否則轉步驟G;
[0012]F、使用Ck從Si大于k位的Lm位置起掃描k位數據,記錄Ck,與Ck相同的數據段的起點位置Lm,以及數據長度、重復次數;令k=k+1,Ck=Si的前k位,轉步驟E;
[0013]G、根據掃描得到的結果,將數據長度和/或重復次數最佳的Ck、數據長度、重復次數,以及為其分配的標簽存儲到標簽數據庫。
[0014]本專利技術實施例提供的另一個數據字典的生成方法,包括:
[0015]A、對輸入的樣本數據S,從一個方向確定一個起點位置i;
[0016]B、判斷位置i是否為輸入數據S的尾部,如果是,轉步驟H;否則轉步驟C;
[0017]C、使用位置i到數據S尾部的數據生成待處理數據串Si,Ck=Si的前k位,1≤k ≤[j/2],令j等于Si的長度;其中,[]為取小數點前面整數部分的取整計算符號;
[0018]D、使用Ck從Si的k+1位起掃描剩余位,記錄Ck,以及與Ck相同的數據段的起點位置Lm,以及數據長度、重復次數;令k=k+1,Ck=Si的前k位,其中,m為大于1的整數;
[0019]E、判斷k是否小于[j/2],如果是,則轉步驟F;否則轉步驟G;
[0020]F、使用Ck從Si大于k位的Lm位置起掃描k位數據,記錄Ck,以及與Ck相同數據段的起點位置Lm,以及數據長度、重復次數;令k=k+1,Ck=Si的前k位,轉步驟E;
[0021]G、根據掃描得到的結果,將數據長度和/或重復次數最佳的Ck,以及數據長度、重復次數存儲到臨時數據庫,令i=i+1,轉步驟B;
[0022]H、利用臨時數據庫中保存的Ck,及其對應的數據長度、重復次數,找到最優值的 Ck,及其對應的數據長度、重復次數,將其以及為其分配的標簽存儲到標簽數據庫。
[0023]本專利技術實施例提供的方法在于,采用了一種簡單的方式實現了要求較高的復雜操作,能夠找到最優的高重復概率數據段,使得生成的標簽數據庫,即數據字典更加高效。本專利技術實施例的其它優點參考具體實施方式部分。
附圖說明
[0024]圖1是本專利技術提供的數據字典的生成方法第一實施例流程圖;
[0025]圖2是本專利技術提供的數據字典的生成方法第二實施例流程圖;
[0026]圖3
?
1、圖3
?
2是說明圖1和圖2所述實施例查找最佳重復數據段的示意圖。
具體實施方式
[0027]圖1是本專利技術提供的數據字典的生成方法第一實施例流程圖。
[0028]圖1所述實施例的作用是在一個樣本數據序列中找到最大長度的重復數據段,以便生成高效率的標簽數據庫,即高效率的數據字典。按照圖1,在步驟11將樣本數據序列,即數據S讀入到計算機內存。對于輸入的數據S,從一個方向確定一個起點i。通常以數據S的首部確定一個起點i,起點i的位置原則上可以是輸入數據尾部位置以外的任意位置,通常,所述起點i通常靠近首部,越偏離首部或靠近尾部越失去實際的意義,所以起點i最好是首部的第一個位置,如i=1,即從首部第一個數據為起點。
[0029]在步驟12,判斷位置i是否為輸入數據S的尾部,如果是,說明起點i的位置被設置在了數據S的尾部,這時已經完全沒有了分割數據S的意義,通常在步驟13輸出一個失敗信息,結束分割過程;否則在步驟14,使用位置i到數據S尾部的數據生成待處理數據串Si。為了方便重復數據的定位查找,令j等于Si的長度,定位索引數據串Ck取 Si的前k位。通常1≤k≤[j/2];其中,[]為取小數點前面整數部分的取整計算符號。所述K的最佳位數為2,k越小,定位重復數據段越有效但是速度慢,k越大,定位重復數據段越快,但是定位重復數據段越無效。
[0030]在步驟15,以Ck為索引,從Si的k+1位起掃描剩余位,查找與Ck相同的數據段,如果找到這樣的數據段,則記錄與Ck相同的數據段的起點位置Lm,以及記錄數據長度、重復次數和Ck,如果第一次找到重復的數據段,重復次數記為1,然后將k增加1位,即令k=k+1,建立
新的索引數據串,使其增加1位數據,即令Ck=Si的前k位,其中,m 為大于1的整數,然后進行步驟16。如果沒有找到這樣的數據段,則要結束掃描操作,考慮到程序的連續性,本例中令k=[j/2],然后進行步驟16執行終止操作。此處也可以直接終止程序。
[0031]在步驟16,判斷k是否小于[j/2],如果是,說明索引數據串Ck的長度小于Si的剩余位,Si的剩余位還有可能存在與Ck相同的數據段,此時轉步驟17;否則已經沒有必要繼續查詢,需要結束本次操作,因此轉步驟18繼續操作。
[0032]在步驟17,使用Ck從Si大于k本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.數據字典的生成方法,其特征在于包括:A、對輸入的樣本數據S,從一個方向確定一個起點位置i;B、判斷位置i是否為輸入數據S的尾部,如果是,輸出失敗信息,結束;否則轉步驟C;C、使用位置i到數據S尾部的數據生成待處理數據串Si,Ck=Si的前k位,1≤k≤[j/2],令j等于Si的長度;其中,[]為取小數點前面整數部分的取整計算符號;D、使用Ck從Si的k+1位起掃描剩余位,記錄Ck,與Ck相同的數據段的起點位置Lm,以及數據長度、重復次數;令k=k+1,Ck=Si的前k位,其中,m為大于1的整數;E、判斷k是否小于[j/2],如果是,則轉步驟F;否則轉步驟G;F、使用Ck從Si大于k位的Lm位置起掃描k位數據,記錄Ck,與Ck相同的數據段的起點位置Lm,以及數據長度、重復次數;令k=k+1,Ck=Si的前k位,轉步驟E;G、根據掃描得到的結果,將數據長度和/或重復次數最佳的Ck、數據長度、重復次數,以及為其分配的標簽存儲到標簽數據庫。2.如權利要求1所述的數據字典的生成方法,其特征在于:如果標簽數據庫中已經存在一個與Ck相同的數據段,則將該數據段對應的重復次數計數器加1。3.如權利要求2所述的數據字典的生成方法,其特征在于:利用重復次數計數器的值和/或數據段的長度值優化標簽數據庫。4.數據字典的生成方法,其特征在于包括:A、對輸入的樣本數據S,從一個方向確定一個起點位置i;B、判斷位置i是否為輸入數據S的尾部,如果是,轉步驟H;否則轉步驟C;C、使用位置i到數據S尾部的數據生成待處理數據串Si,Ck...
【專利技術屬性】
技術研發人員:白杰,
申請(專利權)人:白杰,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。