數據存儲結構的轉換方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及計算機技術領域,具體而言,本發明涉及一種數據存儲結構的轉換方 法及裝置。
【背景技術】
[0002] 隨著信息時代的迅速發展,不僅在大企業,甚至一些小企業也積累了 TB量級的數 據,各種規模的組織開始有了處理大規模及多重數據種類的數據的需求,而傳統的關系型 數據庫(SQL數據庫)在數據存儲的可擴展方面幾乎達到極限。為了解決大規模數據集合及 多重數據種類帶來的挑戰和大數據應用的難題,非關系型數據庫(NoSQL數據庫)應運而生。
[0003] 常用的非關系型數據庫包括KV(Key-Value,鍵值)存儲數據庫,其數據按照鍵值對 的形式進行組織、索引和存儲。KV存儲方式非常適合不涉及過多數據關系及業務關系的數 據存儲業務,其能有效減少讀寫磁盤的次數,比SQL數據庫存儲擁有更好的讀寫性能,KV存 儲數據庫的可實現方式包括Redis和LevelDB等,LevelDB能夠支持billion級別的數據量, 且在這個數量級別下還能夠保持非常高的數據存儲處理性能,同時,LevelDB可將數據存儲 至磁盤,有利于數據的永久保存;但是,目前Leve 1DB的接口僅支持無變形的key-value (鍵 值對)型數據,接口較為單一,對業務的可擴展性較差。Redis是一種高性能的key-value存 儲系統,其可支持多種value類型的數據存儲結構,包括string (字符串)類型、list (鏈表) 類型、set(集合)類型、zset(有序集合)類型和hash(哈希)類型,但是,為了保證較高的數據 存儲處理效率,其數據都是緩存在內存中,即Redis為一種內存型數據庫,因此該存儲方式 受物理內存限制,無法實現大數據存儲。
[0004] 由此可見,如何實現一種數據存儲處理效率較高、既支持多種類型的數據存儲結 構、又不受物理內存限制的存儲系統是目前急需解決的問題。
【發明內容】
[0005] 為克服上述技術問題或者至少部分地解決上述技術問題,特提出以下技術方案:
[0006] 本發明的實施例提出了一種數據存儲結構的轉換方法,包括:
[0007] 提取基于原始存儲結構的待轉換數據中的第一數據單元、第二數據單元及第三數 據單元,并將所述第一數據單元、所述第二數據單元及所述第三數據單元進行合并以確定 為轉換存儲結構中的第一類鍵;
[0008] 將所述轉換存儲結構中的第一類值設為空值;
[0009] 將所述第一類鍵及所述第一類值組成的第一類數據鍵值對存儲至鍵值數據庫中。 [0010]優選地,該方法還包括:
[0011] 提取所述待轉換數據中的第一數據單元及第三數據單元,并將所述第一數據單元 及所述第三數據單元進行合并以確定為轉換存儲結構中的第二類鍵;
[0012] 將提取到的所述待轉換數據中的第二數據單元確定為轉換存儲結構中的第二類 值;
[0013] 將所述第二類鍵及所述第二類值組成的第二類數據鍵值對存儲至鍵值數據庫中。
[0014] 優選地,該方法還包括:
[0015] 判斷所述第二數據單元是否為整數類型;
[0016] 當所述第二數據單元不為整數類型時,將所述第二數據單元通過預設轉換算法轉 換為整數類型。
[0017] 優選地,該方法還包括:
[0018] 確定具有相同第一數據單元的待轉換數據的數量;
[0019] 將以預定的數量標識為鍵、以所述具有相同第一數據單元的待轉換數據的數量為 值組成的數量鍵值對與所述第一類數據鍵值對及所述第二數據鍵值相關聯地存儲至所述 鍵值數據庫中。
[0020] 其中,所述預定的數量標識至少包括:
[0021 ]第一數據單元;可變量標識。
[0022]優選地,該方法還包括:
[0023]當對任一待更新的第一類數據鍵值對進行更新操作時,對與該待更新的第一類數 據鍵值對相關聯的第二類數據鍵值及數量鍵值對進行相應更新;或
[0024] 當對任一待更新的第二類數據鍵值對進行更新操作時,對與該待更新的第二類數 據鍵值對相關聯的第一類數據鍵值及數量鍵值對進行相應更新。
[0025] 本發明的實施例提出了一種數據存儲結構的轉換裝置,包括:
[0026] 第一鍵確定模塊,用于提取基于原始存儲結構的待轉換數據中的第一數據單元、 第二數據單元及第三數據單元,并將所述第一數據單元、所述第二數據單元及所述第三數 據單元進行合并以確定為轉換存儲結構中的第一類鍵;
[0027] 第一值確定模塊,用于將所述轉換存儲結構中的第一類值設為空值;
[0028] 第一鍵值對存儲模塊,用于將所述第一類鍵及所述第一類值組成的第一類數據鍵 值對存儲至鍵值數據庫中。
[0029] 優選地,該裝置還包括:
[0030] 第二鍵確定模塊,用于提取所述待轉換數據中的第一數據單元及第三數據單元, 并將所述第一數據單元及所述第三數據單元進行合并以確定為轉換存儲結構中的第二類 鍵;
[0031] 第二值確定模塊,用于將提取到的所述待轉換數據中的第二數據單元確定為轉換 存儲結構中的第二類值;
[0032] 第二鍵值對存儲模塊,用于將所述第二類鍵及所述第二類值組成的第二類數據鍵 值對存儲至鍵值數據庫中。
[0033] 優選地,該裝置還包括:
[0034] 判斷模塊,用于判斷所述第二數據單元是否為整數類型;
[0035] 轉換模塊,用于當所述第二數據單元不為整數類型時,將所述第二數據單元通過 預設轉換算法轉換為整數類型。
[0036] 優選地,該裝置還包括:
[0037] 確定具有相同第一數據單元的待轉換數據的數量;
[0038]將以預定的數量標識為鍵、以所述具有相同第一數據單元的待轉換數據的數量為 值組成的數量鍵值對與所述第一類數據鍵值對及所述第二類數據鍵值相關聯地存儲至所 述鍵值數據庫中。
[0039] 其中,所述預定的數量標識至少包括:
[0040] 第一數據單元;可變量標識。
[0041 ] 優選地,該裝置還包括:
[0042] 更新模塊,用于
[0043] 當對任一待更新的第一類數據鍵值對進行更新操作時,對與該待更新的第一類數 據鍵值對相關聯的第二類數據鍵值及數量鍵值對進行相應更新;或
[0044] 當對任一待更新的第二類數據鍵值對進行更新操作時,對與該待更新的第二類數 據鍵值對相關聯的第一類數據鍵值及數量鍵值對進行相應更新。
[0045] 本發明的實施例中,提出了一種數據存儲結構的轉換方案,通過將基于原始存儲 結構的數據轉換存儲為基于轉換存儲結構中的數據,實現對多種存儲數據類型以統一的轉 換存儲結構的方式進行數據存儲。進一步的,將支持多種value類型的數據存儲結構的 Redis存儲系統中的多種數據存儲結構的數據,轉存至僅支持無變形的鍵值對數據存儲結 構的LevelDB存儲系統,實現了在保證較高的數據存儲處理效率的前提下,將受物理內存限 制的存儲方式轉換為以磁盤為數據存儲目標的、不受物理內存限制的存儲方式。通過本發 明,最終可實現一種數據存儲處理效率較高、既支持多種類型的數據存儲結構、又不受物理 內存限制的存儲系統,由于該存儲系統可對多種數據結構類型的海量數據進行高效存儲, 從而使得本方案的數據存儲方式擁有較強的業務擴展性。
[0046] 本發明附加的方面和優點將在下面的描述中部分給出,這些將從下面的描述中變 得明顯,或通過本發明的實踐了解到。
【附圖說明】
[0047] 本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得 明顯和容易理解,其中:
[0048] 圖1為本發明中一個實施例的數據存儲結構的轉換方法的流程圖;
[0049] 圖2為本發明中一個優選實施例的數據存儲結構的轉換方法的流程圖;
[0050] 圖3為本發明中另一實施例的數據存儲結構的轉換裝置的結構示意圖;
[0051] 圖4為本發明中另一優選實施例的數據存儲結構的轉換裝置的結構示意圖。
【具體實施方式】
[0052] 下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終 相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實施例是示例性的,僅用于解釋本發明,而不能解釋為對本發明的限制。
[0053]本技術領域技術人員可以理解,除非特意聲明,這里使用的單數形式"一"、"一 個"、"所述"和"該"也可包括復數形式。應該進一步理解的是,本發明的說明書中使用的措 辭"包括"是指存在所述特征、整數、步驟、操作、元件和/或組件,但是并不排除存在或添加 一個或多個其他特征、整數、步驟、操作、元件、組件和/或它們的組。應該理解,當我們稱元 件被"連接"或"耦接"到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在 中間元件。此外,這里使用的"連接"或"親接"可以包括無線連接或無線耦接。這里使用的措 辭"和/或"包括一個或更多個相關聯的列出項的全部或任一單元和全部組合。
[0054] 本技術領域技術人員可以理解,除非另外定義,這里使用的所有術語(包括技術術 語和科學術語),具有與本發明所屬領域中的普通技術人員的一般理解相同的意義。還應該 理解的是,諸如通用字典中定義的那些術語,應該被理解為具有與現有技術的上下文中的 意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義 來解釋。
[0055] 圖1為本發明中一個實施例的數據存儲結構的轉換方法的流程圖。
[0056] 步驟S110:提取基于原始存儲結構的待轉換數據中的第一數據單元、第二數據單 元及第三數據單元,并將第一數據單元、第二數據單元及第三數據單元進行合并以確定為 轉換存儲結構中的第一類鍵;步驟S120:將轉換存儲結構中的第一類值設為空值;步驟 S130:將第一類鍵及第一類值組成的第一類數據鍵值對存儲至鍵值數據庫中。
[0057] 本發明的實施例中,提出了一種數據存儲結構的轉換方案,通過將基于原始存儲 結構的數據轉換存儲為基于轉換存儲結構中的數據,實現對多種存儲數據類型以統一的轉 換存儲結構的方式進行數據存儲。進一步的,將支持多種value類型的數據存儲結構的 Redis存儲系統中的多種數據存儲結構的數據,轉存至僅支持