本發(fā)明屬于分布式數(shù)據(jù)庫領(lǐng)域,尤其是涉及一種數(shù)據(jù)持久化分布的方法及裝置。
背景技術(shù):
分布式數(shù)據(jù)庫是指利用高速計算機網(wǎng)絡(luò)將物理上分散的多個數(shù)據(jù)存儲單元連接起來組成一個邏輯上統(tǒng)一的數(shù)據(jù)庫。分布式數(shù)據(jù)庫的基本思想是將原來集中式數(shù)據(jù)庫中的數(shù)據(jù)分散存儲到多個通過網(wǎng)絡(luò)連接的數(shù)據(jù)存儲節(jié)點上,以獲取更大的存儲容量和更高的并發(fā)訪問量。近年來,隨著數(shù)據(jù)量的高速增長,分布式數(shù)據(jù)庫技術(shù)也得到了快速的發(fā)展,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫開始從集中式模型向分布式架構(gòu)發(fā)展,基于關(guān)系型的分布式數(shù)據(jù)庫在保留了傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)模型和基本特征下,從集中式存儲走向分布式存儲,從集中式計算走向分布式計算。
分布式數(shù)據(jù)庫中各個節(jié)點通常是獨立的數(shù)據(jù)庫,他們完全可以作為一個獨立的DBMS來運轉(zhuǎn)。當(dāng)數(shù)據(jù)庫節(jié)點數(shù)發(fā)生變化時,現(xiàn)有數(shù)據(jù)就要進行重新分布,從全部或部分節(jié)點中抽取數(shù)據(jù),并將其轉(zhuǎn)存到其他節(jié)點上,通常數(shù)據(jù)的發(fā)送使用網(wǎng)絡(luò)設(shè)備進行。此外,如果數(shù)據(jù)庫中某部分數(shù)據(jù)需要轉(zhuǎn)存到其他數(shù)據(jù)表時,也要進行類似的操作,特別是采用新的數(shù)據(jù)分布規(guī)則時還要重新組織數(shù)據(jù)。
傳統(tǒng)的實現(xiàn)方式主要基于以下步驟
1.在源端抽取數(shù)據(jù)
2.通過網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送至目標(biāo)節(jié)點
3.目標(biāo)節(jié)點按照需要進行數(shù)據(jù)整理
4.將數(shù)據(jù)寫入持久化的存儲設(shè)備
以上實現(xiàn)會面臨如下幾個問題
1.抽取出的數(shù)據(jù)通常未經(jīng)處理,占用大量的網(wǎng)絡(luò)帶寬
2.在目標(biāo)節(jié)點數(shù)小于源節(jié)點數(shù)的情況下,對數(shù)據(jù)整理的計算壓力集中在相對較少的目標(biāo)節(jié)點上,造成整個過程執(zhí)行緩慢。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種數(shù)據(jù)持久化分布的方法及裝置,以解決數(shù)據(jù)分布運算量集中的技術(shù)問題。
一方面,本發(fā)明實施例提供了一種數(shù)據(jù)持久化分布的方法,包括:
獲取目標(biāo)端數(shù)據(jù)存儲要求;
根據(jù)所述存儲要求對待分布數(shù)據(jù)進行處理;
待分布數(shù)據(jù)發(fā)送至目標(biāo)端。
進一步的,將處理后的所述存儲要求包括:
目標(biāo)端中表的數(shù)據(jù)屬性。
進一步的,所述根據(jù)所述存儲要求對待分布數(shù)據(jù)進行處理,包括:
根據(jù)所述存儲要求對待分布數(shù)據(jù)進行類型轉(zhuǎn)換,以使得轉(zhuǎn)換后的數(shù)據(jù)接近目標(biāo)端存儲格式。
進一步的,所述方法還包括:
對轉(zhuǎn)換后的數(shù)據(jù)進行壓縮。
進一步的,所述方法還包括:
生成待分布數(shù)據(jù)的元數(shù)據(jù)。
另一方面,本發(fā)明實施例提供了一種數(shù)據(jù)持久化分布的裝置,包括:
獲取單元,用于獲取目標(biāo)端數(shù)據(jù)存儲要求;
處理單元,用于根據(jù)所述存儲要求對待分布數(shù)據(jù)進行處理;
發(fā)送單元,用于將處理后的待分布數(shù)據(jù)發(fā)送至目標(biāo)端。
進一步的,所述存儲要求包括:
目標(biāo)端中表的數(shù)據(jù)屬性。
進一步的,所述處理單元還用于:
根據(jù)所述存儲要求對待分布數(shù)據(jù)進行類型轉(zhuǎn)換,以使得轉(zhuǎn)換后的數(shù)據(jù)符合目標(biāo)端存儲格式。
進一步的,所述數(shù)據(jù)持久化分布裝置還包括:
壓縮單元,用于對轉(zhuǎn)換后的數(shù)據(jù)進行壓縮。
更進一步的,所述壓縮單元還包括:
元數(shù)據(jù)生成單元,用于生成待分布數(shù)據(jù)的元數(shù)據(jù)。
本發(fā)明提供的數(shù)據(jù)持久化分布的方法及裝置,通過在源節(jié)點對待分布數(shù)據(jù)按照目標(biāo)端節(jié)點的存儲要求進行預(yù)處理。并將預(yù)處理的數(shù)據(jù)發(fā)送至目標(biāo)端。減少目標(biāo)端的數(shù)據(jù)處理量,加快數(shù)據(jù)分布進度,減少數(shù)據(jù)分布時間。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例一提供的數(shù)據(jù)持久化分布的方法的流程示意圖;
圖2是本發(fā)明實施例二提供的數(shù)據(jù)持久化分布的方法的流程示意圖;
圖3是本發(fā)明實施例三提供的數(shù)據(jù)持久化分布的方法的流程示意圖;
圖4是本發(fā)明實施例四提供的數(shù)據(jù)持久化分布裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例一
圖1為本發(fā)明實施例一提供的數(shù)據(jù)持久化分布的方法的流程圖,本實施例可適用于在集群中數(shù)據(jù)持久化分布的情況,該方法可以由數(shù)據(jù)持久化分布裝置來執(zhí)行,該裝置可由軟件/硬件方式實現(xiàn),并可集成于分布式數(shù)據(jù)庫系統(tǒng)的源節(jié)點中。
參見圖1,所述數(shù)據(jù)持久化分布的方法,包括:
S110,獲取目標(biāo)端數(shù)據(jù)存儲要求。
如果數(shù)據(jù)庫中某部分數(shù)據(jù)需要轉(zhuǎn)存到其他數(shù)據(jù)表時,需要從全部或部分節(jié)點中抽取數(shù)據(jù),并將其轉(zhuǎn)存到其他節(jié)點上。在轉(zhuǎn)存之前,源節(jié)點獲取目標(biāo)端數(shù)據(jù)存儲要求,獲取標(biāo)端數(shù)據(jù)存儲要求可以與抽取自身數(shù)據(jù)同步進行,以實現(xiàn)減少分布時間的目的。示例性的,源節(jié)點可以通過網(wǎng)絡(luò)實現(xiàn)與目標(biāo)節(jié)點的交互,以獲取目標(biāo)節(jié)點中目標(biāo)表的存儲要求,示例性的,所述存儲要求包括目標(biāo)端中表的數(shù)據(jù)屬性。
S120,根據(jù)所述存儲要求對待分布數(shù)據(jù)進行處理。
源節(jié)點在本地直接完成對需要分布數(shù)據(jù)的處理,使之完全或接近目標(biāo)節(jié)點對存儲數(shù)據(jù)格式的設(shè)定。示例性的,所述處理可以包括類型轉(zhuǎn)換,通過類型轉(zhuǎn)換可以在源節(jié)點將數(shù)據(jù)處理為目標(biāo)節(jié)點中目標(biāo)表直接加入的數(shù)據(jù)。
S130,將處理后的待分布數(shù)據(jù)發(fā)送至目標(biāo)端。
目標(biāo)端在接收到數(shù)據(jù)時將處理后的數(shù)據(jù)直接存放于指定的位置,由于接收到的數(shù)據(jù)已經(jīng)在源節(jié)點進行處理,可直接附在現(xiàn)有數(shù)據(jù)的后面,減少了目標(biāo)端的運算量。
本實施例提供的數(shù)據(jù)持久化分布的方法及裝置,通過在源節(jié)點對待分布數(shù)據(jù)按照目標(biāo)端節(jié)點的存儲要求進行預(yù)處理。并將預(yù)處理的數(shù)據(jù)發(fā)送至目標(biāo)端。減少目標(biāo)端的數(shù)據(jù)處理量,加快數(shù)據(jù)分布進度,減少數(shù)據(jù)分布時間。
在本實施例的一個優(yōu)選實施方式中,所述源節(jié)點在接收到分布任務(wù)后,根據(jù)分布任務(wù)確定計算工作的執(zhí)行方,例如當(dāng)源節(jié)點數(shù)量遠大于目標(biāo)節(jié)點數(shù)量時,可按照上面描述的過程,將計算工作置于源節(jié)點一端,降低目標(biāo)節(jié)點對數(shù)據(jù)處理的計算壓力。當(dāng)目標(biāo)節(jié)點數(shù)量較多時,例如集群間數(shù)據(jù)遷移,則將計算任務(wù)賦予目標(biāo)節(jié)點。通過這種可配置的方式,適應(yīng)不同的需求場景,更加靈活。
實施例二
圖2是本發(fā)明實施例二提供的數(shù)據(jù)持久化分布的方法的流程示意圖,本發(fā)明實施例以上述實施例為基礎(chǔ),進一步的,所述方法增加如下步驟:對轉(zhuǎn)換后的數(shù)據(jù)進行壓縮。
參見圖2,所述分布式數(shù)據(jù)庫的擴容方法,包括:
S210,獲取目標(biāo)端數(shù)據(jù)存儲要求。
S220,根據(jù)所述存儲要求對待分布數(shù)據(jù)進行類型轉(zhuǎn)換,以使得轉(zhuǎn)換后的數(shù)據(jù)接近目標(biāo)端存儲格式。
S230,對轉(zhuǎn)換后的數(shù)據(jù)進行壓縮。
數(shù)據(jù)壓縮是指在不丟失有用信息的前提下,縮減數(shù)據(jù)量以減少存儲空間,提高其傳輸、存儲和處理效率,或按照一定的算法對數(shù)據(jù)進行重新組織,減少數(shù)據(jù)的冗余和存儲的空間的一種技術(shù)方法。通過對轉(zhuǎn)換后數(shù)據(jù)進行壓縮,提高了源節(jié)點至目標(biāo)節(jié)點網(wǎng)絡(luò)傳輸?shù)男?。減少了網(wǎng)絡(luò)帶寬的占用。
S240,將處理后的待分布數(shù)據(jù)發(fā)送至目標(biāo)端。
本實施例通過增加如下步驟:對轉(zhuǎn)換后的數(shù)據(jù)進行壓縮。通過對轉(zhuǎn)換后數(shù)據(jù)進行壓縮,提高了源節(jié)點至目標(biāo)節(jié)點網(wǎng)絡(luò)傳輸?shù)男?。減少了網(wǎng)絡(luò)帶寬的占用。
實施例三
圖3是本發(fā)明實施例三提供的數(shù)據(jù)持久化分布的方法的流程示意圖,本發(fā)明實施例以上述實施例為基礎(chǔ),進一步的,所述方法還包括如下步驟:所述方法還包括:生成待分布數(shù)據(jù)的元數(shù)據(jù)。
參見圖3,所述分布式數(shù)據(jù)庫的擴容方法,包括:
S310,獲取目標(biāo)端數(shù)據(jù)存儲要求。
S320,根據(jù)所述存儲要求對待分布數(shù)據(jù)進行處理。
S330,將處理后的待分布數(shù)據(jù)發(fā)送至目標(biāo)端。
S340,生成待分布數(shù)據(jù)的元數(shù)據(jù)。
元數(shù)據(jù)被定義為:描述數(shù)據(jù)的數(shù)據(jù),對數(shù)據(jù)及信息資源的描述性信息。由于元數(shù)據(jù)也是數(shù)據(jù),因此可以用類似數(shù)據(jù)的方法在數(shù)據(jù)庫中進行存儲和獲取。由于目標(biāo)端數(shù)據(jù)發(fā)生變化,需要生成對應(yīng)的元數(shù)據(jù),以提供存儲數(shù)據(jù)的位置和描述,在生成元數(shù)據(jù)后,目標(biāo)節(jié)點可提供相應(yīng)的服務(wù)。
本實施例通過增加如下步驟,生成待分布數(shù)據(jù)的元數(shù)據(jù)??梢蕴峁﹥?shù)據(jù)的位置和描述,在生成元數(shù)據(jù)后,目標(biāo)節(jié)點可提供相應(yīng)的服務(wù)。
實施例四
圖4是本發(fā)明實施例四提供的數(shù)據(jù)持久化分布裝置的結(jié)構(gòu)示意圖,如圖4所示,所述裝置包括:
獲取單元410,用于獲取目標(biāo)端數(shù)據(jù)存儲要求;
處理單元420,用于根據(jù)所述存儲要求對待分布數(shù)據(jù)進行處理;
發(fā)送單元430,用于將處理后的待分布數(shù)據(jù)發(fā)送至目標(biāo)端。
進一步的,所述存儲要求包括:
目標(biāo)端中表的數(shù)據(jù)屬性。
進一步的,所述處理單元還用于:
根據(jù)所述存儲要求對待分布數(shù)據(jù)進行類型轉(zhuǎn)換,以使得轉(zhuǎn)換后的數(shù)據(jù)符合目標(biāo)端存儲格式。
進一步的,所述數(shù)據(jù)持久化分布裝置還包括:
壓縮單元,用于對轉(zhuǎn)換后的數(shù)據(jù)進行壓縮。
更進一步的,所述壓縮單元還包括:
元數(shù)據(jù)生成單元,用于生成待分布數(shù)據(jù)的元數(shù)據(jù)。
本發(fā)明提供的數(shù)據(jù)持久化分布的方法及裝置,通過在源節(jié)點對待分布數(shù)據(jù)按照目標(biāo)端節(jié)點的存儲要求進行預(yù)處理。并將預(yù)處理的數(shù)據(jù)發(fā)送至目標(biāo)端。減少目標(biāo)端的數(shù)據(jù)處理量,加快數(shù)據(jù)分布進度,減少數(shù)據(jù)分布時間。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。