本發(fā)明涉及數據庫技術領域,特別涉及一種時序數據管理方法、設備和裝置。
背景技術:
在電信業(yè)務質量管理、網絡性能管理、互聯(lián)網應用分析等多種領域需要對海量數據進行存儲和操作,目前一般會采用數據表的形式對海量數據進行存儲,數據表中可以包含非時序數據(比如,某對象對應的用戶標識、性別、出生地等數據)和時序數據(比如,某對象在某一時段內的通話時長等數據,其中,某對象往往會對應有不同時段的多個時序數據),對數據的操作可以是數據查詢操作。
目前,對時序數據進行存儲和查詢的方法往往是:每當接收到攜帶有某對象的時序數據的數據存儲指令時,可以在數據表中新增加一行,可以將數據存儲指令中攜帶的時序數據記錄在該行中的對應位置,即該對象在數據表中會對應有多行數據,每行中的時序數據對應的時段不同,每當接收到用于查詢某對象的時序數據的數據查詢請求時,可以從第一行到最后一行查看數據表,確定該對象對應的所有行,并獲取每行中的時序數據。
在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在以下問題:
基于上述查詢時序數據的處理方式,查詢某對象的時序數據時,需要對數據表進行逐行查看,直到查看到最后一行,往往數據表中的數據量非常大,從而,查詢時序數據的效率較低。
技術實現(xiàn)要素:
為了解決查詢時序數據的效率較低的問題,本發(fā)明實施例提供了一種時序數據管理方法、設備和裝置。
該技術方案如下:
第一方面,提供了一種時序數據管理方法,該方法可以用于查詢對象的時序數據,該方法包括:接收用于查詢第一對象的時序數據的數據查詢請求,數據查詢請求包括所述第一對象的標識;根據第一對象的標識,獲取目標數據表中第一對象對應的第一時序數據,目標數據表中記錄有多個對象對應的時序數據,多個對象與目標數據表中的時序數據一一對應;確定位置索引表中第一對象對應的第一存儲位置中存儲的第二存儲位置,位置索引表用于記錄目標數據表多個對象對應的多個時序數據的存儲位置,其中,對于多個對象中的每一個對象,位置索引表中存儲位置所指示的該對象的時序數據的時序在目標數據表中記錄的該對象的時序數據之前;獲取第二存儲位置中存儲的第一對象的第二時序數據以及第二時序數據對應的第三存儲位置,第二時序數據的時序在第一時序數據之前,第三存儲位置用于存儲第一對象的第三時序數據以及第三時序數據對應的第四存儲位置;根據第三存儲位置,獲取第一對象對應的其他時序數據。
本發(fā)明實施例中,目標數據表中只記錄有每個對象的一個時序數據,當接收到用于查詢第一對象的時序數據的數據查詢請求時,可以在目標數據表中獲取第一對象對應的第一時序數據,在位置索引表中第一對象對應的第一存儲位置中存儲的第二存儲位置中,獲取第一對象的第二時序數據和第二時序數據對應的第三存儲位置,其中,第二時序數據的時序可以在第一時序數據之前,且第二時序數據的時序和第一時序數據的時序是相鄰的,進而,根據第三存儲位置,獲取第一對象對應的其他時序數據。這樣,在獲取第一對象的時序數據時,只需要在目標數據表中獲取到第一對象對應的時序數據,進而,可以直接在位置索引表中第一對象對應的第一存儲位置中記錄的存儲位置,查詢第一對象的其他時序數據,無需對數據表進行逐行查看,從而,提高了時序數據的查詢效率。
另外,用于查詢第一對象的時序數據的數據查詢請求中還可以攜帶有查詢時間信息,此種情況下,時序數據管理設備獲取到第一對象對應的全部時序數據后,可以從中篩選出時間信息符合數據查詢請求中攜帶的查詢時間信息的時序數據。
在一種可能的實現(xiàn)方式中,根據第三存儲位置,獲取第一對象對應的其他時序數據,包括:獲取第三存儲位置中存儲的第三時序數據和第三時序數據對應的第四存儲位置;獲取第四存儲位置中存儲的第四時序數據和第四時序數據對應的第五存儲位置,直至獲取到第一對象對應的全部時序數據。
本發(fā)明實施例中,位置索引表中記錄的存儲位置可以是與目標數據表中的對象一一對應的,即對于目標數據表中的每一個對象,位置索引表中只記錄該對象對應的一個時序數據的存儲位置。這樣,當需要查找第一對象的時序數據時,根據位置索引表獲取到第二時序數據和第三存儲位置后,可以在第三存儲位置中,獲取第一對象的第三時序數據和第四存儲位置,進而,可以在第四存儲位置中獲取第四時序數據和第五存儲位置,直到獲取到第一對象對應的全部時序數據。
第二方面,提供了一種時序數據管理方法,該方法用于存儲各對象的時序數據,該方法包括:接收第一數據存儲指令,其中,第一數據存儲指令包括待存儲的第一對象的第一時序數據以及第一對象的標識;根據第一對象的標識,確定目標數據表中記錄的第一對象對應的第二時序數據,目標數據表中記錄有多個對象對應的時序數據,多個對象與所述目標數據表中的時序數據一一對應;將目標數據表中的第二時序數據,替換為第一時序數據;將第二時序數據存儲入第一數據存儲塊;在位置索引表中第一對象對應的第一存儲位置中,存儲第一數據存儲塊中第二時序數據所在的第二存儲位置,第二時序數據的時序在第一時序數據之前,位置索引表用于存儲目標數據表中多個對象對應的多個時序數據的存儲位置,其中,對于多個對象中的每一個對象,位置索引表中所指示的該對象的時序數據的時序在目標數據表中記錄的該對象的時序數據之前。
其中,第一數據存儲塊可以是目標數據表之外的數據存儲塊中的任一數據存儲塊,可以是一段連續(xù)的存儲空間。
本發(fā)明實施例中,在對時序數據進行管理時,不再采用逐一增加的方式將所有時序數據都保存在目標數據表中,而是通過更新替換的方式,在目標數據表中只保存最新的一條時序數據,即每個對象在目標數據表中只對應有一行數據,被最新時序數據替換的時序數據則可以保存在目標數據表之外的至少一個數據存儲塊中,當需要查詢第一對象的時序數據時,只需要在目標數據表中獲取到第一對象對應的時序數據,進而,可以直接在位置索引表中第一對象對應的第一存儲位置中記錄的存儲位置,查詢第一對象的其他時序數據,無需對目標數據表進行逐行查看,從而,提高了時序數據的查詢效率。
另外,第二時序數據的時序可以在第一時序數據之前,且第二時序數據的時序和第一時序數據的時序是相鄰的。位置索引表中記錄的存儲位置可以是與目標數據表中的對象一一對應的,即對于目標數據表中的每一個對象,位置索引表中只記錄該對象對應的一個時序數據的存儲位置。
在一種可能的實現(xiàn)方式中,接收第一數據存儲指令之前,還包括:接收第二數據存儲指令,其中,第二數據存儲指令包括待存儲的第一對象的第二時序數據以及所述第一對象的標識;根據第一對象的標識,確定目標數據表中記錄的第一對象對應的第三時序數據;將目標記錄表中的第三時序數據替換為第二時序數據;將第三時序數據存儲入第二數據存儲塊;在第一存儲位置中,存儲第二數據存儲塊中第三時序數據所在的第三存儲位置。
在本發(fā)明實施例中,每當接收到攜帶有待存儲的第一對象的時序數據的數據存儲指令時,均可以將目標數據表中存儲的第一對象對應的時序數據替換為數據存儲指令中攜帶的時序數據。具體的,當目標數據表中第一對象對應的時序數據為第三時序數據,第二數據存儲指令中攜帶的是第一對象的第二時序數據時,時序數據管理設備接收到第二數據存儲指令后,可以將目標記錄表中的第三時序數據替換為第二時序數據,以及可以將第三時序數據存儲入第二數據存儲塊,其中,第二數據存儲塊與第一數據存儲塊可以是同一個數據存儲塊,也可以是不同的數據存儲塊,進而,可以在第一存儲位置中,存儲第二數據存儲塊中第三時序數據所在的第三存儲位置。
在一種可能的實現(xiàn)方式中,將第二時序數據存儲入第一數據存儲塊,包括:將第三存儲位置和第二時序數據的映射關系存儲入第一數據存儲塊,其中,映射關系包括所述第三存儲位置和所述第二時序數據。
本發(fā)明實施例中,各個對象一般對應有的多個時序數據,為了保證可以獲取到各個對象對應的全部時序數據,在對第二時序數據進行存儲時,同時需要將被第二時序數據替換的第三時序數據的存儲位置和第二時序數據的映射關系一起存儲入第一數據存儲塊,確保了第二時序數據和第三時序數據之間的關聯(lián)關系。這樣,在查詢第一對象的時序數據時,可以根據時序數據和被該時序數據替換的時序數據之間的關聯(lián)關系,逐漸查找到第一對象對應的全部時序數據,無需對目標數據表進行逐行查看,從而,提高了時序數據的查詢效率。
在一種可能的實現(xiàn)方式中,在位置索引表中第一對象對應的第一存儲位置中,存儲第一數據存儲塊中第二時序數據所在的第二存儲位置,包括:將第一存儲位置中存儲的第三存儲位置,替換為第二存儲位置。
本發(fā)明實施例中,將目標數據表中的第三時序數據替換為第二時序數據時,位置索引表中第一對象對應的第一存儲位置中可以記錄有第三時序數據的存儲位置,即第三存儲位置,進而,當將目標數據表中的第二時序數據替換為第一時序數據時,可以將第一存儲位置中記錄的第三存儲位置替換為第二時序數據當前的存儲位置(即第二存儲位置)。這樣,位置索引表中只存儲第一對象對應的一個時序數據的存儲位置,其他時序數據的存儲位置存儲在數據存儲塊中,從而,查找第一對象對應的除第一時序數據之外的其他時序數據時,只需要在位置索引表中記錄的存儲位置中獲取到第一對象對應的第二時序數據,進而,可以根據第二時序數據,查詢第一對象的其他時序數據,無需對位置索引表進行逐行查看,從而,提高了時序數據的查詢效率。
在一種可能的實現(xiàn)方式中,將第二時序數據存儲入第一數據存儲塊,包括:在第一數據存儲塊的數據存儲量達到存儲上限的情況下,創(chuàng)建第三數據存儲塊,以及將第二時序數據存儲入第三數據存儲塊;在第一數據存儲塊的數據存儲量未達到存儲上限的情況下,將第二時序數據存儲入第一數據存儲塊。
本發(fā)明實施例中,在存儲第二時序數據時,可以在第一數據存儲塊的數據存儲量達到存儲上限的情況下,創(chuàng)建新的數據存儲塊(即第三數據存儲塊),進而,將第二時序數據存儲入第三數據存儲塊,在第一數據存儲塊的數據存儲量未達到存儲上限的情況下,可以將第二時序數據存儲入第一數據存儲塊。這樣,可以在已創(chuàng)建的數據存儲塊的數據存儲量達到存儲上限時,才去新的數據存儲模塊存儲時序數據,已創(chuàng)建的數據存儲塊的數據存儲量未達到存儲上限時,依然在該數據存儲塊存儲時序數據,進而,可以避免已創(chuàng)建的數據存儲塊出現(xiàn)剩余存儲空間的問題,從而,可以提高存儲空間的利用率。
在一種可能的實現(xiàn)方式中,將第二時序數據存儲入第一數據存儲塊,包括:根據第二時序數據的時間信息,從目標數據表之外的至少一個數據存儲塊中,確定與第二時序數據的時間信息相匹配的第一數據存儲塊,至少一個數據塊用于存儲從目標數據表中替換出的時序數據;將第二時序數據存儲入確定出的第一數據存儲塊。
其中,時間信息可以是時序數據的產生時間,也可以是時序數據的記錄時間、也可以是時序數據的編輯時間,即時序數據的時間信息可以是上述三者中的一個。
本發(fā)明實施例中,目標數據表之外的至少一個數據存儲塊本身可以對應有時間信息,進而,在存儲第二時序數據時,可以將其存儲入與第二時序數據的時間信息相匹配的第一數據存儲塊。這樣,可以將不同時間的時序數據保存在不同的數據存儲塊中,便于用戶對特定時間區(qū)間范圍內的時序數據的查找。
在一種可能的實現(xiàn)方式中,該方法還包括:每到預設的檢測周期,可以對目標數據表之外的至少一個數據存儲塊中未進行持久化的數據存儲塊進行數據存儲量檢測;可以將未進行持久化的數據存儲塊中的數據存儲量達到存儲上限的數據存儲塊中的目標數據,按照更新時間由前至后的順序,保存至持久化文件中。
其中,持久化可以是將存儲在內存空間內的數據存儲塊中的數據,存儲到可永久保存數據的存儲設備(比如磁盤)中,持久化文件可以是可永久保存數據的存儲設備中的文件。更新時間可以是數據存儲塊的數據存儲量達到存儲上限的時間。目標數據可以是數據存儲塊中存儲的時序數據和時序數據對應的存儲位置。
本發(fā)明實施例中,可以對各個數據存儲塊中的目標數據進行持久化處理,這樣,避免了因系統(tǒng)故障異常原因導致的數據丟失問題,保證了數據存儲的安全性和可靠性。
在一種可能的實現(xiàn)方式中,該方法還包括:當接收到數據恢復請求時,可以獲取持久化文件中保存的目標數據;將待恢復的目標數據存儲入內存中的數據存儲塊。
在一種可能的實現(xiàn)方式中,該方法還包括:每到預設的檢測周期,可以獲取位置索引表中相比于前一檢測周期發(fā)生變化的各索引項;可以將獲取的各索引項按更新時間由前至后的順序依次保存至持久化文件中。
其中,索引項可以包括位置索引表中記錄的存儲位置與對象的映射關系。更新時間可以是索引項創(chuàng)建的時間,以及索引項中的存儲位置的記錄時間。
在本發(fā)明實施例中,可以對位置索引表中的各個索引項進行可持久化處理,避免了因系統(tǒng)故障異常原因導致的數據丟失問題,保證了數據存儲的安全性和可靠性。
在一種可能的實現(xiàn)方式中,該方法還包括:在接收到數據恢復請求時,可以按照根更新時間由后至前的順序,遍歷持久化文件,依次獲取持久化文件中保存的至少一個索引項;其中,當持久化文件中包括針對同一對象的多個索引項時,從針對同一對象的多個索引項中獲取更新時間最新的索引項;將獲取的至少一個索引項恢復至內存中。
第三方面,提供了一種時序數據管理設備,該設備可以包括處理器、存儲器、收發(fā)器,存儲器用于存儲程序和數據,處理器被配置為執(zhí)行存儲器中存儲的程序;處理器通過執(zhí)行程序來實現(xiàn)上述第一方面以及第一方面各種可能的實現(xiàn)方式中所提供的時序數據管理方法,相關細節(jié)和技術效果參照第一方面及其各種實現(xiàn)方式,此處不再贅述。
第四方面,提供了一種時序數據管理設備,該設備可以包括處理器、存儲器、收發(fā)器,存儲器用于存儲程序和數據,處理器被配置為執(zhí)行存儲器中存儲的程序;處理器通過執(zhí)行程序來實現(xiàn)上述第二方面以及第二方面各種可能的實現(xiàn)方式中所提供的時序數據管理方法,相關細節(jié)和技術效果參照第二方面及其各種實現(xiàn)方式,此處不再贅述。
第五方面,提供了一種時序數據管理裝置,該裝置用于查詢對象的時序數據,該裝置包括:接收模塊,用于接收用于查詢第一對象的時序數據的數據查詢請求,數據查詢請求包括第一對象的標識;獲取模塊,用于根據第一對象的標識,獲取目標數據表中第一對象對應的第一時序數據,目標數據表中記錄有多個對象對應的時序數據,多個對象與所述目標數據表中的時序數據一一對應;確定模塊,用于確定位置索引表中第一對象對應的第一存儲位置中存儲的第二存儲位置,位置索引表用于記錄目標數據表多個對象對應的多個時序數據的存儲位置,其中,對于多個對象中的每一個對象,位置索引表中存儲位置所指示的該對象的時序數據的時序在目標數據表中記錄的該對象的時序數據之前;獲取模塊,還用于獲取第二存儲位置中存儲的第一對象的第二時序數據以及第二時序數據對應的第三存儲位置,第二時序數據的時序在第一時序數據之前,第三存儲位置用于存儲第一對象的第三時序數據以及第三時序數據對應的第四存儲位置;根據第三存儲位置,獲取第一對象對應的其他時序數據。
該裝置包括的模塊用于實現(xiàn)上述第一方面以及第一方面各種可能的實現(xiàn)方式中所提供的時序數據管理方法,相關細節(jié)和技術效果參照第一方面及其各種實現(xiàn)方式,此處不再贅述。
第六方面,提供了一種時序數據管理裝置,該裝置用于存儲各對象的時序數據,該裝置包括:接收模塊,用于接收第一數據存儲指令,其中,第一數據存儲指令包括待存儲的第一對象的第一時序數據以及第一對象的標識;確定模塊,用于根據第一對象的標識,確定目標數據表中記錄的第一對象對應的第二時序數據,目標數據表中記錄有多個對象對應的時序數據,多個對象與目標數據表中的時序數據一一對應;替換模塊,用于將目標數據表中的第二時序數據,替換為第一時序數據;存儲模塊,用于將第二時序數據存儲入第一數據存儲塊;在位置索引表中第一對象對應的第一存儲位置中,存儲第一數據存儲塊中第二時序數據所在的第二存儲位置,第二時序數據的時序在第一時序數據之前,位置索引表用于存儲目標數據表中多個對象對應的多個時序數據的存儲位置,其中,對于多個對象中的每一個對象,位置索引表中所指示的該對象的時序數據的時序在目標數據表中記錄的該對象的時序數據之前。
該裝置包括的模塊用于實現(xiàn)第二方面以及第二方面各種可能的實現(xiàn)方式中所提供的時序數據管理方法,相關細節(jié)和技術效果參照第二方面及其各種實現(xiàn)方式,此處不再贅述。
本發(fā)明實施例提供的技術方案帶來的有益效果是:
在本發(fā)明實施例中,在對時序數據進行管理時,不再采用逐一增加的方式將所有時序數據都保存在目標數據表中,而是通過更新替換的方式,在目標數據表中只保存最新的一條時序數據,即每個對象在目標數據表中只對應有一行數據,被替換的時序數據則可以保存在目標數據表之外的至少一個數據存儲塊中,當需要查詢第一對象的時序數據時,只需要在目標數據表中獲取到第一對象對應的時序數據,進而,可以直接在位置索引表中第一對象對應的第一存儲位置中記錄的存儲位置,查詢第一對象的其他時序數據,無需對目標數據表進行逐行查看,從而,提高了時序數據的查詢效率。
附圖說明
圖1是一種現(xiàn)有的數據表的表結構示意圖;
圖2是本發(fā)明實施例中一種時序數據管理的系統(tǒng)架構圖;
圖3是本發(fā)明實施例中一種時序數據管理設備的結構框圖;
圖4是本發(fā)明實施例中一種時序數據管理方法的步驟流程圖;
圖5是本發(fā)明實施例中一種時序數據管理方法的步驟流程圖;
圖6是本發(fā)明實施例中一種時序數據管理裝置的結構框圖;
圖7是本發(fā)明實施例中一種時序數據管理裝置的結構框圖;
圖8是本發(fā)明實施例中一種時序數據管理裝置的結構框圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行描述。
數據庫是目前常用的一種數據存儲方式,可以但不僅限于通過數據表的形式對各類數據進行存儲。其中,按照數據的性質不同,可以但不僅限于將數據分為如下幾類:時序數據、位置數據(指示事務坐標的數據,如:事務的二維坐標點、三維坐標點、位置描述信息等)和屬性數據(指示事務屬性的數據)。其中,所述時序數據(也即,時間序列數據)可以是指:某些與時間有關的屬性在不同時間的不同取值,也就是說這些屬性的值隨著時間的變化而產生變化在不同時間針對同一屬性的不同數據。例如,通話時長可以是時序數據的一種,也即,在不同時間針對“通話時長”這同一屬性的不同數據記錄。在數據庫中,時序數據一般存儲在數據庫的數據表中的同一列中,例如,數據庫中的某一列的列屬性對應通話時長,則不同時間對應的各條通話時長數據可以保存在該列中。
參照圖1,示出了一種現(xiàn)有的數據表的表結構示意圖。在圖1所示的數據表中,可以對不同用戶的性別、年齡、通話時長和歸屬地等信息進行存儲。其中,通話時長可以是時序數據的一種:同一用戶在不同時間對應的通話時長不完全相同。而同一用戶的性別、年齡和歸屬地等則可以是固定的數據。
在目前的數據表中,需要對各個用戶對應的所有數據進行記錄。例如,當新增一條用戶A的通話時長,則需要在數據表中新增一行來對通話時長進行保存(如圖1所示的數據表中的Row2、Row5和Row7)。
然而,在實際應用中,如在電信業(yè)務質量管理、網絡性能管理、互聯(lián)網應用分析等業(yè)務中,數據量是異常龐大的,每時每刻都會有大量的新數據產生,采用目前的數據管理方式,需要在數據表中不斷的新增大量的行來對新數據進行記錄,將導致整個數據表的數據存儲量異常龐大、冗余。特別是,即使只是針對某一列中數據的更新,為了保證數據的完整性,也追加一行完整的記錄。如圖1中的第7行Row7,當用戶A的通話時長有更新時,需要增加一個完整的行(Row7)來完成用戶A的通話時長的更新,導致數據表中存儲了對大量的重復數據,進一步增加了數據表中的數據存儲量。
數據表的龐大冗余會導致諸多問題:在基于所述數據表進行數據查詢時,需要對數據表進行完整的遍歷,冗余的數據表會導致遍歷時間的增加,導致查找效率低,且增加了這個系統(tǒng)的運行負擔。特別是,當數據表是內存數據庫中的數據表時,冗余的數據表會導致內存存儲成本的增高,嚴重影響系統(tǒng)的運行效率。
參照圖2,示出了本發(fā)明實施例中一種時序數據管理的系統(tǒng)架構圖。在本發(fā)明的一種應用場景中,時序數據管理的系統(tǒng)架構至少可以包括:目標數據表、至少一個數據存儲塊(Segment)、位置索引表和持久化文件,其中,目標數據表可以是包含待存儲的時序數據所屬的屬性的任一數據表。
圖2中Column A是數據表中用于存儲時序數據的時序數據列,Column A中的每一行作為一個對象,用于存儲不同人或事務(可稱為對象)的一條時序數據。在位置索引表中包括與Column A中各個對象相對應的存儲位置,位置索引表可以用于記錄目標數據表多個對象對應的多個時序數據的存儲位置,其中,對于多個對象中的每一個對象,位置索引表中存儲位置所指示的該對象的時序數據的時序在目標數據表中記錄的該對象的時序數據之前。各個對象的被替換時序數據分別存儲在所述數據表之外的至少一個數據存儲塊中。持久化文件可以用于對位置索引表中記錄的存儲位置和至少一個數據存儲塊中存儲的時序數據進行持久化存儲,提高了數據存儲的安全性。其中,持久化文件可以是磁盤等永久記憶性存儲器中的文件。
在本發(fā)明的一優(yōu)選實施例中,該時序數據管理方法可以基于數據庫管理系統(tǒng)來實現(xiàn)。其中,該數據庫管理系統(tǒng)可以是基于軟件實現(xiàn)的功能模塊。
在本發(fā)明的一實施例中,數據庫管理系統(tǒng)具體可以運行在一個時序數據管理設備上,比如可以是具有時序數據管理功能的終端或服務器。參照圖3,示出了本發(fā)明實施例中一種時序數據管理設備的結構框圖。時序數據管理設備至少可以包括:收發(fā)器301、處理器302和存儲器303,其中,處理器302可以分別與收發(fā)器301和存儲器303電性連接,圖3中的連接方式只是示意性的一種,處理器、存儲器和收發(fā)器的連接還可以是類似通用計算機架構中的連接,即處理器、存儲器和收發(fā)器通過總線進行連接,本發(fā)明實施例不做限定。收發(fā)器301可以用于實現(xiàn)數據的發(fā)送和接收。存儲器303可用于存儲程序以及數據,處理器302通過運行存儲在存儲器303的程序,執(zhí)行各種功能應用以及數據處理。存儲器303可主要包括存儲程序區(qū)和存儲數據區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數據區(qū)可存儲根據時序數據管理設備的使用所創(chuàng)建的數據(比如音頻數據、電話本、時序數據等)等,存儲數據區(qū)可以包括內存中的用于存儲數據的數據存儲塊。此外,存儲器303可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應地,存儲器303還可以包括存儲器控制器,以提供處理器301和收發(fā)器301對存儲器303的訪問。處理器302是時序數據管理設備的控制中心,利用各種接口和線路連接整個時序數據管理設備的各個部分,通過運行或執(zhí)行存儲在存儲器303內的軟件程序和/或模塊,以及調用存儲在存儲器303內的數據,執(zhí)行時序數據管理設備的各種功能和處理數據,從而對時序數據管理設備進行整體監(jiān)控。可選的,處理器302可包括一個或多個處理核心;優(yōu)選的,處理器302可集成應用處理器和調制解調處理器,其中,應用處理器主要處理操作系統(tǒng)、用戶界面和應用程序等,調制解調處理器主要處理無線通信??梢岳斫獾氖牵鲜稣{制解調處理器也可以不集成到處理器302中。
參照圖4,示出了本發(fā)明實施例中一種時序數據管理方法的步驟流程圖,該方法可以用于存儲各對象的時序數據。在本本實施例中,所述時序數據管理方法包括:
步驟401,時序數據管理設備接收第一數據存儲指令,其中,第一數據存儲指令包括待存儲的第一對象的第一時序數據以及第一對象的標識。
其中,第一對象可以是目標數據表中包含的多個對象中的一個,第一對象的標識可以目標數據表中記錄的用戶標識。
在實施中,時序數據管理設備中可以預先存儲有目標數據表,其中,目標數據表中包括至少一個時序數據列(其中,時序數據列可以是時序數據所屬的屬性列)。時序數據管理設備中還預先存儲有與目標數據表中的時序數據列相對應的位置索引表。
當有新的數據產生時,用戶可以通過終端向時序數據管理設備發(fā)送數據存儲指令(可以稱為第一數據存儲指令),其中,第一數據存儲指令中可以攜帶有待存儲的第一對象的第一時序數據以及第一對象的標識。時序數據管理設備接收到第一數據存儲指令后,可以對其進行解析,獲取其中攜帶的待存儲的第一對象的第一時序數據以及第一對象的標識,其中,第一時序數據可以包含第一時序數據所屬的屬性和時序數據本身。
該步驟具體可以由收發(fā)器301實現(xiàn)。
步驟402,時序數據管理設備根據第一對象的標識,確定目標數據表中記錄的第一對象對應的第二時序數據,目標數據表中記錄有多個對象對應的時序數據,多個對象與目標數據表中的時序數據一一對應。
在實施中,時序數據管理設備獲取到第一數據存儲指令中攜帶的第一對象的標識和第一時序數據后,可以在目標數據表中,確定第一對象的標識所在的行,以及第一時序數據所屬的屬性所在的列,進而,可以將確定出的行和列中記錄的數據確定為第一對象對應的第二時序數據。
步驟403,時序數據管理設備將目標數據表中的第二時序數據,替換為第一時序數據。
如前所述,在本實施例中,目標數據表中可以只存儲各對象的最新的時序數據。各個對象的被替換數據可以存儲在數據表之外的任意適當位置處。故,確定出第二時序數據后,可以將將目標數據表中存儲的第一對象的第二時序數據,替換為第一時序數據。
該步驟具體可以由處理器302實現(xiàn)。
步驟404,時序數據管理設備將第二時序數據存儲入第一數據存儲塊。
其中,第一數據存儲塊可以是內存中一段連續(xù)的存儲空間。
步驟405,時序數據管理設備在位置索引表中第一對象對應的第一存儲位置中,存儲第一數據存儲塊中第二時序數據所在的第二存儲位置,第二時序數據的時序在第一時序數據之前,位置索引表用于存儲目標數據表中多個對象對應的多個時序數據的存儲位置,其中,對于多個對象中的每一個對象,位置索引表中所指示的該對象的時序數據的時序在目標數據表中記錄的該對象的時序數據之前。
其中,第一數據存儲塊可以是時序數據管理設備中包含的任意一個數據存儲塊。
在實施中,位置索引表中可以包含有目標索引表中各對象對應的索引項,其中,索引項可以包括某對象與該對象對應的其他時序數據的存儲位置的映射關系,具體的,各索引項可以包含某對象的標識和該對象的其他時序數據的存儲位置,其中,索引項中存儲某對象的其他時序數據的存儲位置的位置即是位置索引表中該對象對應的存儲位置,也就是說,第一對象對應的第一索引項中存儲第一對象的時序數據的存儲位置的位置即是位置索引表中第一對象對應的第一存儲位置。
將第一對象的第二時序數據存儲入第一數據存儲塊后,時序數據管理設備可以確定位置索引表中第一對象的標識對應的第一存儲位置,即可以在位置索引表中,確定第一對象的標識所在的索引項,進而,可以將第一數據存儲塊中第二時序數據所在的第二存儲位置存儲入第一存儲位置。其中,第二時序數據的時序可以在第一時序數據之前,并且與第一時序數據的時序相鄰(即在時序上,第二時序數據可以是第一時序數據的前一時序數據),位置索引表用于存儲目標數據表中多個對象對應的多個時序數據的存儲位置(更進一步的,位置索引表中記錄的存儲位置可以與各對象一一對應),對于多個對象中的每一個對象,位置索引表中所指示的該對象的時序數據的時序在目標數據表中記錄的該對象的時序數據之前,更進一步的,在時序上,位置索引表中所指示的該對象的時序數據可以是目標數據表中記錄的該對象的時序數據的前一時序數據。
該步驟具體可以由處理器302實現(xiàn)。
可選的,將第一對象的第二時序數據存儲到目標數據表中的處理過程可以如下:接收第二數據存儲指令,其中,第二數據存儲指令包括待存儲的第一對象的第二時序數據以及所述第一對象的標識;根據第一對象的標識,確定目標數據表中記錄的第一對象對應的第三時序數據;將目標記錄表中的第三時序數據替換為第二時序數據;將第三時序數據存儲入第二數據存儲塊;在第一存儲位置中,存儲第二數據存儲塊中第三時序數據所在的第三存儲位置。
在實施中,第二數據存儲指令的接收時刻早于第一數據存儲指令的接收時刻,當接收到第二數據存儲指令時,目標數據表中記錄的第一對象對應的時序數據為第三時序數據,其中,在時序上,第三時序數據可以是第二時序數據的前一時序數據。接收到第二數據存儲指令后,時序數據管理設備可以將目標數據表中的第三時序數據替換為第二時序數據,并將被替換的第三時序數據存儲入目標數據表之外的第二數據存儲塊,其中,第二數據存儲塊和第一數據存儲塊可以是同一個數據存儲塊,也可以是不同的數據存儲塊。將第三時序數據存儲入第二數據存儲塊后,可以在第一存儲位置中,存儲第二數據存儲塊中第三時序數據所在的第三存儲位置。
該步驟具體可以由收發(fā)器301和處理器302共同實現(xiàn)。
可選的,由于第一對象對應的其他時序數據可以是一個也可以是多個,當第一對象對應的其他時序數據為多個時,為了便于在后續(xù)對時序數據進行查詢時,可以獲取到第一對象的全部時序數據,在對第一對象的其他時序數據進行存儲時,除了要對該時序數據本身進行存儲之外,還需要對該時序數據在數據存儲塊中的存儲位置進行存儲。即在存儲第二時序數據時,還可以將第三存儲位置存儲與其進行對應存儲,相應的,步驟404的處理過程可以如下:將第三存儲位置和第二時序數據的映射關系存儲入第一數據存儲塊,其中,映射關系包括第三存儲位置和第二時序數據。
在實施中,第二時序數據被替換后,時序數據管理設備還可以獲取位置索引表中第一存儲位置存儲的第三存儲位置,進而,可以將第三存儲位置和第二時序數據的映射關系存儲入第一數據存儲塊,其中,第二時序數據和第三存儲位置可以作為一項,存儲到第一數據存儲塊。其中,第三存儲位置和第二時序數據可以作為二元組存儲入第一數據存儲塊。
該處理過程具體可以由處理器302實現(xiàn)。
進一步的,在完成對第一對象的第二時序數據的存儲之后,還需要對位置索引表中第一存儲位置存儲的數據進行更新,相應的,步驟405的處理過程可以如下:將第一存儲位置中存儲的第三存儲位置,替換為第二存儲位置。也就是說,位置索引表中記錄的存儲的位置與目標數據表中各對象一一對象,每當接收到對目標數據表中第一對象對應的時序數據更新時,相應的,可以對位置索引表中第一對象對應的第一存儲位置中的數據進行更新。
該處理過程具體可以由處理器302實現(xiàn)。
可選的,在存儲第二時序數據時,可以將其存儲入數據存儲量還未達到存儲上限的數據存儲塊,相應的,步驟404的處理過程可以如下:在第一數據存儲塊的數據存儲量達到存儲上限的情況下,創(chuàng)建第三數據存儲塊,以及將第二時序數據存儲入第三數據存儲塊;在第一數據存儲塊的數據存儲量未達到存儲上限的情況下,將第二時序數據存儲入第一數據存儲塊。
在實施中,時序數據管理設備在目標數據表外存儲第二時序數據時,可以首先判斷當前是否存在數據存儲量未達到存儲上限的數據存儲塊,即可以判斷第一數據存儲塊的數據存儲量是否達到存儲上限,若否,可以將第二時序數據存儲到第一數據存儲塊中,若是,則可以創(chuàng)建第三數據存儲塊,以及將第二時序數據存儲在第三數據存儲塊中。
該處理過程具體可以由處理器302實現(xiàn)。
可選的,圖2所示的各個數據存儲塊可以對應有時間信息。例如,某一數據存儲塊對應的時間信息為:21:00-22:00,則可以儲存在該數據存儲塊中的時序數據可以是時間信息在21:00-22:00時間區(qū)間內的時序數據,相應的,步驟404的處理過程可以如下:根據第二時序數據的時間信息,從目標數據表之外的至少一個數據存儲塊中,確定與第二時序數據的時間信息相匹配的第一數據存儲塊,至少一個數據塊用于存儲從目標數據表中替換出的時序數據;將第二時序數據存儲入確定出的第一數據存儲塊。
其中,時序數據的時間信息可以該時序數據的產生時間(優(yōu)選的,時序數據的時間信息可以該時序數據的產生時間)、也可以是該時序數據的編輯時間、也可以是該時序數據的記錄時間。
在實施中,時序數據管理設備中可以預先存儲有各個數據存儲塊對應的時間信息和時序數據的時間信息,其中,時序數據可以包含時序數據本身和時序數據的時間信息。時序數據管理設備將第二時序數據從目標數據表中替換出后,可以從所有數據存儲塊中,確定與第二時序數據的時間信息相匹配的第一數據存儲塊,其中,至少一個數據塊用于存儲從目標數據表中替換出的時序數據,進而,可以將第二時序數據存儲入確定出的第一數據存儲塊。
該處理過程具體可以由處理器302實現(xiàn)。
進一步的,在本發(fā)明實施例中,為了保證數據存儲的安全性和可靠性,可以對數據存儲塊中的目標數據、和/或位置索引表中的各索引項(各對象與時序數據的存儲位置的映射關系)進行持久化處理。
具體的,對數據存儲塊中的目標數據進行持久化處理的處理過程可以如下:每到預設的檢測周期,對目標數據表之外的至少一個數據存儲塊中未進行持久化的數據存儲塊進行數據存儲量檢測,將未進行持久化的數據存儲塊中的數據存儲量達到存儲上限的數據存儲塊中的目標數據,按照更新時間由前至后的順序,保存至持久化文件中。
其中,持久化可以是將存儲在內存空間內的數據存儲塊中的數據,存儲到可永久保存數據的存儲設備(比如磁盤)中,持久化文件可以是可永久保存數據的存儲設備中的文件。更新時間可以是數據存儲塊的數據存儲量達到存儲上限的時間。目標數據可以是數據存儲塊中存儲的時序數據和時序數據對應的存儲位置。
在實施中,每到預設的檢測周期,時序數據管理設備可以對目標數據表之外的至少一個數據存儲塊中還未進行持久化的數據存儲塊進行數據存儲量檢測,也就是說,時序數據管理設備可以對在當前檢測周期之前進行過持久化之外的數據存儲塊進行數據存儲量檢測,判斷這些數據存儲塊的數據存儲量是否達到了存儲量上限。當檢測到某一數據存儲塊的數據存儲量達到存儲上限,則可以確定該某一數據存儲塊是一個完整的數據存儲塊,可以將該數據存儲塊按照該數據存儲塊中的目標數據對應的更新時間由前至后的順序,保存至持久化文件中。例如,預設的檢測周期為1小時,時序數據管理設備在9:00開始對目標數據表之外的數據存儲塊的進行數據存儲量檢測,目前已經存在的數據存儲塊為a、b、c,其中,a、b的數據存儲量已經達到存儲量上限,則時序數據管理設備可以在9:00對目標數據表之外的所有數據存儲塊進行數據存儲量檢測,此時,將會檢測到a、b的數據存儲量達到了存儲上限,進而,時序數據管理設備可以將a、b中的目標數據保存到持久化文件中。然后,可以在10:00對a、b之外的數據存儲塊進行數據存儲量檢測,當檢測到有數據存儲量達到存儲上限的數據存儲塊時,可以按照更新時間由前至后的順序,將其存儲入持久化文件中,并位于a、b中的數據之后。另外,在對數據存儲塊中的目標數據進行持久化處理時,還可以將目標數據的存儲位置(即目標數據所在的數據存儲塊)進行持久化處理,即在進行持久化處理時,還可以將數據存儲塊的標識(即數據存儲塊對應的地址)進行存儲。
該步驟具體可以由處理器302實現(xiàn)。
可選的,時序數據管理設備還可以將持久化文件中的數據恢復到內存中的數據存儲塊中,相應的,處理過程可以如下:當接收到數據恢復請求時,可以獲取持久化文件中保存的目標數據;將待恢復的目標數據存儲入內存中的數據存儲塊。
在本實施例中,當系統(tǒng)故障恢復重啟時,可以根據重啟時生成的數據恢復請求,從持久化文件中,將待恢復的目標數據存儲入內存中的數據存儲塊。避免了因系統(tǒng)故障異常原因導致的數據丟失問題,保證了數據存儲的安全性和可靠性。
該步驟具體可以由處理器302實現(xiàn)。
可選的,數據恢復請求中還可以攜帶有時間信息,相應的,處理過程可以如下:時序數據管理設備根據待恢復的目標數據的時間信息,從獲取的待恢復的目標數據中,篩選得到符合數據恢復請求中攜帶的時間信息的待恢復的目標數據。其中,目標數據的時間信息可以是目標數據中的時序數據的時間信息。
在本發(fā)明的一應用場景中,時序數據管理設備可以直接將獲取的目標數據全部恢復至內存中。
在本發(fā)明的一應用場景中,為了避免將過期失效的目標數據也恢復至內存的數據存儲塊中,可以從獲取的全部數據中,篩選得到滿足數據恢復請求中攜帶的時間信息的待恢復的目標數據。該步驟具體可以由處理器302實現(xiàn)。
可選的,時序數據管理設備還可以將持久化文件中的索引項恢復到內存中,相應的,處理過程可以如下:時序數據管理設備每到預設的檢測周期,獲取位置索引表中相比于前一檢測周期發(fā)生變化的各索引項,將獲取的各索引項按更新時間由前至后的順序依次保存至持久化文件中。該步驟具體可以由處理器302實現(xiàn)。
其中,更新時間可以是索引項創(chuàng)建的時間,以及索引項中的存儲位置的記錄時間。
如前所述,當有時序數據存儲更新時,各對象對應的索引項中的信息也會對應更新,如,在將目標數據表中存儲的第一對象的第二時序數據,替換為第一時序數據時,需要將位置索引表中的第一索引項中記錄的第三存儲位置替換為第二存儲位置。也即,針對位置索引表中的某一對象,在不同時間,位置索引表中該對象對應的存儲位置可能發(fā)生變化。在進行持久化保存時,需要對同一對象的每個存儲位置發(fā)生變化的索引項分別進行持久化保存。
可選的,在接收到數據恢復請求時,時序數據管理設備按照更新時間由后至前的順序遍歷持久化文件,依次獲取持久化文件中保存的至少一個索引項,將獲取的至少一個索引項恢復至內存中。該步驟具體可以由處理器302實現(xiàn)。
如前所述,針對同一對象,持久化文件中可能保存有其在多個不同時間的索引項,也即,針對同一對象可以對應有多個不同時間更新的索引項。其中,當持久化文件中包括針對同一對象的多個索引項時,可以從針對同一對象的多個索引項中獲取更新時間最新的索引項。
在基于上述步驟401-405實現(xiàn)的時序數據的存儲的基礎上,用戶還可以實現(xiàn)對時序數據的查詢。上述時序數據管理方法還可以用于查詢對象的時序數據,如圖5所示。
步驟501,時序數據管理設備接收用于查詢第一對象的時序數據的數據查詢請求,數據查詢請求包括第一對象的標識。
在實施中,當用戶需要查找某對象(即第一對象)的時序數據時,可以通過操作,觸發(fā)與時序數據管理設備可以通信的終端向時序數據管理設備發(fā)送用于查詢第一對象的時序數據的數據查詢請求,其中,數據查詢請求中可以攜帶有第一對象的標識。相應的,時序數據管理設備可以接收數據查詢請求,并對其進行解析,獲取其中攜帶的第一對象的標識。
該步驟具體可以由收發(fā)器301實現(xiàn)。
步驟502,時序數據管理設備根據第一對象的標識,獲取目標數據表中第一對象對應的第一時序數據,目標數據表中記錄有多個對象對應的時序數據,多個對象與目標數據表中的時序數據一一對應。
該步驟具體可以由處理器302實現(xiàn)。
步驟503,時序數據管理設備確定位置索引表中第一對象對應的第一存儲位置中存儲的第二存儲位置,位置索引表用于記錄目標數據表多個對象對應的多個時序數據的存儲位置,其中,對于多個對象中的每一個對象,位置索引表中存儲位置所指示的該對象的時序數據的時序在所述目標數據表中記錄的該對象的時序數據之前。
該步驟具體可以由處理器302實現(xiàn)。
步驟504,時序數據管理設備獲取第二存儲位置中存儲的第一對象的第二時序數據以及第二時序數據對應的第三存儲位置,第二時序數據的時序在第一時序數據之前,第三存儲位置用于存儲第一對象的第三時序數據以及第三時序數據對應的第四存儲位置。
該步驟具體可以由處理器302實現(xiàn)。
步驟505,時序數據管理設備根據第三存儲位置,獲取第一對象對應的其他時序數據。
該步驟具體可以由處理器302實現(xiàn)。
可選的,時序數據管理設備可以按照如下處理過程,獲取第一對象對應的其他時序數據,具體如下:獲取第三存儲位置中存儲的第三時序數據和第三時序數據對應的第四存儲位置;獲取第四存儲位置中存儲的第四時序數據和第四時序數據對應的第五存儲位置,直至獲取到第一對象對應的全部時序數據。
在實施中,時序數據管理設備獲取到第二時序數據對應的第三存儲位置后,可以獲取第三存儲位置中的存儲的第三時序數據和第三時序數據對應的第四存儲位置,其中,第四存儲位置可以用于存儲第四時序數據和第四時序數據對應的第五存儲位置,第四時序數據可以是被第三時序數據替換的時序數據,在時序上,第四時序數據可以是第三時序數據的前一時序數據。獲取到第四存儲位置后,可以獲取第四存儲位置中存儲的第四時序數據和第四時序數據對應的第五存儲位置,其中,第五時序數據可以是被第四時序數據替換的時序數據,在時序上,第五時序數據可以是第四時序數據的前一時序數據,直至獲取到第一對象對應的全部時序數據。
該步驟具體可以由處理器302實現(xiàn)。
可選的,數據查詢請求中還可以攜帶有查詢時間信息,相應的處理過程可以如下:從獲取的第一對象的第一時序數據、第二時序數據和獲取的第一對象的其他時序數據中,篩選出查詢結果,其中,查詢結果中的時序數據的時間信息符合數據查詢請求中攜帶的查詢時間信息。
該步驟具體可以由處理器302實現(xiàn)。
為了便于理解,下面以一個完整的、針對第一對象的時序數據的存儲和查詢流程為例,對該時序管理方法進行詳細說明。其中,第一對象對應的時序數據包括:第一時序數據、第二時序數據、第三時序數據、···、第n-1時序數據和第n時序數據。其中,n可以是大于或等于2的整數。
在存儲階段:
在初始階段,數據表中存儲的第一對象的時序數據為第n時序數據。此時,第一對象在位置索引表中不存在對應的索引項。
在第一次存儲更新過程中,接收到攜帶有待存儲的第一對象的第n-1時序數據的數據存儲指令。此時,可以將目標數據表中存儲的第一對象的第n時序數據,替換為第n-1時序數據,并將第n時序數據存儲至數據存儲塊中(其中,第n時序數據在數據存儲塊中的存儲位置為位置A)。同時,在位置索引表中建立第一對象對應的第一索引項,在第一索引項中存儲第一對象與位置A(位置A可以是具體的物理地址信息,也可以是邏輯存儲地址信息)的映射關系。其中,需要說明的是,由于在第n時序數據之前不存在其他時序數據,故,在將第n時序數據存儲至數據存儲塊中時,可以只存儲第n時序數據本身?;蛘撸部梢源鎯Φ趎時序數據本身和一個初始地址;其中,初始地址可以為空。
在第二次存儲更新過程中,接收到攜帶有待存儲的第一對象的第n-2時序數據的數據存儲指令。此時,可以將目標數據表中存儲的第一對象的第n-1時序數據,替換為第n-2時序數據,并將第n-1時序數據存儲至數據存儲塊中(其中,第n-1時序數據在數據存儲塊中的存儲位置為位置B)。同時,對第一索引項中的存儲位置進行更新:將位置A替換為位置B。其中,需要說明的是,在將第n-1時序數據存儲至數據存儲塊中時,需要將第n-1時序數據本身和位置A的映射關系存儲入數據存儲塊,其中,可以將第n-1時序數據本身和位置A作為二元組,或者將位置A作為第n-1時序數據的追加部分,存儲入數據存儲塊。
參照上述流程,直至完成對第一時序數據的存儲。
在查詢階段:
首先,可以直接從目標數據表中獲取到第一對象的第一時序數據。
然后,可以根據第一索引項中記錄的映射關系,確定映射關系中的第二存儲位置,進而,從第二存儲位置中獲取第二時序數據。在從第二存儲位置中獲取第二時序數據的同時,獲取與第二時序數據對應的用于指示第三時序數據的存儲位置的第三存儲位置。
再然后,在第三存儲位置中,獲取第三時序數據。
參照上述流程,直至完成對第n時序數據的獲取。
本方案講述的時序數據管理設備可以同時支持時序數據存儲處理和時序數據查詢處理。
需要說明的是,本發(fā)明實施例所述的時序數據管理方法,可以但不僅限于適用于內存數據庫中的時序數據的管理、本發(fā)明實施例所述時序數據管理方法也適用于其他存儲介質中對時序數據的管理。如,所述其他存儲介質包括但不僅限于:磁盤、硬盤、非易失性隨機訪問存儲器等。
本發(fā)明實施例中,在對時序數據進行管理時,不再采用逐一增加的方式將所有時序數據都保存在目標數據表中,而是通過更新替換的方式,在目標數據表中只保存最新的一條時序數據,即每個對象在目標數據表中只對應有一行數據,被替換的時序數據則可以保存在目標數據表之外的至少一個數據存儲塊中,當需要查詢第一對象的時序數據時,只需要在目標數據表中獲取到第一對象對應的時序數據,進而,可以直接在位置索引表中第一對象對應的第一存儲位置中記錄的存儲位置,查詢第一對象的其他時序數據,無需對目標數據表進行逐行查看,從而,提高了時序數據的查詢效率。
參照圖6,示出了本發(fā)明實施例中一種時序數據管理裝置的結構框圖。在本發(fā)明實施例中,所述時序數據管理裝置可以通過軟件、硬件或者兩者的結合實現(xiàn)成為設備中的部分或者全部。本發(fā)明實施例提供的時序數據管理裝置可以實現(xiàn)本發(fā)明實施例圖4所述的流程,所述時序數據管理裝置包括:
接收模塊610,用于接收第一數據存儲指令,其中,所述第一數據存儲指令包括待存儲的第一對象的第一時序數據以及所述第一對象的標識,具體可以實現(xiàn)上述步驟401中的接收功能,以及由設備接收信息的其他隱含步驟;
確定模塊620,用于根據所述第一對象的標識,確定目標數據表中記錄的所述第一對象對應的第二時序數據,所述目標數據表中記錄有多個對象對應的時序數據,所述多個對象與所述目標數據表中的時序數據一一對應,具體可以實現(xiàn)上述步驟402中的確定功能,以及由設備確定信息的其他隱含步驟;
替換模塊630,用于將所述目標數據表中的所述第二時序數據,替換為所述第一時序數據,具體可以實現(xiàn)上述步驟403中的替換功能,以及其他隱含步驟;
存儲模塊640,用于將所述第二時序數據存儲入第一數據存儲塊;在位置索引表中所述第一對象對應的第一存儲位置中,存儲所述第一數據存儲塊中所述第二時序數據所在的第二存儲位置,所述第二時序數據的時序在所述第一時序數據之前,所述位置索引表用于存儲所述目標數據表中多個對象對應的多個時序數據的存儲位置,其中,對于所述多個對象中的每一個對象,所述位置索引表中所指示的該對象的時序數據的時序在所述目標數據表中記錄的該對象的時序數據之前,具體可以實現(xiàn)上述步驟404、405中的存儲功能,以及由設備存儲信息的其他隱含步驟。
可選的,所述接收模塊610,還用于接收第二數據存儲指令,其中,所述第二數據存儲指令包括待存儲的第一對象的第二時序數據以及所述第一對象的標識;
所述確定模塊620,還用于根據所述第一對象的標識,確定所述目標數據表中記錄的所述第一對象對應的第三時序數據;
所述替換模塊630,還用于將所述目標記錄表中的所述第三時序數據替換為所述第二時序數據;
所述存儲模塊640,還用于將所述第三時序數據存儲入第二數據存儲塊;在所述第一存儲位置中,存儲所述第二數據存儲塊中所述第三時序數據所在的第三存儲位置。
可選的,所述存儲模塊640,用于:
將所述第三存儲位置和所述第二時序數據的映射關系存儲入第一數據存儲塊,其中,所述映射關系包括所述第三存儲位置和所述第二時序數據。
可選的,所述存儲模塊640,用于:
將所述第一存儲位置中存儲的所述第三存儲位置,替換為所述第二存儲位置。
可選的,如圖7所示,所述裝置還包括:
創(chuàng)建模塊650,用于在所述第一數據存儲塊的數據存儲量達到存儲上限的情況下,創(chuàng)建第三數據存儲塊;
所述存儲模塊640,還用于將所述第二時序數據存儲入所述第三數據存儲塊;在所述第一數據存儲塊的數據存儲量未達到存儲上限的情況下,將所述第二時序數據存儲入所述第一數據存儲塊。
可選的,所述確定模塊620,還用于:
根據所述第二時序數據的時間信息,從所述目標數據表之外的至少一個數據存儲塊中,確定與第二時序數據的時間信息相匹配的第一數據存儲塊,所述至少一個數據塊用于存儲從所述目標數據表中替換出的時序數據;
所述存儲模塊640,用于將所述第二時序數據存儲入確定出的所述第一數據存儲塊。
需要說明的是,上述接收模塊610可以由收發(fā)器實現(xiàn),確定模塊620、替換模塊630、存儲模塊640、創(chuàng)建模塊650可以由處理器實現(xiàn),或者處理器配合存儲器來實現(xiàn),或者,處理器執(zhí)行存儲器中的程序指令來實現(xiàn)。
本發(fā)明實施例中,在對時序數據進行管理時,不再采用逐一增加的方式將所有時序數據都保存在目標數據表中,而是通過更新替換的方式,在目標數據表中只保存最新的一條時序數據,即每個對象在目標數據表中只對應有一行數據,被替換的時序數據則可以保存在目標數據表之外的至少一個數據存儲塊中,當需要查詢第一對象的時序數據時,只需要在目標數據表中獲取到第一對象對應的時序數據,進而,可以直接在位置索引表中第一對象對應的第一存儲位置中記錄的存儲位置,查詢第一對象的其他時序數據,無需對目標數據表進行逐行查看,從而,提高了時序數據的查詢效率。
參照圖8,示出了本發(fā)明實施例中一種時序數據管理裝置的結構框圖。在本發(fā)明實施例中,所述時序數據管理裝置可以通過軟件、硬件或者兩者的結合實現(xiàn)成為設備中的部分或者全部。本發(fā)明實施例提供的時序數據管理裝置可以實現(xiàn)本發(fā)明實施例圖5所述的流程,所述時序數據管理裝置包括:
接收模塊610,用于接收用于查詢第一對象的時序數據的數據查詢請求,所述數據查詢請求包括所述第一對象的標識,具體可以實現(xiàn)上述步驟501中的接收功能,以及由設備接收信息的其他隱含步驟;
獲取模塊660,用于根據所述第一對象的標識,獲取目標數據表中所述第一對象對應的第一時序數據,所述目標數據表中記錄有多個對象對應的時序數據,所述多個對象與所述目標數據表中的時序數據一一對應,具體可以實現(xiàn)上述步驟502中的獲取功能,以及由設備獲取信息的其他隱含步驟;
確定模塊620,用于確定位置索引表中所述第一對象對應的第一存儲位置中存儲的第二存儲位置,所述位置索引表用于記錄所述目標數據表多個對象對應的多個時序數據的存儲位置,其中,對于所述多個對象中的每一個對象,所述位置索引表中存儲位置所指示的該對象的時序數據的時序在所述目標數據表中記錄的該對象的時序數據之前,具體可以實現(xiàn)上述步驟503中的確定功能,以及由設備確定信息的其他隱含步驟;
獲取模塊660,還用于獲取所述第二存儲位置中存儲的所述第一對象的第二時序數據以及所述第二時序數據對應的第三存儲位置,所述第二時序數據的時序在所述第一時序數據之前,所述第三存儲位置用于存儲所述第一對象的第三時序數據以及所述第三時序數據對應的第四存儲位置;根據所述第三存儲位置,獲取所述第一對象對應的其他時序數據,具體可以實現(xiàn)上述步驟504、505中的獲取功能,以及由設備獲取信息的其他隱含步驟。
可選的,所述獲取模塊660,用于:
獲取所述第三存儲位置中存儲的第三時序數據和所述第三時序數據對應的第四存儲位置;
獲取所述第四存儲位置中存儲的第四時序數據和所述第四時序數據對應的第五存儲位置,直至獲取到所述第一對象對應的全部時序數據。
需要說明的是,上述獲取模塊660可以由處理器實現(xiàn),或者處理器配合存儲器來實現(xiàn),或者,處理器執(zhí)行存儲器中的程序指令來實現(xiàn)。
本發(fā)明實施例中,在對時序數據進行管理時,不再采用逐一增加的方式將所有時序數據都保存在目標數據表中,而是通過更新替換的方式,在目標數據表中只保存最新的一條時序數據,即每個對象在目標數據表中只對應有一行數據,被替換的時序數據則可以保存在目標數據表之外的至少一個數據存儲塊中,當需要查詢第一對象的時序數據時,只需要在目標數據表中獲取到第一對象對應的時序數據,進而,可以直接在位置索引表中第一對象對應的第一存儲位置中記錄的存儲位置,查詢第一對象的其他時序數據,無需對目標數據表進行逐行查看,從而,提高了時序數據的查詢效率。
需要說明的是:上述實施例提供的時序數據管理裝置在實現(xiàn)時序數據管理時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將設備的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的時序數據管理裝置與時序數據管理方法實施例屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的一個實施例,并不用以限制本發(fā)明,凡在本申請的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本申請的保護范圍之內。