本公開涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及數(shù)據(jù)庫(kù)歸檔方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的快速發(fā)展,數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)越來越多。某些互聯(lián)網(wǎng)應(yīng)用,每天大量的訪問量或業(yè)務(wù)量給數(shù)據(jù)庫(kù)的I/O性能帶來巨大的壓力,嚴(yán)重影響到業(yè)務(wù)的穩(wěn)定性和擴(kuò)展性,尤其是對(duì)數(shù)據(jù)一致性、隔離性、持久性要求很高的業(yè)務(wù),如在線支付業(yè)務(wù),數(shù)據(jù)庫(kù)的不穩(wěn)定有可能帶來災(zāi)難性的損失,同時(shí)低效的數(shù)據(jù)庫(kù)讀寫性能給用戶帶來糟糕的用戶體驗(yàn)。因此數(shù)據(jù)庫(kù)歸檔是互聯(lián)網(wǎng)企業(yè)解決日益增長(zhǎng)的海量數(shù)據(jù)的關(guān)鍵。
目前,可以將源數(shù)據(jù)庫(kù)中的數(shù)據(jù)備份到目標(biāo)數(shù)據(jù)庫(kù),并刪除源數(shù)據(jù)庫(kù)中已備份的數(shù)據(jù),從而實(shí)現(xiàn)提升系統(tǒng)性能。然而歷史數(shù)據(jù)有可能在未來某一時(shí)刻被用到,此時(shí)無法從源數(shù)據(jù)庫(kù)中查詢到已刪除數(shù)據(jù),直接從目標(biāo)數(shù)據(jù)庫(kù)中查詢所需數(shù)據(jù)時(shí),由于目標(biāo)數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)量大,從而導(dǎo)致查詢效率低。
技術(shù)實(shí)現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本公開提供了數(shù)據(jù)庫(kù)歸檔方法及系統(tǒng)。
根據(jù)本公開實(shí)施例的第一方面,提供一種數(shù)據(jù)庫(kù)歸檔方法,所述方法包括:
根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,所述備份任務(wù)包括用于篩選出源數(shù)據(jù)庫(kù)中待歸檔的目標(biāo)數(shù)據(jù)的篩選信息、所述目標(biāo)數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的目標(biāo)位置以及鍵值生成方式;
根據(jù)所述篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù);
根據(jù)所述目標(biāo)數(shù)據(jù)和所述鍵值生成方式確定目標(biāo)鍵值;
根據(jù)所述目標(biāo)鍵值將所述目標(biāo)數(shù)據(jù)歸檔到所述分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,所述目標(biāo)鍵值用于查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
可選的,所述方法還包括:
通過預(yù)設(shè)查詢接口基于所述目標(biāo)鍵值從所述分布式數(shù)據(jù)庫(kù)中查詢所歸檔的目標(biāo)數(shù)據(jù)。
可選的,所述方法還包括:
在執(zhí)行所述備份任務(wù)過程中,基于所述源數(shù)據(jù)庫(kù)中所述目標(biāo)數(shù)據(jù)的表結(jié)構(gòu),將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在關(guān)系型的中轉(zhuǎn)數(shù)據(jù)庫(kù)中;
在內(nèi)置備份任務(wù)中的文件備份時(shí)間到達(dá)時(shí),根據(jù)所述內(nèi)置備份任務(wù)將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)表中的數(shù)據(jù)生成對(duì)應(yīng)的文件,將所生成文件存儲(chǔ)到分布式文件系統(tǒng)中,并將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中所述數(shù)據(jù)表中的數(shù)據(jù)刪除。
可選的,所述方法還包括:
根據(jù)所述內(nèi)置備份任務(wù)和所述備份任務(wù)將所述分布式文件系統(tǒng)中的文件恢復(fù)至源數(shù)據(jù)庫(kù)中。
可選的,所述預(yù)配置的備份任務(wù)是預(yù)配置的歸檔任務(wù)中任務(wù)類型為備份的任務(wù),所述歸檔任務(wù)還包括任務(wù)類型為刪除的刪除任務(wù),所述刪除任務(wù)用于刪除源數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
可選的,所述方法還包括:
在歸檔任務(wù)配置完成后,模擬并輸出所述歸檔任務(wù)的執(zhí)行過程;
和/或,
在歸檔任務(wù)執(zhí)行過程中,記錄執(zhí)行所述歸檔任務(wù)時(shí)產(chǎn)生的信息,所述信息至少包括執(zhí)行歸檔任務(wù)的結(jié)果、執(zhí)行歸檔任務(wù)的流程、執(zhí)行歸檔任務(wù)耗費(fèi)的時(shí)間中的一種或多種。
可選的,所述方法還包括:
在歸檔任務(wù)執(zhí)行過程中,執(zhí)行歸檔任務(wù)的結(jié)果為失敗或異常時(shí),輸出失敗或異常的報(bào)警信息。
根據(jù)本公開實(shí)施例的第二方面,提供一種數(shù)據(jù)庫(kù)歸檔系統(tǒng),包括:
線程啟動(dòng)模塊,被配置為根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,所述備份任務(wù)包括用于篩選出源數(shù)據(jù)庫(kù)中待歸檔的目標(biāo)數(shù)據(jù)的篩選信息、所述目標(biāo)數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的目標(biāo)位置以及鍵值生成方式;
數(shù)據(jù)獲取模塊,被配置為根據(jù)所述篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù);
鍵值確定模塊,被配置為根據(jù)所述目標(biāo)數(shù)據(jù)和所述鍵值生成方式確定目標(biāo)鍵值;
數(shù)據(jù)歸檔模塊,被配置為根據(jù)所述目標(biāo)鍵值將所述目標(biāo)數(shù)據(jù)歸檔到所述分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,所述目標(biāo)鍵值用于查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
可選的,所述系統(tǒng)還包括:
數(shù)據(jù)查詢模塊,被配置為通過預(yù)設(shè)查詢接口基于所述目標(biāo)鍵值從所述分布式數(shù)據(jù)庫(kù)中查詢所歸檔的目標(biāo)數(shù)據(jù)。
可選的,所述系統(tǒng)還包括:
數(shù)據(jù)中轉(zhuǎn)模塊,被配置為在執(zhí)行所述備份任務(wù)過程中,基于所述源數(shù)據(jù)庫(kù)中所述目標(biāo)數(shù)據(jù)的表結(jié)構(gòu),將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在關(guān)系型的中轉(zhuǎn)數(shù)據(jù)庫(kù)中;
文件備份模塊,被配置為在內(nèi)置備份任務(wù)中的文件備份時(shí)間到達(dá)時(shí),根據(jù)所述內(nèi)置備份任務(wù)將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)表中的數(shù)據(jù)生成對(duì)應(yīng)的文件,將所生成文件存儲(chǔ)到分布式文件系統(tǒng)中,并將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中所述數(shù)據(jù)表中的數(shù)據(jù)刪除。
可選的,所述系統(tǒng)還包括:
數(shù)據(jù)恢復(fù)模塊,被配置為根據(jù)所述內(nèi)置備份任務(wù)和所述備份任務(wù)將所述分布式文件系統(tǒng)中的文件恢復(fù)至源數(shù)據(jù)庫(kù)中。
可選的,所述預(yù)配置的備份任務(wù)是預(yù)配置的歸檔任務(wù)中任務(wù)類型為備份的任務(wù),所述歸檔任務(wù)還包括任務(wù)類型為刪除的刪除任務(wù),所述刪除任務(wù)用于刪除源數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
可選的,所述系統(tǒng)還包括:
預(yù)覽模塊,被配置為在歸檔任務(wù)配置完成后,模擬并輸出所述歸檔任務(wù)的執(zhí)行過程;
和/或,
信息記錄模塊,被配置為在歸檔任務(wù)執(zhí)行過程中,記錄執(zhí)行所述歸檔任務(wù)時(shí)產(chǎn)生的信息,所述信息至少包括執(zhí)行歸檔任務(wù)的結(jié)果、執(zhí)行歸檔任務(wù)的流程、執(zhí)行歸檔任務(wù)耗費(fèi)的時(shí)間中的一種或多種。
可選的,所述系統(tǒng)還包括:
報(bào)警模塊,被配置為在歸檔任務(wù)執(zhí)行過程中,執(zhí)行歸檔任務(wù)的結(jié)果為失敗或異常時(shí),輸出失敗或異常的報(bào)警信息。
根據(jù)本公開實(shí)施例的第三方面,提供一種數(shù)據(jù)庫(kù)歸檔系統(tǒng),包括:
處理器;
用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
其中,所述處理器被配置為:
根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,所述備份任務(wù)包括用于篩選出源數(shù)據(jù)庫(kù)中待歸檔的目標(biāo)數(shù)據(jù)的篩選信息、所述目標(biāo)數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的目標(biāo)位置以及鍵值生成方式;
根據(jù)所述篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù);
根據(jù)所述目標(biāo)數(shù)據(jù)和所述鍵值生成方式確定目標(biāo)鍵值;
根據(jù)所述目標(biāo)鍵值將所述目標(biāo)數(shù)據(jù)歸檔到所述分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,所述目標(biāo)鍵值用于查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
本公開的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
本公開根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,利用備份任務(wù)中的篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù),并根據(jù)目標(biāo)數(shù)據(jù)和備份任務(wù)中的鍵值生成方式確定目標(biāo)鍵值,根據(jù)目標(biāo)鍵值將目標(biāo)數(shù)據(jù)歸檔到分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,從而可以根據(jù)目標(biāo)鍵值查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù),由于分布式數(shù)據(jù)庫(kù)的處理能力強(qiáng),并采用了鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù),因此可以實(shí)現(xiàn)即時(shí)查詢數(shù)據(jù),提高查詢數(shù)據(jù)的效率。
本公開可以通過調(diào)用預(yù)設(shè)的查詢接口,根據(jù)目標(biāo)鍵值查詢到相應(yīng)的目標(biāo)數(shù)據(jù),從而實(shí)現(xiàn)即時(shí)查詢。
本公開內(nèi)置一個(gè)備份任務(wù),該內(nèi)置備份任務(wù)可以在文件備份時(shí)間到達(dá)時(shí),將中轉(zhuǎn)數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)表中的數(shù)據(jù)生成對(duì)應(yīng)的文件,并存儲(chǔ)到分布式文件系統(tǒng)中,實(shí)現(xiàn)批量備份到分布式文件系統(tǒng)中。將中轉(zhuǎn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)批量備份到分布式文件系統(tǒng)中,并將中轉(zhuǎn)數(shù)據(jù)庫(kù)中數(shù)據(jù)表中的數(shù)據(jù)刪除,可以避免中轉(zhuǎn)數(shù)據(jù)庫(kù)存儲(chǔ)容量有限的缺陷,并且避免了數(shù)據(jù)丟失。
本公開不僅對(duì)源數(shù)據(jù)中刪除的數(shù)據(jù)任意時(shí)刻可讀,還可以恢復(fù)數(shù)據(jù),從而使刪除的數(shù)據(jù)不會(huì)成為無效數(shù)據(jù)。
本公開可以通過歸檔任務(wù)中的任務(wù)類型區(qū)分當(dāng)前歸檔任務(wù)是備份任務(wù),或是刪除任務(wù),從而實(shí)現(xiàn)備份和刪除分離,用戶配置靈活。
本公開通過模擬歸檔任務(wù)的執(zhí)行過程,并將執(zhí)行過程輸出,用戶可以預(yù)覽配置任務(wù)的執(zhí)行過程,避免由于配置出錯(cuò)而直接執(zhí)行歸檔任務(wù)導(dǎo)致的損失。
本公開通過實(shí)時(shí)記錄執(zhí)行歸檔任務(wù)時(shí)產(chǎn)生的信息,用戶可以通過查詢等手段了解到每個(gè)歸檔任務(wù)的執(zhí)行過程,使源數(shù)據(jù)的刪除和備份完全透明。
本公開在歸檔任務(wù)的結(jié)果為失敗或異常時(shí),及時(shí)通知相應(yīng)負(fù)責(zé)人,以便負(fù)責(zé)人對(duì)歸檔任務(wù)做出調(diào)整,最大可能性確保數(shù)據(jù)的安全性。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實(shí)施例,并與說明書一起用于解釋本公開的原理。
圖1是本公開根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)庫(kù)歸檔方法的流程圖。
圖2是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔方法的流程圖。
圖3是本公開根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖。
圖4是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖。
圖5是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖。
圖6是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖。
圖7是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖。
圖8是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖。
圖9是本公開根據(jù)一示例性實(shí)施例示出的一種用于數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本公開相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
在本公開使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本公開。在本公開和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本公開可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本公開范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。
為了緩解源數(shù)據(jù)庫(kù)的存儲(chǔ)壓力,提高在線處理效率,可以進(jìn)行數(shù)據(jù)庫(kù)歸檔。數(shù)據(jù)庫(kù)歸檔是將不經(jīng)常使用的數(shù)據(jù)移到一個(gè)單獨(dú)的存儲(chǔ)設(shè)備來進(jìn)行長(zhǎng)期保存的過程。為了解決相關(guān)技術(shù)中查詢效率低的問題,本公開提供一種數(shù)據(jù)庫(kù)歸檔方法,通過源數(shù)據(jù)庫(kù)中的數(shù)據(jù)備份到分布式數(shù)據(jù)庫(kù)中,并利用鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù),從而可以提高數(shù)據(jù)處理能力,進(jìn)而提高查詢效率。
如圖1所示,圖1是本公開根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)庫(kù)歸檔方法的流程圖,包括以下步驟101至步驟104:
在步驟101中,根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,所述備份任務(wù)包括用于篩選出源數(shù)據(jù)庫(kù)中待歸檔的目標(biāo)數(shù)據(jù)的篩選信息、所述目標(biāo)數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的目標(biāo)位置以及鍵值生成方式。
在步驟102中,根據(jù)所述篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
在步驟103中,根據(jù)所述目標(biāo)數(shù)據(jù)和所述鍵值生成方式確定目標(biāo)鍵值。
在步驟104中,根據(jù)所述目標(biāo)鍵值將所述目標(biāo)數(shù)據(jù)歸檔到所述分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,所述目標(biāo)鍵值用于查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
其中,備份任務(wù)是預(yù)先配置的任務(wù),不同源數(shù)據(jù)庫(kù)的負(fù)責(zé)人可以根據(jù)各自需求配置不同的備份任務(wù),從而實(shí)現(xiàn)靈活配置。各業(yè)務(wù)負(fù)責(zé)人直接在管理后臺(tái)配置自己所管理的數(shù)據(jù)庫(kù)表的備份任務(wù),且業(yè)務(wù)負(fù)責(zé)人相比數(shù)據(jù)庫(kù)管理員更清楚數(shù)據(jù)的意義,可以靈活、有選擇性地備份某一類數(shù)據(jù)。步驟101至104介紹了備份任務(wù)的執(zhí)行過程。
備份任務(wù)中至少包括用于篩選出源數(shù)據(jù)庫(kù)中待歸檔的目標(biāo)數(shù)據(jù)的篩選信息、所述目標(biāo)數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的目標(biāo)位置以及鍵值生成方式。
目標(biāo)數(shù)據(jù)是指需要?dú)w檔的數(shù)據(jù)。篩選信息是用于從源數(shù)據(jù)庫(kù)中篩選出目標(biāo)數(shù)據(jù)的信息,即確定了目標(biāo)數(shù)據(jù)的來源。由于不同的業(yè)務(wù)可以對(duì)應(yīng)不同的服務(wù)器,同一服務(wù)器中可以包括多個(gè)數(shù)據(jù)庫(kù),同一個(gè)數(shù)據(jù)庫(kù)中可以包括多個(gè)數(shù)據(jù)表,因此,篩選信息可以包括目標(biāo)數(shù)據(jù)所屬業(yè)務(wù)對(duì)應(yīng)的服務(wù)器的標(biāo)識(shí)、目標(biāo)數(shù)據(jù)所屬源數(shù)據(jù)庫(kù)的標(biāo)識(shí)、目標(biāo)數(shù)據(jù)所在數(shù)據(jù)表的標(biāo)識(shí)。例如,篩選信息可以包括服務(wù)器名、數(shù)據(jù)庫(kù)名、數(shù)據(jù)表名等。
進(jìn)一步的,還可以通過設(shè)置篩選條件篩選出具有某特征的一類數(shù)據(jù),即篩選信息中還可以包括篩選條件。舉例,篩選條件可以是基于時(shí)間的查詢條件,則篩選出滿足時(shí)間條件的數(shù)據(jù)作為目標(biāo)數(shù)據(jù),如篩選出數(shù)據(jù)庫(kù)A中表A1中2015年1月1號(hào)到2015年12月31號(hào)的數(shù)據(jù)。又如,篩選條件還可以是滿足某一業(yè)務(wù)特征的查詢條件,篩選出滿足查詢條件的數(shù)據(jù)作為目標(biāo)數(shù)據(jù)。如,篩選出數(shù)據(jù)庫(kù)A中表A1中的交易歷史數(shù)據(jù)。
在備份任務(wù)中還需指定目標(biāo)數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的位置,將該位置稱為目標(biāo)位置,即確定了目標(biāo)數(shù)據(jù)的去向??梢姡鶕?jù)來源和去向可以實(shí)現(xiàn)將需要備份的目標(biāo)數(shù)據(jù)備份到分布式數(shù)據(jù)庫(kù)中的指定位置。分布式數(shù)據(jù)庫(kù)比傳統(tǒng)數(shù)據(jù)庫(kù)處理能力強(qiáng),并且數(shù)據(jù)容量大。在一個(gè)可選的實(shí)現(xiàn)方式中,分布式數(shù)據(jù)庫(kù)可以是HBase(Hadoop Database)數(shù)據(jù)庫(kù)。HBase是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),通過HBase數(shù)據(jù)庫(kù)備份源數(shù)據(jù)庫(kù)中的數(shù)據(jù)可以提高處理能力,方便后續(xù)查詢。
為了能實(shí)現(xiàn)查詢目標(biāo)數(shù)據(jù),本實(shí)施例利用鍵值對(duì)(key-value)的方式將目標(biāo)數(shù)據(jù)存儲(chǔ)在分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中。具體的,備份任務(wù)中可以包括鍵值生成方式,在獲取到目標(biāo)數(shù)據(jù)后,可以根據(jù)目標(biāo)數(shù)據(jù)和鍵值生成方式確定目標(biāo)鍵值,然后將目標(biāo)鍵值作為key、將目標(biāo)數(shù)據(jù)作為value存放到分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,以便后續(xù)根據(jù)目標(biāo)鍵值查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
在一個(gè)可選的實(shí)現(xiàn)方式中,可以預(yù)設(shè)一個(gè)查詢接口,通過預(yù)設(shè)查詢接口基于所述目標(biāo)鍵值從所述分布式數(shù)據(jù)庫(kù)中查詢所歸檔的目標(biāo)數(shù)據(jù)。可見,任何人可以通過調(diào)用預(yù)設(shè)的查詢接口,根據(jù)目標(biāo)鍵值查詢到相應(yīng)的目標(biāo)數(shù)據(jù),從而實(shí)現(xiàn)即時(shí)查詢。
本公開列舉一個(gè)具體示例進(jìn)行說明,例如,有一張?jiān)幢砻麨閙ysql_charge,里面有4個(gè)字段:
用戶賬號(hào)user_id,充值狀態(tài)charge_status,充值時(shí)間charge_time,充值單號(hào)charge_order_id
備份任務(wù)中指定HBase數(shù)據(jù)庫(kù)中的目標(biāo)位置為hbase_charge,鍵值生成方式userId和charge_time的組合,如果源表mysql_charge有2條記錄:
A(10000,success,2016-07-01 12:00:00,2016070112000034827348)
B(10001,success,2016-07-02 13:00:00,2016070213000034827349)
因此,在備份時(shí)根據(jù)指定的鍵值生成方式用10000_2016-07-01 12:00:00作為key,A作為value存放到HBase數(shù)據(jù)庫(kù)的hbase_charge表;用10001_2016-07-0112:00:00作為key,B作為value存放到HBase數(shù)據(jù)庫(kù)的hbase_charge表。
后續(xù)需要查用戶10000在2016年7月份的所有充值記錄時(shí),可以用10000_2016-07*和10000_2016-08-01*作為查詢條件,就可以查到10000七月份的所有充值記錄。
由上述實(shí)施例可見,本公開根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,利用備份任務(wù)中的篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù),并根據(jù)目標(biāo)數(shù)據(jù)和備份任務(wù)中的鍵值生成方式確定目標(biāo)鍵值,根據(jù)目標(biāo)鍵值將目標(biāo)數(shù)據(jù)歸檔到分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,從而可以根據(jù)目標(biāo)鍵值查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù),由于分布式數(shù)據(jù)庫(kù)的處理能力強(qiáng),并采用了鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù),因此可以實(shí)現(xiàn)即時(shí)查詢數(shù)據(jù),提高查詢數(shù)據(jù)的效率。
在一個(gè)例子中,可以直接根據(jù)目標(biāo)鍵值將目標(biāo)數(shù)據(jù)歸檔到分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中。在另一個(gè)例子中,步驟104可以包括:
基于所述源數(shù)據(jù)庫(kù)中所述目標(biāo)數(shù)據(jù)的表結(jié)構(gòu),將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在關(guān)系型的中轉(zhuǎn)數(shù)據(jù)庫(kù)中;根據(jù)所述目標(biāo)鍵值將中轉(zhuǎn)數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)歸檔到所述分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中。
本實(shí)施例中設(shè)置了一個(gè)中轉(zhuǎn)數(shù)據(jù)庫(kù),按目標(biāo)數(shù)據(jù)在源數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)將目標(biāo)數(shù)據(jù)存儲(chǔ)在中轉(zhuǎn)數(shù)據(jù)庫(kù)中,可以避免數(shù)據(jù)丟失。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述方法還包括:
在執(zhí)行所述備份任務(wù)過程中,基于所述源數(shù)據(jù)庫(kù)中所述目標(biāo)數(shù)據(jù)的表結(jié)構(gòu),將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在關(guān)系型的中轉(zhuǎn)數(shù)據(jù)庫(kù)中。
在內(nèi)置備份任務(wù)中的文件備份時(shí)間到達(dá)時(shí),根據(jù)所述內(nèi)置備份任務(wù)將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)表中的數(shù)據(jù)生成對(duì)應(yīng)的文件,將所生成文件存儲(chǔ)到分布式文件系統(tǒng)中,并將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中所述數(shù)據(jù)表中的數(shù)據(jù)刪除。
在該實(shí)施例中,可以內(nèi)置一個(gè)備份任務(wù),在內(nèi)置備份任務(wù)中的文件備份時(shí)間到達(dá)時(shí),將中轉(zhuǎn)數(shù)據(jù)庫(kù)中每個(gè)表中的數(shù)據(jù)生成對(duì)應(yīng)的文件存儲(chǔ)到分布式文件系統(tǒng)中,并將中轉(zhuǎn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)刪除,實(shí)現(xiàn)將數(shù)據(jù)批量備份到分布式文件系統(tǒng)中。由于中轉(zhuǎn)數(shù)據(jù)庫(kù)的存儲(chǔ)容量有限,將中轉(zhuǎn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)批量備份到分布式文件系統(tǒng)中,并將中轉(zhuǎn)數(shù)據(jù)庫(kù)中所述數(shù)據(jù)表內(nèi)的數(shù)據(jù)刪除,可以避免中轉(zhuǎn)數(shù)據(jù)庫(kù)存儲(chǔ)容量有限的缺陷,并且避免了數(shù)據(jù)丟失。
其中,文件備份時(shí)間是按文件備份周期確定的時(shí)間。文件備份周期可以根據(jù)中轉(zhuǎn)數(shù)據(jù)庫(kù)的存儲(chǔ)容量和從源數(shù)據(jù)庫(kù)備份到中轉(zhuǎn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)量確定。當(dāng)數(shù)據(jù)量較大、存儲(chǔ)容量較小時(shí),可將文件備份周期設(shè)置為較短周期,當(dāng)數(shù)據(jù)量較小、存儲(chǔ)容量較大時(shí),可將文件備份周期設(shè)置為較長(zhǎng)周期。例如,每間隔30天將中轉(zhuǎn)數(shù)據(jù)庫(kù)中每個(gè)表中的數(shù)據(jù)生成對(duì)應(yīng)的文件存儲(chǔ)到分布式文件系統(tǒng)中,并將中轉(zhuǎn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)刪除。
分布式文件系統(tǒng)是一個(gè)處理大規(guī)模數(shù)據(jù)的文件系統(tǒng),將中轉(zhuǎn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)批量備份到分布式文件系統(tǒng)中,可以避免中轉(zhuǎn)數(shù)據(jù)庫(kù)存儲(chǔ)容量有限的缺陷。進(jìn)一步的,分布式存儲(chǔ)系統(tǒng)可以是HDFS(Hadoop Distributed File System)分布式文件系統(tǒng),HDFS分布式文件系統(tǒng)被設(shè)計(jì)成適合運(yùn)行在通用硬件上的分布式文件系統(tǒng)。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。利用HDFS分布式文件系統(tǒng)進(jìn)行備份,可以備份的文件數(shù)量大。
在內(nèi)置備份任務(wù)中,可以通過預(yù)設(shè)定的規(guī)則確定每個(gè)數(shù)據(jù)表的存儲(chǔ)路徑。例如,當(dāng)目標(biāo)數(shù)據(jù)在中轉(zhuǎn)數(shù)據(jù)庫(kù)中的目標(biāo)表名為charge,數(shù)據(jù)時(shí)間是2016年7月份,則可以將該數(shù)據(jù)生成文件后保存到分布式文件系統(tǒng)的backup/2016-07/charge中。又如,當(dāng)目標(biāo)數(shù)據(jù)在中轉(zhuǎn)數(shù)據(jù)庫(kù)中的目標(biāo)表名為trade,數(shù)據(jù)時(shí)間是2016年6月份,則可以將該數(shù)據(jù)生成文件后保存到分布式文件系統(tǒng)的backup/2016-06/trade中。
進(jìn)一步的,還可以根據(jù)所述內(nèi)置備份任務(wù)和所述備份任務(wù)將所述分布式文件系統(tǒng)中的文件恢復(fù)至源數(shù)據(jù)庫(kù)中。
由于可以根據(jù)備份任務(wù)確定數(shù)據(jù)來源和去向,根據(jù)內(nèi)置備份任務(wù)確定文件來源和去向,因此可以根據(jù)內(nèi)置備份任務(wù)將文件反推到中轉(zhuǎn)數(shù)據(jù)庫(kù),并根據(jù)備份任務(wù)中的備份信息反推到源數(shù)據(jù)中,例如根據(jù)數(shù)據(jù)來源和目標(biāo)位置反推到源數(shù)據(jù)中,實(shí)現(xiàn)將分布式文件系統(tǒng)中的文件恢復(fù)至源數(shù)據(jù)庫(kù)中??梢?,本公開不僅對(duì)源數(shù)據(jù)中刪除的數(shù)據(jù)任意時(shí)刻可讀,還可以恢復(fù)數(shù)據(jù),從而使刪除的數(shù)據(jù)不會(huì)成為無效數(shù)據(jù)。
另外,為了緩解源數(shù)據(jù)庫(kù)的存儲(chǔ)壓力,提高在線處理效率,可以將源數(shù)據(jù)庫(kù)中的數(shù)據(jù)刪除。在一個(gè)可選的實(shí)現(xiàn)方式中,備份任務(wù)還包括刪除字段,在步驟104實(shí)現(xiàn)目標(biāo)數(shù)據(jù)的備份后,可以直接刪除已備份的目標(biāo)數(shù)據(jù),從而實(shí)現(xiàn)備份后的數(shù)據(jù)即刻刪除。
在另一個(gè)可選的實(shí)現(xiàn)方式中,所述預(yù)配置的備份任務(wù)是預(yù)配置的歸檔任務(wù)中任務(wù)類型為備份的任務(wù),所述歸檔任務(wù)還包括任務(wù)類型為刪除的刪除任務(wù),所述刪除任務(wù)用于刪除源數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
其中,備份任務(wù)是歸檔任務(wù)中的其中一種任務(wù),歸檔任務(wù)還可以包括刪除任務(wù),通過歸檔任務(wù)中的任務(wù)類型區(qū)分當(dāng)前歸檔任務(wù)是備份任務(wù),或是刪除任務(wù)。
針對(duì)刪除任務(wù),可以根據(jù)預(yù)配置的刪除任務(wù)啟動(dòng)相應(yīng)的刪除線程,所述刪除任務(wù)包括篩選信息,所述篩選信息用于篩選出源數(shù)據(jù)庫(kù)中待刪除數(shù)據(jù);根據(jù)所述篩選信息刪除源數(shù)據(jù)庫(kù)中的待刪除數(shù)據(jù)??梢岳斫獾氖?,待刪除數(shù)據(jù)可以是已備份的目標(biāo)數(shù)據(jù)中的數(shù)據(jù)。針對(duì)不需要備份的數(shù)據(jù),可以根據(jù)刪除任務(wù)直接將未備份的數(shù)據(jù)作為待刪除數(shù)據(jù),并將其刪除。
進(jìn)一步的,歸檔任務(wù)可以是定時(shí)歸檔任務(wù),也可以是一次性歸檔任務(wù),即可以包括定時(shí)備份任務(wù)、定時(shí)刪除任務(wù)、一次性備份任務(wù)、一次性刪除任務(wù)。
歸檔任務(wù)為定時(shí)任務(wù)時(shí),當(dāng)定時(shí)時(shí)間到達(dá)時(shí),可以掃描各歸檔任務(wù),每個(gè)歸檔任務(wù)啟用一個(gè)線程,執(zhí)行相應(yīng)的歸檔任務(wù)。定時(shí)時(shí)間可以是調(diào)度系統(tǒng)設(shè)置的時(shí)間。
例如,可以在每天七點(diǎn)鐘掃描所有已配置好的歸檔任務(wù),當(dāng)判斷歸檔任務(wù)為定時(shí)任務(wù)時(shí),檢測(cè)到歸檔任務(wù)的任務(wù)類型為刪除,有一個(gè)字段表示刪除距今第90天的數(shù)據(jù),有一字段為源數(shù)據(jù)庫(kù)名A,有一個(gè)字段為數(shù)據(jù)表名a,則在執(zhí)行該歸檔任務(wù)時(shí),會(huì)將源數(shù)據(jù)庫(kù)A的數(shù)據(jù)表a中距今第90天的數(shù)據(jù)刪除,每天執(zhí)行該任務(wù),可以使源數(shù)據(jù)庫(kù)中僅保留距今90天的數(shù)據(jù)。檢測(cè)到歸檔任務(wù)的任務(wù)類型為備份,有一個(gè)字段表示備份距今第60天的數(shù)據(jù),有一字段為源數(shù)據(jù)庫(kù)名B,有一個(gè)字段為數(shù)據(jù)表名b,則在執(zhí)行該歸檔任務(wù)時(shí),會(huì)將源數(shù)據(jù)庫(kù)B的數(shù)據(jù)表b中距今第60天的數(shù)據(jù)備份,每天執(zhí)行該任務(wù),可以備份源數(shù)據(jù)庫(kù)中60天以前的數(shù)據(jù)。
歸檔任務(wù)為一次性任務(wù)時(shí),可以在任務(wù)配置成功后即刻執(zhí)行歸檔任務(wù),也可以在接收到用戶觸發(fā)的啟動(dòng)指令時(shí)執(zhí)行歸檔任務(wù),還可以在定時(shí)時(shí)間到達(dá)時(shí)執(zhí)行歸檔任務(wù),已執(zhí)行的一次性任務(wù),可以標(biāo)記為已執(zhí)行,或?qū)⒃撊蝿?wù)刪除。例如,當(dāng)判斷歸檔任務(wù)為一次性任務(wù)時(shí),檢測(cè)到歸檔任務(wù)的任務(wù)類型為刪除,有一個(gè)字段表示刪除距今90天以前的數(shù)據(jù),有一字段為源數(shù)據(jù)庫(kù)名C,有一個(gè)字段為數(shù)據(jù)表名c,則在執(zhí)行該歸檔任務(wù)時(shí),會(huì)將源數(shù)據(jù)庫(kù)C的數(shù)據(jù)表c中距今90天以前的數(shù)據(jù)全部刪除,并將該任務(wù)標(biāo)記為已執(zhí)行,后續(xù)檢測(cè)到該任務(wù)時(shí)不再執(zhí)行。
在一個(gè)可選的實(shí)現(xiàn)方式中,在歸檔任務(wù)配置完成后,模擬并輸出所述歸檔任務(wù)的執(zhí)行過程。
可見,通過模擬歸檔任務(wù)的執(zhí)行過程,并將執(zhí)行過程輸出,用戶可以預(yù)覽配置任務(wù)的執(zhí)行過程,避免由于配置出錯(cuò)而直接執(zhí)行歸檔任務(wù)導(dǎo)致的損失。
在另一個(gè)可選的實(shí)現(xiàn)方式中,在歸檔任務(wù)執(zhí)行過程中,記錄執(zhí)行所述歸檔任務(wù)時(shí)產(chǎn)生的信息,所述信息至少包括執(zhí)行歸檔任務(wù)的結(jié)果、執(zhí)行歸檔任務(wù)的流程、執(zhí)行歸檔任務(wù)耗費(fèi)的時(shí)間中的一種或多種。
可見,通過實(shí)時(shí)記錄執(zhí)行歸檔任務(wù)時(shí)產(chǎn)生的信息,用戶可以通過查詢等手段了解到每個(gè)歸檔任務(wù)的執(zhí)行過程,使源數(shù)據(jù)的刪除和備份完全透明。
進(jìn)一步的,在歸檔任務(wù)執(zhí)行過程中,執(zhí)行歸檔任務(wù)的結(jié)果為失敗或異常時(shí),輸出失敗或異常的報(bào)警信息。輸出方式可以是顯示輸出或語音輸出等。例如,通過預(yù)設(shè)優(yōu)先級(jí)的方式通過郵箱、短信等方式通知相應(yīng)的負(fù)責(zé)人。
可見,在歸檔任務(wù)的結(jié)果為失敗或異常時(shí),及時(shí)通知相應(yīng)負(fù)責(zé)人,以便負(fù)責(zé)人對(duì)歸檔任務(wù)做出調(diào)整,最大可能性確保數(shù)據(jù)的安全性。
以上實(shí)施方式中的各種技術(shù)特征可以任意進(jìn)行組合,只要特征之間的組合不存在沖突或矛盾,但是限于篇幅,未進(jìn)行一一描述,因此上述實(shí)施方式中的各種技術(shù)特征的任意進(jìn)行組合也屬于本說明書公開的范圍。本公開列舉其中一種組合進(jìn)行說明。
如圖2所示,圖2是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔方法的流程圖,包括以下步驟201至步驟205:
在步驟201中,根據(jù)預(yù)配置的歸檔任務(wù)啟動(dòng)相應(yīng)的歸檔線程,所述歸檔任務(wù)指定任務(wù)類型、且用于篩選出源數(shù)據(jù)庫(kù)中待處理數(shù)據(jù)的篩選信息。
在步驟202中,任務(wù)類型為刪除時(shí),根據(jù)所述篩選信息刪除源數(shù)據(jù)庫(kù)中的待處理數(shù)據(jù)。
在步驟203中,任務(wù)類型為備份時(shí),所述歸檔任務(wù)還包括待處理數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的目標(biāo)位置以及鍵值生成方式。根據(jù)所述篩選信息獲取源數(shù)據(jù)庫(kù)中的待處理數(shù)據(jù)?;谒鲈磾?shù)據(jù)庫(kù)中所述待處理數(shù)據(jù)的表結(jié)構(gòu),將所述待處理數(shù)據(jù)存儲(chǔ)在關(guān)系型的中轉(zhuǎn)數(shù)據(jù)庫(kù)中。
在步驟204中,根據(jù)所述待處理數(shù)據(jù)和所述鍵值生成方式確定目標(biāo)鍵值;根據(jù)所述目標(biāo)鍵值將中轉(zhuǎn)數(shù)據(jù)庫(kù)中的待處理數(shù)據(jù)歸檔到所述分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中。
在步驟205中,在內(nèi)置備份任務(wù)中的文件備份時(shí)間到達(dá)時(shí),根據(jù)所述內(nèi)置備份任務(wù)將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)表中的數(shù)據(jù)生成對(duì)應(yīng)的文件,將所生成文件存儲(chǔ)到分布式文件系統(tǒng)中,并將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中所述數(shù)據(jù)表中的數(shù)據(jù)刪除。
由上述實(shí)施例可見,通過源數(shù)據(jù)庫(kù)中的數(shù)據(jù)備份到分布式數(shù)據(jù)庫(kù)中,并利用鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù),從而可以提高數(shù)據(jù)處理能力,進(jìn)而提高查詢效率,同時(shí)將中轉(zhuǎn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)批量備份到分布式文件系統(tǒng)中,并將中轉(zhuǎn)數(shù)據(jù)庫(kù)中已生成文件的目標(biāo)數(shù)據(jù)刪除,可以避免中轉(zhuǎn)數(shù)據(jù)庫(kù)存儲(chǔ)容量有限的缺陷,并且避免了數(shù)據(jù)丟失,還可以實(shí)現(xiàn)數(shù)據(jù)恢復(fù)。
與前述數(shù)據(jù)庫(kù)歸檔方法的實(shí)施例相對(duì)應(yīng),本公開還提供了數(shù)據(jù)庫(kù)歸檔系統(tǒng)及其所應(yīng)用的設(shè)備的實(shí)施例。
如圖3所示,圖3是本公開根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖,所述系統(tǒng)包括:線程啟動(dòng)模塊310、數(shù)據(jù)獲取模塊320、鍵值確定模塊330和數(shù)據(jù)歸檔模塊340。
其中,線程啟動(dòng)模塊310,被配置為根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,所述備份任務(wù)包括用于篩選出源數(shù)據(jù)庫(kù)中待歸檔的目標(biāo)數(shù)據(jù)的篩選信息、所述目標(biāo)數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的目標(biāo)位置以及鍵值生成方式。
數(shù)據(jù)獲取模塊320,被配置為根據(jù)所述篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
鍵值確定模塊330,被配置為根據(jù)所述目標(biāo)數(shù)據(jù)和所述鍵值生成方式確定目標(biāo)鍵值。
數(shù)據(jù)歸檔模塊340,被配置為根據(jù)所述目標(biāo)鍵值將所述目標(biāo)數(shù)據(jù)歸檔到所述分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,所述目標(biāo)鍵值用于查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
由上述實(shí)施例可見,根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,利用備份任務(wù)中的篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù),并根據(jù)目標(biāo)數(shù)據(jù)和備份任務(wù)中的鍵值生成方式確定目標(biāo)鍵值,根據(jù)目標(biāo)鍵值將目標(biāo)數(shù)據(jù)歸檔到分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,從而可以根據(jù)目標(biāo)鍵值查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù),由于分布式數(shù)據(jù)庫(kù)的處理能力強(qiáng),并采用了鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù),因此可以實(shí)現(xiàn)即時(shí)查詢數(shù)據(jù),提高查詢數(shù)據(jù)的效率。
如圖4所示,圖4是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖,該實(shí)施例在前述圖3所示實(shí)施例的基礎(chǔ)上,所述系統(tǒng)還包括:數(shù)據(jù)查詢模塊350。
其中,數(shù)據(jù)查詢模塊350,被配置為通過預(yù)設(shè)查詢接口基于所述目標(biāo)鍵值從所述分布式數(shù)據(jù)庫(kù)中查詢所歸檔的目標(biāo)數(shù)據(jù)。
由上述實(shí)施例可見,可以通過調(diào)用預(yù)設(shè)的查詢接口,根據(jù)目標(biāo)鍵值查詢到相應(yīng)的目標(biāo)數(shù)據(jù),從而實(shí)現(xiàn)即時(shí)查詢。
如圖5所示,圖5是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖,該實(shí)施例在前述圖3所示實(shí)施例的基礎(chǔ)上,所述系統(tǒng)還包括:數(shù)據(jù)中轉(zhuǎn)模塊360和文件備份模塊370。
其中,數(shù)據(jù)中轉(zhuǎn)模塊360,被配置為在執(zhí)行所述備份任務(wù)過程中,基于所述源數(shù)據(jù)庫(kù)中所述目標(biāo)數(shù)據(jù)的表結(jié)構(gòu),將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在關(guān)系型的中轉(zhuǎn)數(shù)據(jù)庫(kù)中。
文件備份模塊370,被配置為在內(nèi)置備份任務(wù)中的文件備份時(shí)間到達(dá)時(shí),根據(jù)所述內(nèi)置備份任務(wù)將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)表中的數(shù)據(jù)生成對(duì)應(yīng)的文件,將所生成文件存儲(chǔ)到分布式文件系統(tǒng)中,并將所述中轉(zhuǎn)數(shù)據(jù)庫(kù)中所述數(shù)據(jù)表中的數(shù)據(jù)刪除。
由上述實(shí)施例可見,可以內(nèi)置一個(gè)備份任務(wù),該內(nèi)置備份任務(wù)可以在文件備份時(shí)間到達(dá)時(shí),將中轉(zhuǎn)數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)表中的數(shù)據(jù)生成文件,實(shí)現(xiàn)批量備份到分布式文件系統(tǒng)中。將中轉(zhuǎn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)批量備份到分布式文件系統(tǒng)中,并將中轉(zhuǎn)數(shù)據(jù)庫(kù)中數(shù)據(jù)表中的數(shù)據(jù)刪除,可以避免中轉(zhuǎn)數(shù)據(jù)庫(kù)存儲(chǔ)容量有限的缺陷,并且避免了數(shù)據(jù)丟失。
如圖6所示,圖6是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖,該實(shí)施例在前述圖5所示實(shí)施例的基礎(chǔ)上,所述系統(tǒng)還包括:數(shù)據(jù)恢復(fù)模塊380。
其中,數(shù)據(jù)恢復(fù)模塊380,被配置為根據(jù)所述內(nèi)置備份任務(wù)和所述備份任務(wù)將所述分布式文件系統(tǒng)中的文件恢復(fù)至源數(shù)據(jù)庫(kù)中。
由上述實(shí)施例可見,不僅對(duì)源數(shù)據(jù)中刪除的數(shù)據(jù)任意時(shí)刻可讀,還可以恢復(fù)數(shù)據(jù),從而使刪除的數(shù)據(jù)不會(huì)成為無效數(shù)據(jù)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述預(yù)配置的備份任務(wù)是預(yù)配置的歸檔任務(wù)中任務(wù)類型為備份的任務(wù),所述歸檔任務(wù)還包括任務(wù)類型為刪除的刪除任務(wù),所述刪除任務(wù)用于刪除源數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
如圖7所示,圖7是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖,該實(shí)施例在前述圖3所示實(shí)施例的基礎(chǔ)上,所述系統(tǒng)還包括至少一個(gè)下述模塊,為了示例清楚,圖7中示出了該系統(tǒng)可以包括的模塊:預(yù)覽模塊390和信息記錄模塊400。
其中,預(yù)覽模塊390,被配置為在歸檔任務(wù)配置完成后,模擬并輸出所述歸檔任務(wù)的執(zhí)行過程。
信息記錄模塊400,被配置為在歸檔任務(wù)執(zhí)行過程中,記錄執(zhí)行所述歸檔任務(wù)時(shí)產(chǎn)生的信息,所述信息至少包括執(zhí)行歸檔任務(wù)的結(jié)果、執(zhí)行歸檔任務(wù)的流程、執(zhí)行歸檔任務(wù)耗費(fèi)的時(shí)間中的一種或多種。
由上述實(shí)施例可見,可以通過模擬歸檔任務(wù)的執(zhí)行過程,并將執(zhí)行過程輸出,用戶可以預(yù)覽配置任務(wù)的執(zhí)行過程,避免由于配置出錯(cuò)而直接執(zhí)行歸檔任務(wù)導(dǎo)致的損失;還可以通過實(shí)時(shí)記錄執(zhí)行歸檔任務(wù)時(shí)產(chǎn)生的信息,用戶可以通過查詢等手段了解到每個(gè)歸檔任務(wù)的執(zhí)行過程,使源數(shù)據(jù)的刪除和備份完全透明。
如圖8所示,圖8是本公開根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)歸檔系統(tǒng)的框圖,該實(shí)施例在前述圖3所示實(shí)施例的基礎(chǔ)上,所述系統(tǒng)還包括:報(bào)警模塊410。
報(bào)警模塊410,被配置為在歸檔任務(wù)執(zhí)行過程中,執(zhí)行歸檔任務(wù)的結(jié)果為失敗或異常時(shí),輸出失敗或異常的報(bào)警信息。
由上述實(shí)施例可見,在歸檔任務(wù)的結(jié)果為失敗或異常時(shí),及時(shí)通知相應(yīng)負(fù)責(zé)人,以便負(fù)責(zé)人對(duì)歸檔任務(wù)做出調(diào)整,最大可能性確保數(shù)據(jù)的安全性。
相應(yīng)的,本公開還提供一種數(shù)據(jù)庫(kù)歸檔系統(tǒng),所述系統(tǒng)包括有處理器;用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;其中,所述處理器被配置為:
根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,所述備份任務(wù)包括用于篩選出源數(shù)據(jù)庫(kù)中待歸檔的目標(biāo)數(shù)據(jù)的篩選信息、所述目標(biāo)數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的目標(biāo)位置以及鍵值生成方式。
根據(jù)所述篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
根據(jù)所述目標(biāo)數(shù)據(jù)和所述鍵值生成方式確定目標(biāo)鍵值。
根據(jù)所述目標(biāo)鍵值將所述目標(biāo)數(shù)據(jù)歸檔到所述分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,所述目標(biāo)鍵值用于查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
上述系統(tǒng)中各個(gè)模塊的功能和作用的實(shí)現(xiàn)過程具體詳情見上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過程,在此不再贅述。
對(duì)于系統(tǒng)實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本公開方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
如圖9所示,圖9是根據(jù)一示例性實(shí)施例示出的一種用于數(shù)據(jù)庫(kù)歸檔系統(tǒng)900的框圖。
例如,系統(tǒng)900可以被提供為服務(wù)設(shè)備。參照?qǐng)D9,系統(tǒng)900包括處理組件922,其進(jìn)一步包括一個(gè)或多個(gè)處理器,以及由存儲(chǔ)器932所代表的存儲(chǔ)器資源,用于存儲(chǔ)可由處理部件922的執(zhí)行的指令,例如應(yīng)用程序。存儲(chǔ)器932中存儲(chǔ)的應(yīng)用程序可以包括一個(gè)或一個(gè)以上的每一個(gè)對(duì)應(yīng)于一組指令的模塊。此外,處理組件922被配置為執(zhí)行指令,以執(zhí)行上述數(shù)據(jù)庫(kù)歸檔方法。
系統(tǒng)900還可以包括一個(gè)電源組件926被配置為執(zhí)行系統(tǒng)900的電源管理,一個(gè)有線或無線網(wǎng)絡(luò)接口950被配置為將系統(tǒng)900連接到網(wǎng)絡(luò),和一個(gè)輸入輸出(I/O)接口958。系統(tǒng)900可以操作基于存儲(chǔ)在存儲(chǔ)器932的操作系統(tǒng)。
其中,當(dāng)所述存儲(chǔ)器932中的指令由所述處理組件922執(zhí)行時(shí),使得系統(tǒng)900能夠執(zhí)行一種數(shù)據(jù)庫(kù)歸檔方法,包括:
根據(jù)預(yù)配置的備份任務(wù)啟動(dòng)相應(yīng)的備份線程,所述備份任務(wù)包括用于篩選出源數(shù)據(jù)庫(kù)中待歸檔的目標(biāo)數(shù)據(jù)的篩選信息、所述目標(biāo)數(shù)據(jù)要被歸檔到的分布式數(shù)據(jù)庫(kù)中的目標(biāo)位置以及鍵值生成方式。
根據(jù)所述篩選信息獲取源數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
根據(jù)所述目標(biāo)數(shù)據(jù)和所述鍵值生成方式確定目標(biāo)鍵值。
根據(jù)所述目標(biāo)鍵值將所述目標(biāo)數(shù)據(jù)歸檔到所述分布式數(shù)據(jù)庫(kù)的目標(biāo)位置中,所述目標(biāo)鍵值用于查詢分布式數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)。
本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本公開的其它實(shí)施方案。本公開旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本公開的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。
以上所述僅為本公開的較佳實(shí)施例而已,并不用以限制本公開,凡在本公開的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本公開保護(hù)的范圍之內(nèi)。