一種非關系型數據庫數據更新方法和裝置制造方法【專利摘要】本發明公開了一種非關系型數據庫數據更新方法和裝置,該方法包括:接收更新指令,并記錄所述更新指令中攜帶的更新數據,所述更新數據包括主鍵和對應的更新操作內容;當預設的第一觸發事件發生時,查找各更新數據中的主鍵所屬的數據文件;根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件。采用本發明提供的方法,可以提高非關系型數據庫歷史數據更新的效率。【專利說明】一種非關系型數據庫數據更新方法和裝置【
技術領域:
】[0001]本發明涉及網絡【
技術領域:
】,特別涉及一種非關系型數據庫數據更新方法和裝置。【
背景技術:
】[0002]關系型數據庫中的表都具有固定的數據結構,每個元組(數據庫表中的每一條記錄)的字段組成都一樣,即使不是每個元組都需要所有的字段,但數據庫會為每個元組的所有字段分配相應的數據。例如,某數據庫表中包括姓名、年齡、籍貫三個字段,那么該表中的每條記錄都需要包括姓名、年齡、籍貫三個字段,即使其中某個元組的某個字段的內容為空,系統也要為其分配一個默認值,如O。這樣的結構可以便于表與表之間進行連接等操作,但從另一個角度來說它也是導致關系型數據庫性能瓶頸的一個關鍵因素,使得關系型數據庫不能滿足對數據庫高并發讀寫的需求,對海量數據的高效率存儲和訪問的需求,對數據庫的高可擴展性和高可用性的需求。[0003]為了解決上述問題,非關系數據庫(NoSQL)應運而生。Google的BigTable與Amazon的Dynamo是很成功的商業NoSQL系統。一些開源的NoSQL系統,如Membase,MongoDB,Cassandra,BeansDB,Redis等,也得到了廣泛認同。[0004]非關系型數據庫,它以鍵值對存儲,結構不固定,每一個元組可以有不一樣的字段,每個元組可以根據需要增加一些自己的鍵值對,不局限于固定的結構,可以減少一些時間和空間的開銷。KV(Key-Value,鍵值)存儲,是NoSQL存儲的一種方式,數據按照鍵值對的形式進行組織、索引和存儲。KV存儲非常適合不涉及過多數據關系和業務關系的業務數據,同時能有效減少讀寫磁盤的次數,比關系型數據庫存儲擁有更好的讀寫性能。[0005]鍵值存儲機制采用鍵值對形式存儲,值可以是任意不定長數據,使用主鍵可作簡單查詢和復雜查詢(如列表查詢、范圍查詢等),同時定期進行更新數據和歷史數據的合并(該合并操作可以包括添加、刪除、修改等操作)以處理過期數據。如圖1所示,更新數據和歷史數據采用O、I目錄管理,對于更新數據設置O、I兩個目錄,對歷史數據也設置O、I兩個目錄,假設當前的更新數據目錄和歷史數據目錄都為O目錄,在進行更新數據和歷史數據的合并時,將更新數據的O目錄和歷史數據的O目錄合并,并將合并后的數據存儲在歷史數據的I目錄中,同時在合并過程中,新的更新數據寫入到更新數據的I目錄中。在下一次進行更新數據和歷史數據的合并時,將更新數據的I目錄和歷史數據的I目錄合并到歷史數據的O目錄中,依此類推。[0006]然而,發明人發現,現有技術至少存在如下問題:現有的數據更新方法中,每次更新數據和歷史數據的合并,都要將所有的歷史數據與更新數據進行合并,即沒有發生變化的歷史數據也要合并并遷移到另一個目錄中,效率較低,大大增加了系統的開銷。【
發明內容】[0007]本發明的目的在于提供一種非關系型數據庫數據更新方法和裝置,以提高非關系型數據庫歷史數據更新的效率,為此,本發明實施例采用如下技術方案:一種非關系型數據庫數據更新方法,包括:接收更新指令,并記錄所述更新指令中攜帶的更新數據,所述更新數據包括主鍵和對應的更新操作內容;當預設的第一觸發事件發生時,查找各更新數據中的主鍵所屬的數據文件;根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件。[0008]一種非關系型數據庫數據更新裝置,包括:記錄模塊,用于接收更新指令,并記錄所述更新指令中攜帶的更新數據,所述更新數據包括主鍵和對應的更新操作內容;查找模塊,用于當預設的第一觸發事件發生時,查找各更新數據中的主鍵所屬的數據文件;更新模塊,用于根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件。[0009]本發明的上述實施例,接收更新指令,并記錄更新指令中攜帶的更新數據,更新數據包括主鍵和對應的更新操作內容,當預設的第一觸發事件發生時,查找記錄的各更新數據中的主鍵所屬的數據文件,根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件,從而,可以提高非關系型數據庫歷史數據更新的效率。【專利附圖】【附圖說明】[0010]圖1為現有技術中更新數據和歷史數據的存儲方式示意圖;圖2為本發明實施例提供的非關系型數據庫數據更新方法中SSTable的結構示意圖;圖3為本發明實施例提供的非關系型數據庫數據更新方法的流程示意圖;圖4為本發明實施例提供的非關系型數據庫數據更新方法中根據更新數據查找對應數據文件的示意圖;圖5為本發明實施例提供的非關系型數據庫數據更新方法中元數據文件存儲內容的示意圖;圖6為本發明實施例提供的非關系型數據庫數據更新方法中數據查詢方法的流程示意圖;圖7為本發明實施例提供的非關系型數據庫數據更新方法的流程示意圖;圖8為本發明實施例提供的非關系型數據庫數據更新裝置的結構示意圖。【具體實施方式】[0011]下面將結合本發明中的附圖,對本發明中的技術方案進行清楚、完整的描述,顯然,所描述的實施例是本發明的一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其它實施例,都屬于本發明保護的范圍。[0012]實施例一在本實施例中,更新數據以Memtable的存儲結構存儲在更新文件中,歷史數據以SSTable的存儲結構存儲在一個或多個數據文件中。SSTable結構是一種分布式的鍵值存儲結構,每個數據文件中都可以包含多個SSTable,每個SSTable中可以存儲有多個value(主鍵對應的值)和對應的塊內索引,每個SSTable的結構可以如圖2所示。在進行查詢的時候,可以先根據key(主鍵)查詢其所屬的數據文件,然后再進一步查詢其在該數據文件中所屬的SSTable,由于歷史數據的數量非常龐大,采用SSTable結構可以提升查詢效率。Memtable是一種非分布式的存儲結構,由于更新數據一般數量比較少,所以采用Memtable結構可以提升存儲效率。[0013]如圖3所示,為本發明實施例提供的非關系型數據庫數據更新方法的處理的流程,具體包括以下步驟:步驟301,系統接收更新指令,并記錄更新指令中攜帶的更新數據,更新數據包括主鍵和對應的更新操作內容。[0014]數據庫的維護人員可以通過服務器或管理終端發出更新指令,系統接收到更新指令后,可以先將更新指令中的更新數據存儲在更新文件當中,具體可以采用列表的形式存儲key和對應的更新操作內容。更新數據中可以包括其需要更新的key,并包括對相應的key-value對進行的操作(即更新操作內容),該更新操作內容可以是刪除key-value對、添加key-value對或修改value等。[0015]步驟302,當預設的第一觸發事件發生時,系統查找各更新數據中的主鍵所屬的數據文件。[0016]具體的,該預設的第一觸發事件可以是達到預設更新數據合并周期,即系統預先設置更新數據合并周期,按照周期進行更新數據與歷史數據的合并。另外,預設的第一觸發事件還可以是接收到更新數據合并指令,即可以由數據庫維護人員發送更新數據合并指令,以指示系統將更新數據與歷史數據進行合并。[0017]具體的,如圖4所示,系統可以根據元數據文件中記錄的元數據,查找各更新數據中的key對應的數據文件。元數據是一種用于描述數據的數據,元數據文件中記錄的元數據的隊列可以如圖5所示,可以包括每個數據文件的文件編號、文件中key的范圍、文件的存儲容量等信息。另外,在元數據文件中還可以記錄文件編號的信息,如已用文件編號、可用文件編號。[0018]步驟303,系統根據更新數據中的更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用新的數據文件替換合并前的數據文件。[0019]系統針對每條更新數據,根據更新數據中的key找到其對應的數據文件,然后將更新數據與相應的數據文件進行合并。具體的,合并的操作是根據更新數據中的更新操作內容進行的,可以包括刪除key-value對、添加key-value對或修改value等。[0020]當多個更新數據key對應到同一個數據文件時,此多個更新數據共同與該數據文件合并到新的數據文件中。合并過程會根據原數據文件中的各key和value,以及更新數據中的key和對應的更新操作內容,按照key的順序,在新的數據文件中重新順序生成各SSTable,SSTable的存儲容量為預先設置的數值。[0021]優選的,系統可以為合并得到的新的數據文件分配新的文件編號(在可用文件編號中選取)。在合并結束后,系統可以刪除被替換的數據文件,并釋放該數據文件的文件編號,該文件編號由已用文件編號變為可用文件編號。[0022]在本實施例上述流程中,系統可以預先建立兩個用于記錄更新數據的目錄,將接收到的更新指令中攜帶的更新數據記錄到其中一個目錄中;然后,每當第一觸發事件發生時,進行目錄切換,將后續接收到的更新指令中攜帶的更新數據記錄到另一個目錄中,并將之前使用的目錄中記錄的各更新數據與對應的數據文件合并到新的數據文件中;將之前使用的目錄中記錄的各更新數據與對應的數據文件合并到新的數據文件中之后,刪除之前使用的目錄中的更新數據。[0023]具體的,可以采用0、1目錄的方式對更新數據進行進行存儲,分別建立更新數據的O目錄文件、I目錄文件,每當第一觸發事件發生時,進行目錄切換,假設當前使用的是O目錄,當第一觸發事件發生開始進行合并過程時,新接收到的更新數據將被存儲到目錄I中,將目錄O中的更新數據與相應的數據文件進行合并,且在合并過程結束后,O目錄中的更新數據將被刪除,然后,下一次發生第一觸發事件時,再切換回到O目錄進行更新數據存儲,將目錄I中的更新數據與相應的數據文件進行合并,且在合并過程結束后,刪除I目錄中的更新數據,依此類推。[0024]優選的,本發明實施例還提供了的的非關系型數據庫數據更新方法,還可以包括:當預設的第二觸發事件發生時,判斷相鄰多個數據文件的存儲容量之和是否超過預設存儲容量閾值,如果沒有超過,則將所述多個數據文件合并為一個數據文件。其中的第二觸發事件可以是達到預設數據文件合并周期,也可以是各更新數據與相應的數據文件合并完畢,還可以是接收到數據文件合并指令。具體的數據文件的合并過程可以包括如下步驟:步驟A,根據數據文件中包含的主鍵的順序對數據文件進行排序,將排序后的數據文件中的第一個數據文件作為基準文件。[0025]根據數據文件中存儲的key的順序,可以對數據文件進行排序。例如,數據文件I中包含keyl、key2、key3,數據文件2中包含key4、key5、key6,數據文件3中包含key7、key8、key9,則根據key的順序可以確定數據文件的順序為數據文件1、數據文件2、數據文件3。[0026]步驟B,判斷基準文件是否為排序后的數據文件中的最后一個數據文件;如果是,則結束流程;否則,確定基準文件與基準文件的下一個數據文件的存儲空間之和,并執行步驟C。[0027]步驟C,判斷所述存儲空間之和是否超過預設的空間閾值;如果是,則將所述基準文件的下一個數據文件作為基準文件,并轉至步驟B;否則,將基準文件與基準文件的下一個數據文件合并,將合并后的數據文件作為基準文件,并轉至步驟B。[0028]例如,對數據文件I到數據文件η進行數據文件合并過程,設置存儲容量閾值為IM(兆)。將數據文件I作為基準文件,判斷基準文件與數據文件2的存儲容量之和是否超過1Μ,假設沒有超過1Μ,則將數據文件I與數據文件2合并為數據文件I’,將數據文件I’作為基準文件,并繼續判斷基準文件與數據文件3的存儲容量之和是否超過1Μ,假設超過1Μ,則將數據文件3作為基準文件,判斷基準文件與數據文件4的存儲容量之和是否超過1Μ,依此類推,直至基準文件是數據文件隊列中的最后一個文件時,結束流程。[0029]本發明實施例還提供了一種數據查詢的方法,系統預先對應各數據文件建立索引文件,索引文件中記錄其對應的數據文件中的各SSTable所存儲的主鍵的范圍。具體的,索引文件中可以記錄SSTable中的開始key,SSTable中key的個數,SSTable數據在其所屬的數據文件中的偏移。在數據庫啟動時,系統可以預先將各索引文件的內容加載到內存中。[0030]如圖6所示,該數據查詢方法的流程可以包括如下步驟:步驟601,當接收到查詢指令時,系統確定所述查詢指令中攜帶的主鍵所屬的數據文件。系統可以根據元數據文件中記錄的元數據,查找各更新數據中的key對應的數據文件,具體方法在步驟302中已作闡述,在此不再累述。[0031]步驟602,系統根據該數據文件對應的索引文件中記錄的該數據文件中的各SSTable所存儲的主鍵的范圍,確定查詢指令中攜帶的主鍵所屬的SSTable。[0032]在數據庫啟動時,系統可以預先將各索引文件的內容加載到內存中。然后,系統可以根據內存中加載的數據文件中各SSTable所存儲的主鍵的范圍,確定相應的主鍵所屬的SSTable。[0033]步驟603,在該主鍵所屬的SSTable中查找該主鍵對應的值。[0034]本發明實施例中,接收更新指令,并記錄更新指令中攜帶的更新數據,更新數據包括主鍵和對應的更新操作內容,當預設的第一觸發事件發生時,查找記錄的各更新數據中的主鍵所屬的數據文件,根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件,從而,可以提高非關系型數據庫歷史數據更新的效率。[0035]實施例二如圖7所示,為本發明實施例提供的非關系型數據庫數據更新方法在具體應用場景中的處理流程,可以包括如下步驟:步驟701,系統切換到更新數據合并模式,獲取當前數據正在使用的目錄。假設當前使用的目錄是O目錄,后續再接收到的更新數據將存入到I目錄中。[0036]步驟702,獲取該目錄中所有更新數據對應的key,并根據元數據查找各key對應的數據文件。[0037]步驟703,分配可用文件編號,建立新的數據文件,并將各更新數據與其對應的數據文件合并到新的數據文件中。合并結束后,可以刪除合并前的數據文件及其對應的索引文件,并將其文件編號釋放為可用。[0038]步驟704,建立新的數據文件的索引文件,并將該索引文件的內容更新到內存中。可以用該索引文件的內容替換合并前的數據文件對應的索引文件在內存中的相應內容。[0039]步驟705,結束更新數據與歷史數據的合并流程,系統切換到正常模式。在正常模式下,系統只接收更新數據并存儲到相應的目錄中,而不進行更新數據與歷史數據的合并。[0040]本發明實施例中,接收更新指令,并記錄更新指令中攜帶的更新數據,更新數據包括主鍵和對應的更新操作內容,當預設的第一觸發事件發生時,查找記錄的各更新數據中的主鍵所屬的數據文件,根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件,從而,可以提高非關系型數據庫歷史數據更新的效率。[0041]實施例三基于相同的技術構思,本發明實施例還提供了一種非關系型數據庫數據更新裝置,如圖8所示,包括:記錄模塊810,用于接收更新指令,并記錄所述更新指令中攜帶的更新數據,所述更新數據包括主鍵和對應的更新操作內容;查找模塊820,用于當預設的第一觸發事件發生時,查找各更新數據中的主鍵所屬的數據文件;更新模塊830,用于根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件。[0042]優選的,還包括更新數據管理模塊,用于:預先建立兩個用于記錄所述更新數據的目錄;將接收到的更新指令中攜帶的更新數據記錄到其中一個目錄中;每當所述第一觸發事件發生時,進行目錄切換,將后續接收到的更新指令中攜帶的更新數據記錄到另一個目錄中,并將之前使用的目錄中記錄的各更新數據與對應的數據文件合并到新的數據文件中;將之前使用的目錄中記錄的各更新數據與對應的數據文件合并到新的數據文件中之后,刪除之前使用的目錄中的更新數據。[0043]優選的,還包括合并模塊,用于:當預設的第二觸發事件發生時,判斷相鄰多個數據文件的存儲容量之和是否超過預設存儲容量閾值,如果沒有超過,則將所述多個數據文件合并為一個數據文件。[0044]優選的,所述合并模塊,具體用于:步驟A,根據數據文件中包含的主鍵的順序對數據文件進行排序,將排序后的數據文件中的第一個數據文件作為基準文件;步驟B,判斷基準文件是否為排序后的數據文件中的最后一個數據文件;如果是,則結束流程;否則,確定基準文件與基準文件的下一個數據文件的存儲空間之和,并執行步驟C;步驟C,判斷所述存儲空間之和是否超過預設的空間閾值;如果是,則將所述基準文件的下一個數據文件作為基準文件,并轉至步驟B;否則,將基準文件與基準文件的下一個數據文件合并,將合并后的數據文件作為基準文件,并轉至步驟B。[0045]優選的,所述預設的第二觸發事件,具體為達到預設數據文件合并周期。[0046]優選的,還包括:建立模塊,用于對應各數據文件建立索引文件,索引文件中記錄其對應的數據文件中的各SSTable所存儲的主鍵的范圍;查詢模塊,用于當接收到查詢指令時,確定所述查詢指令中攜帶的主鍵所屬的數據文件;根據該數據文件對應的索引文件中記錄的該數據文件中的各SSTable所存儲的主鍵的范圍,確定所述查詢指令中攜帶的主鍵所屬的SSTable;在該主鍵所屬的SSTable中查找該主鍵對應的值。[0047]優選的,所述預設的第一觸發事件,具體為達到預設更新數據合并周期。[0048]優選的,還包括文件編號管理模塊,用于:為所述新的數據文件分配新的文件編號;刪除被替換的數據文件,并釋放該數據文件的文件編號。[0049]本發明實施例中,接收更新指令,并記錄更新指令中攜帶的更新數據,更新數據包括主鍵和對應的更新操作內容,當預設的第一觸發事件發生時,查找記錄的各更新數據中的主鍵所屬的數據文件,根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件,從而,可以提高非關系型數據庫歷史數據更新的效率。[0050]本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。[0051]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。[0052]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺終端設備(可以是手機,個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。[0053]以上所述僅是本發明的優選實施方式,應當指出,對于本【
技術領域:
】的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視本發明的保護范圍。【權利要求】1.一種非關系型數據庫數據更新方法,其特征在于,包括:接收更新指令,并記錄所述更新指令中攜帶的更新數據,所述更新數據包括主鍵和對應的更新操作內容;當預設的第一觸發事件發生時,查找各更新數據中的主鍵所屬的數據文件;根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件。2.如權利要求1所述的方法,其特征在于,預先建立兩個用于記錄所述更新數據的目錄;將接收到的更新指令中攜帶的更新數據記錄到其中一個目錄中;每當所述第一觸發事件發生時,進行目錄切換,將后續接收到的更新指令中攜帶的更新數據記錄到另一個目錄中,并將之前使用的目錄中記錄的各更新數據與對應的數據文件合并到新的數據文件中;將之前使用的目錄中記錄的各更新數據與對應的數據文件合并到新的數據文件中之后,刪除之前使用的目錄中的更新數據。3.如權利要求1所述的方法,其特征在于,還包括:當預設的第二觸發事件發生時,判斷相鄰多個數據文件的存儲容量之和是否超過預設存儲容量閾值,如果沒有超過,則將所述多個數據文件合并為一個數據文件。4.、如權利要求3所述的方法,其特征在于,所述判斷相鄰多個數據文件的存儲容量之和是否超過預設存儲容量閾值,如果沒有超過,則將所述多個數據文件合并為一個數據文件,具體為:步驟A,根據數據文件中包含的主鍵的順序對數據文件進行排序,將排序后的數據文件中的第一個數據文件作為基準文件;步驟B,判斷基準文件是否為排序后的數據文件中的最后一個數據文件;如果是,則結束流程;否則,確定基準文件與基準文件的下一個數據文件的存儲空間之和,并執行步驟C;步驟C,判斷所述存儲空間之和是否超過預設的空間閾值;如果是,則將所述基準文件的下一個數據文件作為基準文件,并轉至步驟B;否則,將基準文件與基準文件的下一個數據文件合并,將合并后的數據文件作為基準文件,并轉至步驟B。5.如權利要求3所述的方法,其特征在于,所述預設的第二觸發事件,具體為達到預設數據文件合并周期。6.如權利要求1所述的方法,其特征在于,還包括:對應各數據文件建立索引文件,索引文件中記錄其對應的數據文件中的各SSTable所存儲的主鍵的范圍;當接收到查詢指令時,確定所述查詢指令中攜帶的主鍵所屬的數據文件;根據該數據文件對應的索引文件中記錄的該數據文件中的各SSTable所存儲的主鍵的范圍,確定所述查詢指令中攜帶的主鍵所屬的SSTable;在該主鍵所屬的SSTable中查找該主鍵對應的值。7.如權利要求1所述的方法,其特征在于,所述預設的第一觸發事件,具體為達到預設更新數據合并周期。8.如權利要求1所述的方法,其特征在于,還包括:為所述新的數據文件分配新的文件編號;刪除被替換的數據文件,并釋放該數據文件的文件編號。9.一種非關系型數據庫數據更新裝置,其特征在于,包括:記錄模塊,用于接收更新指令,并記錄所述更新指令中攜帶的更新數據,所述更新數據包括主鍵和對應的更新操作內容;查找模塊,用于當預設的第一觸發事件發生時,查找各更新數據中的主鍵所屬的數據文件;更新模塊,用于根據更新數據中的所述更新操作內容,將各更新數據與其對應的數據文件合并到新的數據文件中,并用所述新的數據文件替換合并前的數據文件。10.如權利要求9所述的裝置,其特征在于,還包括更新數據管理模塊,用于:預先建立兩個用于記錄所述更新數據的目錄;將接收到的更新指令中攜帶的更新數據記錄到其中一個目錄中;每當所述第一觸發事件發生時,進行目錄切換,將后續接收到的更新指令中攜帶的更新數據記錄到另一個目錄中,并將之前使用的目錄中記錄的各更新數據與對應的數據文件合并到新的數據文件中;將之前使用的目錄中記錄的各更新數據與對應的數據文件合并到新的數據文件中之后,刪除之前使用的目錄中的更新數據。11.如權利要求9所述的裝置,其特征在于,還包括合并模塊,用于:當預設的第二觸發事件發生時,判斷相鄰多個數據文件的存儲容量之和是否超過預設存儲容量閾值,如果沒有超過,則將所述多個數據文件合并為一個數據文件。12.如權利要求11所述的裝置,其特征在于,所述合并模塊,具體用于:步驟A,根據數據文件中包含的主鍵的順序對數據文件進行排序,將排序后的數據文件中的第一個數據文件作為基準文件;步驟B,判斷基準文件是否為排序后的數據文件中的最后一個數據文件;如果是,則結束流程;否則,確定基準文件與基準文件的下一個數據文件的存儲空間之和,并執行步驟C;步驟C,判斷所述存儲空間之和是否超過預設的空間閾值;如果是,則將所述基準文件的下一個數據文件作為基準文件,并轉至步驟B;否則,將基準文件與基準文件的下一個數據文件合并,將合并后的數據文件作為基準文件,并轉至步驟B。13.如權利要求11所述的裝置,其特征在于,所述預設的第二觸發事件,具體為達到預設數據文件合并周期。14.如權利要求9所述的裝置,其特征在于,還包括:建立模塊,用于對應各數據文件建立索引文件,索引文件中記錄其對應的數據文件中的各SSTable所存儲的主鍵的范圍;查詢模塊,用于當接收到查詢指令時,確定所述查詢指令中攜帶的主鍵所屬的數據文件;根據該數據文件對應的索引文件中記錄的該數據文件中的各SSTable所存儲的主鍵的范圍,確定所述查詢指令中攜帶的主鍵所屬的SSTable;在該主鍵所屬的SSTable中查找該主鍵對應的值。15.如權利要求9所述的裝置,其特征在于,所述預設的第一觸發事件,具體為達到預設更新數據合并周期。16.如權利要求9所述的裝置,其特征在于,還包括文件編號管理模塊,用于:為所述新的數據文件分配新的文件編號;刪除被替換的數據文件,并釋放該數據文件的文件編號。【文檔編號】G06F17/30GK103473239SQ201210187686【公開日】2013年12月25日申請日期:2012年6月8日優先權日:2012年6月8日【發明者】鐘艷春,劉錦標,江紅英申請人:騰訊科技(深圳)有限公司