式中,數(shù)據(jù)對(duì)象是多維數(shù)據(jù)庫(kù),W及基于第一查詢獲取第 一標(biāo)準(zhǔn)包括;基于多維數(shù)據(jù)庫(kù)中與第一查詢相對(duì)應(yīng)的至少一個(gè)維度獲取第一標(biāo)準(zhǔn)。在針對(duì) 多維數(shù)據(jù)庫(kù)進(jìn)行查詢時(shí)可能會(huì)涉及到多個(gè)維度,例如,可W查詢第1-U個(gè)電表在每周之內(nèi) 采集到的數(shù)據(jù),此時(shí)可W將第1-U個(gè)電表在每周內(nèi)采集到的數(shù)據(jù)排列在一起,W便在獲得 較高的查詢效率。根據(jù)數(shù)據(jù)存儲(chǔ)系統(tǒng)的功能,可W按照查詢所涉及的多個(gè)維度來(lái)將數(shù)據(jù)對(duì) 象進(jìn)行排序。
[0050] 在本發(fā)明的一個(gè)實(shí)施方式中,響應(yīng)于接收到數(shù)據(jù)對(duì)象,基于第一查詢將數(shù)據(jù)對(duì)象 中的數(shù)據(jù)記錄排序W形成第一備份包括:按照數(shù)據(jù)存儲(chǔ)系統(tǒng)支持的塊大小,將排序后的數(shù) 據(jù)記錄劃分為多個(gè)數(shù)據(jù)塊;W及基于多個(gè)數(shù)據(jù)塊形成第一備份。
[0051] 在存儲(chǔ)系統(tǒng)中W數(shù)據(jù)塊為單位來(lái)存儲(chǔ)數(shù)據(jù),因而可W基于數(shù)據(jù)塊來(lái)組織排序后的 數(shù)據(jù)記錄。假設(shè)數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)塊的大小為64M,并且如圖3中所示的備份330中 與每個(gè)電表1D相關(guān)聯(lián)的數(shù)據(jù)記錄的總?cè)萘繛?4M,則可W在每個(gè)數(shù)據(jù)塊中存儲(chǔ)關(guān)于一個(gè)電 表1D的所有數(shù)據(jù)。假設(shè)共存在10個(gè)電表,則10個(gè)數(shù)據(jù)塊一起構(gòu)成第一備份。
[0052] 盡管在上文中僅示意性示出了關(guān)于每個(gè)電表的數(shù)據(jù)記錄總?cè)萘壳『脼?4M的情 況,本領(lǐng)域技術(shù)人員還可W理解,當(dāng)總?cè)萘坎蛔慊蛘叱^(guò)64M時(shí),也可W采用本發(fā)明的實(shí)施 方式。例如,假設(shè)關(guān)于每個(gè)電表的數(shù)據(jù)記錄的總?cè)萘渴?0M,可W利用一個(gè)數(shù)據(jù)塊來(lái)存儲(chǔ)關(guān) 于一個(gè)電表的數(shù)據(jù)。具體地,可W將剩余的4M空間閑置或者還可W將其用于存儲(chǔ)用于下一 電表的數(shù)據(jù)。又例如,假設(shè)關(guān)于每個(gè)電表的數(shù)據(jù)記錄的總?cè)萘繛?00M,則可W在兩個(gè)或者更 多的數(shù)據(jù)塊中存儲(chǔ)關(guān)于一個(gè)電表的數(shù)據(jù)。
[0053] 在本發(fā)明的一個(gè)實(shí)施方式中,還可W在索引中存儲(chǔ)每個(gè)數(shù)據(jù)塊的地址,W便響應(yīng) 于接收到查詢而快速地定位滿足查詢條件的數(shù)據(jù)塊。本領(lǐng)域技術(shù)人員可W基于具體應(yīng)用環(huán) 境的要求來(lái)實(shí)現(xiàn)。
[0054] 在本發(fā)明的一個(gè)實(shí)施方式中,進(jìn)一步包括:基于第二查詢將數(shù)據(jù)對(duì)象中的數(shù)據(jù)記 錄排序W形成第二備份;在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)第二備份;W及在數(shù)據(jù)存儲(chǔ)系統(tǒng)的索引中 存儲(chǔ)第二查詢W及第二備份在數(shù)據(jù)存儲(chǔ)系統(tǒng)中的第二地址。
[0055] 為了進(jìn)一步提高數(shù)據(jù)查詢效率,可W在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)數(shù)據(jù)對(duì)象的多個(gè)備 份,并且該多個(gè)備份中的每個(gè)備份都是按照一個(gè)查詢來(lái)將數(shù)據(jù)對(duì)象中的數(shù)據(jù)記錄進(jìn)行排序 后形成的。在執(zhí)行查詢時(shí),可W與查詢相對(duì)應(yīng)的備份,進(jìn)而提高查詢的效率。
[0056] 圖5示意性示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的用于管理數(shù)據(jù)存儲(chǔ)系統(tǒng)的技術(shù)方 案的框圖500。在該數(shù)據(jù)存儲(chǔ)系統(tǒng)中,管理節(jié)點(diǎn)210可W管理各個(gè)數(shù)據(jù)節(jié)點(diǎn),如數(shù)據(jù)節(jié)點(diǎn) 1220、數(shù)據(jù)節(jié)點(diǎn)2230、…、數(shù)據(jù)節(jié)點(diǎn)N240,并且還可W維護(hù)記錄了各個(gè)查詢與相應(yīng)的備份之 間的映射關(guān)系的索引510。不同于如圖2所示的技術(shù)方案,在圖5所示的實(shí)施方式中,各個(gè) 數(shù)據(jù)節(jié)點(diǎn)中存儲(chǔ)的備份(即,第一備份522、第二備份532、第N文件542)并不相同,而是分 別基于不同的查詢來(lái)將數(shù)據(jù)對(duì)象中的數(shù)據(jù)記錄進(jìn)行排序后形成的備份。
[0057] 如圖5所示,可W按照第一數(shù)據(jù)表524的格式存儲(chǔ)第一備份522,并且該第一備份 522對(duì)應(yīng)于第一查詢520。還可W按照第二數(shù)據(jù)表534所示的格式存儲(chǔ)第二備份532,并且 該第二備份532對(duì)應(yīng)于第二查詢530。W此方式,可W在接收到不同的查詢時(shí)將查詢引導(dǎo)至 相應(yīng)的備份,W便提高查詢效率。相對(duì)于現(xiàn)有技術(shù)中在各個(gè)數(shù)據(jù)節(jié)點(diǎn)中存儲(chǔ)相同備份的技 術(shù)方案,采用本發(fā)明的技術(shù)方案,可W在提高數(shù)據(jù)可靠性的同時(shí)提高數(shù)據(jù)查詢效率。
[0058] 應(yīng)當(dāng)注意,盡管在圖5中參見(jiàn)分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的應(yīng)用環(huán)境來(lái)描述了本發(fā)明的 各個(gè)實(shí)施方式,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明的各個(gè)實(shí)施方式并不僅限于應(yīng)用于分布 式數(shù)據(jù)存儲(chǔ)環(huán)境,而是還可W應(yīng)用于其他數(shù)據(jù)存儲(chǔ)環(huán)境中。例如,可W在一個(gè)數(shù)據(jù)服務(wù)器上 存儲(chǔ)基于多個(gè)查詢而生成的多個(gè)備份,盡管此時(shí)多個(gè)備份將會(huì)占據(jù)額外的存儲(chǔ)空間,然而 將不同的查詢引導(dǎo)至不同的備份可W大大提高查詢效率。又例如,本發(fā)明還可W在虛擬機(jī) 的環(huán)境中運(yùn)行,例如,如圖5中所示的管理節(jié)點(diǎn)210和各個(gè)數(shù)據(jù)節(jié)點(diǎn)220-240可W是虛擬 機(jī)。
[0059] 在上文中已經(jīng)介紹了在多個(gè)數(shù)據(jù)節(jié)點(diǎn)中存儲(chǔ)對(duì)應(yīng)于多個(gè)查詢的多個(gè)備份,盡管多 個(gè)備份中的數(shù)據(jù)記錄是相同的,然而數(shù)據(jù)記錄的排列順序有所不同。因而,在一個(gè)數(shù)據(jù)節(jié)點(diǎn) 中的備份被損壞或者更新時(shí),還需要附加處理過(guò)程。
[0060] 在本發(fā)明的一個(gè)實(shí)施方式中,進(jìn)一步包括:獲得第一備份中的數(shù)據(jù)塊與第二備份 中的數(shù)據(jù)塊的映射關(guān)系;W及響應(yīng)于第一備份被損壞,基于映射文件從第二備份中恢復(fù)第 一備份。在本發(fā)明的一個(gè)實(shí)施方式中,第一備份和第二備份中內(nèi)容在整體上是相同的,不同 之處在于數(shù)據(jù)記錄的排序不同,因而導(dǎo)致了第一備份和第二備份中的數(shù)據(jù)塊之間可W具有 映射關(guān)系。例如,第一備份中的數(shù)據(jù)塊A可W對(duì)應(yīng)于第二備份中的數(shù)據(jù)塊B。此時(shí),當(dāng)?shù)谝?備份中的數(shù)據(jù)塊A被損壞時(shí)可W利用第二備份中的數(shù)據(jù)塊B來(lái)恢復(fù)該數(shù)據(jù)塊A。
[0061] 在本發(fā)明的一個(gè)實(shí)施方式中,響應(yīng)于第一備份被損壞,基于映射關(guān)系從第二備份 中恢復(fù)第一備份包括:基于映射關(guān)系,在第二備份中查找與第一備份中被損壞的第一備份 塊相對(duì)應(yīng)的第二備份塊;W及拷貝第二備份塊W替換被損壞的第一備份塊。
[0062] 在下文中將參見(jiàn)圖6詳細(xì)描述恢復(fù)步驟的具體細(xì)節(jié)。圖6示意性示出了根據(jù)本發(fā) 明一個(gè)實(shí)施方式的用于恢復(fù)數(shù)據(jù)存儲(chǔ)系統(tǒng)中的文件的示意圖600。如圖6所示,第一備份 610包括多個(gè)數(shù)據(jù)塊A11-A23,并且第二備份620包括多個(gè)數(shù)據(jù)塊B11-B23,第一備份中的數(shù) 據(jù)塊和第二備份中的數(shù)據(jù)塊的映射關(guān)系如表630所示。當(dāng)?shù)谝粋浞葜械臄?shù)據(jù)塊A22( W陰 影示出)被損壞時(shí),基于映射關(guān)系630可知,第一備份610中的數(shù)據(jù)塊A22對(duì)應(yīng)于第二備份 620中的數(shù)據(jù)塊B23。因而,可W直接拷貝數(shù)據(jù)塊B23 W覆蓋損壞的數(shù)據(jù)塊A22。
[0063] 在上文中已經(jīng)參見(jiàn)附圖詳細(xì)示出了恢復(fù)操作的具體步驟,在下文中將描述當(dāng)數(shù)據(jù) 存儲(chǔ)系統(tǒng)中的一個(gè)備份被更新時(shí),如何更新其他備份的操作。在本發(fā)明的一個(gè)實(shí)施方式中, 進(jìn)一步包括;獲得第一備份中的數(shù)據(jù)塊與第二備份中的數(shù)據(jù)塊的映射關(guān)系;W及響應(yīng)于第 二備份被更新,基于映射關(guān)系利用已更新的第二備份來(lái)更新第一備份。
[0064] 更新操作類(lèi)似于恢復(fù)操作,在已經(jīng)知曉第一備份和第二備份中的數(shù)據(jù)塊的映射關(guān) 系的情況下,在第二備份被更新的情況下可W基于該映射關(guān)系來(lái)查找需要更新第一備份中 的哪部分,進(jìn)而進(jìn)行更新。具體地,參見(jiàn)圖6的示例,假設(shè)第二備份620中的數(shù)據(jù)塊B23被 更新,并且第二備份620中的數(shù)據(jù)塊B23對(duì)應(yīng)于第一備份610中的數(shù)據(jù)塊A22,則此時(shí)可W 拷貝數(shù)據(jù)塊B23 W覆蓋數(shù)據(jù)塊A22。W此方式,可W將數(shù)據(jù)存儲(chǔ)系統(tǒng)中的各個(gè)備份保持最 新。
[0065] 在本發(fā)明的一個(gè)實(shí)施方式中,數(shù)據(jù)存儲(chǔ)系統(tǒng)是化doop分布式文件系統(tǒng)?;痙oop分 布式文件系統(tǒng)是目前的一種流行的數(shù)據(jù)存儲(chǔ)系統(tǒng),該系統(tǒng)可W在多個(gè)數(shù)據(jù)節(jié)點(diǎn)中保存數(shù)據(jù) 對(duì)象的多個(gè)備份,因而可W提供較高的可靠性。通過(guò)在化doop分布式文件系統(tǒng)中應(yīng)用本發(fā) 明的技術(shù)方案,可W在各個(gè)數(shù)據(jù)節(jié)點(diǎn)中保存基于不同查詢而將數(shù)據(jù)對(duì)象中的數(shù)據(jù)記錄重新 排序后生成的備份。W此方式,可W在確??煽啃缘那疤嵯绿岣邤?shù)據(jù)查詢效率。
[0066] 在上文中已經(jīng)參見(jiàn)附圖描述了如何管理數(shù)據(jù)存儲(chǔ)系統(tǒng),在下文中將詳細(xì)描述如何 在本發(fā)明所述的數(shù)據(jù)存儲(chǔ)系統(tǒng)中執(zhí)行查詢。具體地,在本發(fā)明的一個(gè)實(shí)施方式中,提供了一 種用于查詢數(shù)據(jù)存儲(chǔ)系統(tǒng)的方法,包括:接收針對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)的查詢;W及響應(yīng)于數(shù)據(jù) 存儲(chǔ)系統(tǒng)的索引中存在與查詢相匹配的查詢,訪問(wèn)數(shù)據(jù)存儲(chǔ)系統(tǒng)中與相匹配的查詢相關(guān)聯(lián) 的地址W執(zhí)行查詢;其中數(shù)據(jù)存儲(chǔ)系統(tǒng)是根據(jù)本發(fā)明的方法管理的數(shù)據(jù)存儲(chǔ)系統(tǒng)。
[0067] 在已經(jīng)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中保存了基于不同查詢生成的備份的情況下,可W基于索 引來(lái)搜索在數(shù)據(jù)存儲(chǔ)系統(tǒng)中是否存在與接收到的查詢相匹配的備份。例如,在數(shù)據(jù)存儲(chǔ)系 統(tǒng)中已經(jīng)存儲(chǔ)了如圖5中的第一備份522和第二備份532,并且在索引中已經(jīng)記載了分別與 兩個(gè)備份相關(guān)聯(lián)的第一查詢520和第二查詢530。此時(shí),當(dāng)接收到類(lèi)似于第一查詢520的查 詢時(shí),可W在第一備份522中執(zhí)行查詢,當(dāng)接收到類(lèi)似于第二查詢530的查詢時(shí),則可W在 第二備份532中執(zhí)行查詢,W便提高查詢效率。
[0068] 在本發(fā)明的一個(gè)實(shí)施方式中,進(jìn)一步包括:響應(yīng)于數(shù)據(jù)存儲(chǔ)系統(tǒng)的索引中不存在 與查詢相匹配的查詢,訪問(wèn)數(shù)據(jù)存儲(chǔ)系統(tǒng)中與任一查詢相關(guān)聯(lián)的地址W執(zhí)行查詢。換言之, 當(dāng)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中不存在匹配于接收到的查詢的備份時(shí),則可W在存儲(chǔ)系統(tǒng)中的任一備 份中執(zhí)行查詢。由于數(shù)據(jù)存儲(chǔ)系統(tǒng)中的各個(gè)備份是基于數(shù)據(jù)存儲(chǔ)系統(tǒng)的功能和/或歷