本發(fā)明屬于分布式數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其是涉及一種異構(gòu)表間數(shù)據(jù)交換方法及裝置。
背景技術(shù):
數(shù)據(jù)在集群數(shù)據(jù)庫各個(gè)節(jié)點(diǎn)間重新分布,是集群數(shù)據(jù)庫常用的一種功能,通常一份數(shù)據(jù)會(huì)在不同節(jié)點(diǎn)上有完全相同的副本,或者在不同節(jié)點(diǎn)上有不同的分片數(shù)據(jù)。這些副本或者分片的數(shù)據(jù)庫表格在結(jié)構(gòu)、數(shù)據(jù)類型方面完全一致。隨著集群數(shù)據(jù)庫使用規(guī)模的不斷擴(kuò)大,應(yīng)用場(chǎng)景的不斷擴(kuò)展,數(shù)據(jù)重分布已經(jīng)不局限于同構(gòu)表格之間,異構(gòu)表格之間數(shù)據(jù)交換需求也越來越多。異構(gòu)表格,表現(xiàn)在表格列的數(shù)量不一致,或者列的數(shù)據(jù)類型不一致等,異構(gòu)表格之間顯然無法直接進(jìn)行數(shù)據(jù)交換?,F(xiàn)有技術(shù)通常是使用單獨(dú)開發(fā)的工具,對(duì)異構(gòu)表格進(jìn)行適配,達(dá)到交換數(shù)據(jù)的目的,這種技術(shù)的缺點(diǎn)是需要人工干預(yù),配置復(fù)雜,使用繁瑣,不能滿足新一代集群數(shù)據(jù)庫即時(shí)高效便捷的數(shù)據(jù)交換要求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種異構(gòu)表間數(shù)據(jù)交換方法及裝置,以解決集群數(shù)據(jù)庫不同節(jié)點(diǎn)上異構(gòu)表間無法交換數(shù)據(jù)的問題。
第一方面,本發(fā)明實(shí)施例提供了一種異構(gòu)表間數(shù)據(jù)交換方法,包括:
獲取目標(biāo)節(jié)點(diǎn)的表格信息;
根據(jù)所述表格信息在緩存建立表格對(duì)象;
將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中;
發(fā)送填充后的表格對(duì)象至目標(biāo)節(jié)點(diǎn)。
進(jìn)一步的,所述將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中,包括:
如果存儲(chǔ)的數(shù)據(jù)與所述表格對(duì)象數(shù)據(jù)類型不一致時(shí),將存儲(chǔ)的數(shù)據(jù)進(jìn)行類型裝換。
進(jìn)一步的,所述將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中,包括:
如果不存在所述表格對(duì)象中的列數(shù)據(jù),則向所述列中補(bǔ)入默認(rèn)值。
更進(jìn)一步的,所述的方法采用SQL語法實(shí)現(xiàn)。
第二方面,本發(fā)明實(shí)施例還提供了一種異構(gòu)表間數(shù)據(jù)交換裝置,包括:
獲取單元,用于獲取目標(biāo)節(jié)點(diǎn)的表格信息;
建立單元,用于根據(jù)所述表格信息在緩存建立表格對(duì)象;
填充單元,用于將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中;
發(fā)送單元,用于發(fā)送填充后的表格對(duì)象至目標(biāo)節(jié)點(diǎn)。
進(jìn)一步的,所述填充單元用于:
如果存儲(chǔ)的數(shù)據(jù)與所述表格對(duì)象數(shù)據(jù)類型不一致時(shí),將存儲(chǔ)的數(shù)據(jù)進(jìn)行類型裝換。
更進(jìn)一步的,所述填充單元用于:如果不存在所述表格對(duì)象中的列數(shù)據(jù),則向所述列中補(bǔ)入默認(rèn)值。
本發(fā)明實(shí)施例通過獲取目標(biāo)節(jié)點(diǎn)的表格信息;根據(jù)所述表格信息在緩存建立表格對(duì)象;將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中;發(fā)送填充后的表格對(duì)象至目標(biāo)節(jié)點(diǎn)。實(shí)現(xiàn)集群數(shù)據(jù)庫不同節(jié)點(diǎn)上異構(gòu)表格間的數(shù)據(jù)透明交換,極大的增強(qiáng)集群數(shù)據(jù)庫節(jié)點(diǎn)間數(shù)據(jù)重新分布功能的適用范圍。使用簡(jiǎn)單,無需人工干預(yù),即時(shí)高效。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例一提供的異構(gòu)表間數(shù)據(jù)交換方法的流程示意圖;
圖2是本發(fā)明實(shí)施例二提供的異構(gòu)表間數(shù)據(jù)交換方法的流程示意圖;
圖3是本發(fā)明實(shí)施例三提供的異構(gòu)表間數(shù)據(jù)交換方法的流程示意圖;
圖4是本發(fā)明實(shí)施例四提供的異構(gòu)表間數(shù)據(jù)交換裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
圖1為本發(fā)明實(shí)施例一提供的異構(gòu)表間數(shù)據(jù)交換方法的流程圖,本實(shí)施例可適用于異構(gòu)表間數(shù)據(jù)交換的情況,該方法可以由異構(gòu)表間數(shù)據(jù)交換來執(zhí)行,該裝置可由軟件/硬件方式實(shí)現(xiàn),并可集成于分布式數(shù)據(jù)庫系統(tǒng)的節(jié)點(diǎn)中。
參見圖1,所述異構(gòu)表間數(shù)據(jù)交換方法,包括:
S110,獲取目標(biāo)節(jié)點(diǎn)的表格信息。
源端節(jié)點(diǎn)首先獲取目標(biāo)端表格信息,這些信息包括表格結(jié)構(gòu)、字符集、數(shù)據(jù)類型、默認(rèn)值等屬性。
S120,根據(jù)所述表格信息在緩存建立表格對(duì)象。
在源端節(jié)點(diǎn)根據(jù)獲取的表格信息,在源端節(jié)點(diǎn)的緩存內(nèi)建立表格對(duì)象,該表格對(duì)象具有相同的表格信息。示例性的,建立的表格對(duì)象具有同樣的行和列,并且每個(gè)表格具有與目標(biāo)節(jié)點(diǎn)表格相同的數(shù)據(jù)類型。
S130,將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中。
源端節(jié)點(diǎn)將存儲(chǔ)的數(shù)據(jù)填充到前述表格對(duì)象中。以生產(chǎn)對(duì)應(yīng)的表格。
S140,發(fā)送填充后的表格對(duì)象至目標(biāo)節(jié)點(diǎn)。
將表格對(duì)象發(fā)送至目標(biāo)節(jié)點(diǎn),目標(biāo)節(jié)點(diǎn)在接收到表格對(duì)象后,由于表格對(duì)象和目標(biāo)節(jié)點(diǎn)中的表格的表格信息完全一致,可以視作兩個(gè)相同的表內(nèi)的數(shù)據(jù)交換,目標(biāo)節(jié)點(diǎn)可以完成相應(yīng)的數(shù)據(jù)交換。
本實(shí)施例通過獲取目標(biāo)節(jié)點(diǎn)的表格信息;根據(jù)所述表格信息在緩存建立表格對(duì)象;將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中;發(fā)送填充后的表格對(duì)象至目標(biāo)節(jié)點(diǎn)。實(shí)現(xiàn)集群數(shù)據(jù)庫不同節(jié)點(diǎn)上異構(gòu)表格間的數(shù)據(jù)透明交換,極大的增強(qiáng)集群數(shù)據(jù)庫節(jié)點(diǎn)間數(shù)據(jù)重新分布功能的適用范圍。使用簡(jiǎn)單,無需人工干預(yù),即時(shí)高效。
在本實(shí)施例的一個(gè)優(yōu)選實(shí)施方式中,上述方法可以通過SQL語法實(shí)現(xiàn)。SQL可以分為兩個(gè)部分:數(shù)據(jù)操作語言(DML)和數(shù)據(jù)定義語言(DDL)。SQL(結(jié)構(gòu)化查詢語言)是用于執(zhí)行查詢的語法。但是SQL語言也包含用于更新、插入和刪除記錄的語法。查詢和更新指令構(gòu)成了SQL的DML部分。SQL的數(shù)據(jù)定義語言(DDL)部分可以創(chuàng)建或刪除表格。也可以定義索引(鍵),規(guī)定表之間的鏈接,以及施加表間的約束。通過SQL語法可以實(shí)現(xiàn)上述不同節(jié)點(diǎn)之間的數(shù)據(jù)交換。
實(shí)施例二
圖2是本發(fā)明實(shí)施例二提供的異構(gòu)表間數(shù)據(jù)交換方法的流程示意圖,本發(fā)明實(shí)施例以上述實(shí)施例為基礎(chǔ),進(jìn)一步的,將所述將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中,具體優(yōu)化為:如果存儲(chǔ)的數(shù)據(jù)與所述表格對(duì)象數(shù)據(jù)類型不一致時(shí),將存儲(chǔ)的數(shù)據(jù)進(jìn)行類型裝換。
參見圖2,所述異構(gòu)表間數(shù)據(jù)交換方法,包括:
S210,獲取目標(biāo)節(jié)點(diǎn)的表格信息。
S220,根據(jù)所述表格信息在緩存建立表格對(duì)象。
S230,將所述將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中,如果存儲(chǔ)的數(shù)據(jù)與所述表格對(duì)象數(shù)據(jù)類型不一致時(shí),將存儲(chǔ)的數(shù)據(jù)進(jìn)行類型裝換。
示例性的,如果存儲(chǔ)的數(shù)據(jù)類型為整數(shù)類型int,而表格對(duì)象數(shù)據(jù)類型為字符型char,則將整數(shù)類型轉(zhuǎn)換為字符型。
S240,發(fā)送填充后的表格對(duì)象至目標(biāo)節(jié)點(diǎn)。
本實(shí)施例通過將所述將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中,具體優(yōu)化為:如果存儲(chǔ)的數(shù)據(jù)與所述表格對(duì)象數(shù)據(jù)類型不一致時(shí),將存儲(chǔ)的數(shù)據(jù)進(jìn)行類型裝換??梢詫⒉煌愋偷臄?shù)據(jù)經(jīng)過轉(zhuǎn)換使之一致,可以實(shí)現(xiàn)不同類型的數(shù)據(jù)的交換。
實(shí)施例三
圖3是本發(fā)明實(shí)施例三提供的異構(gòu)表間數(shù)據(jù)交換方法的流程示意圖,本發(fā)明實(shí)施例以上述實(shí)施例為基礎(chǔ),進(jìn)一步的,將所述將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中,具體優(yōu)化為:如果不存在所述表格對(duì)象中的列數(shù)據(jù),則向所述列中補(bǔ)入默認(rèn)值。
參見圖3,所述異構(gòu)表間數(shù)據(jù)交換方法,包括:
S310,獲取目標(biāo)節(jié)點(diǎn)的表格信息。
S320,根據(jù)所述表格信息在緩存建立表格對(duì)象。
S330,將所述將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中,如果不存在所述表格對(duì)象中的列數(shù)據(jù),則向所述列中補(bǔ)入默認(rèn)值。
如果表格對(duì)象中的某一列在源端節(jié)點(diǎn)對(duì)應(yīng)的表中不存在,則向表格對(duì)象中的該列填入默認(rèn)值,示例性的,默認(rèn)值可以為0,以使得表格對(duì)象中不存在空白列。
S340,發(fā)送填充后的表格對(duì)象至目標(biāo)節(jié)點(diǎn)。
本實(shí)施例通過將所述將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中,具體優(yōu)化為:如果不存在所述表格對(duì)象中的列數(shù)據(jù),則向所述列中補(bǔ)入默認(rèn)值??梢允沟帽砀駥?duì)象中不存在空白列。
實(shí)施例四
圖4是本發(fā)明實(shí)施例四提供的異構(gòu)表間數(shù)據(jù)交換裝置的結(jié)構(gòu)示意圖,如圖4所示,所述裝置包括:
獲取單元410,用于獲取目標(biāo)節(jié)點(diǎn)的表格信息;
建立單元420,用于根據(jù)所述表格信息在緩存建立表格對(duì)象;
填充單元430,用于將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中;
發(fā)送單元440,用于發(fā)送填充后的表格對(duì)象至目標(biāo)節(jié)點(diǎn)。
本實(shí)施例提供的異構(gòu)表間數(shù)據(jù)交換裝置,通過獲取目標(biāo)節(jié)點(diǎn)的表格信息;根據(jù)所述表格信息在緩存建立表格對(duì)象;將存儲(chǔ)的數(shù)據(jù)填充到所述表格對(duì)象中;發(fā)送填充后的表格對(duì)象至目標(biāo)節(jié)點(diǎn)。實(shí)現(xiàn)集群數(shù)據(jù)庫不同節(jié)點(diǎn)上異構(gòu)表格間的數(shù)據(jù)透明交換,極大的增強(qiáng)集群數(shù)據(jù)庫節(jié)點(diǎn)間數(shù)據(jù)重新分布功能的適用范圍。使用簡(jiǎn)單,無需人工干預(yù),即時(shí)高效。
進(jìn)一步的,所述填充單元用于:
如果存儲(chǔ)的數(shù)據(jù)與所述表格對(duì)象數(shù)據(jù)類型不一致時(shí),將存儲(chǔ)的數(shù)據(jù)進(jìn)行類型裝換。
進(jìn)一步的,所述填充單元用于:
如果不存在所述表格對(duì)象中的列數(shù)據(jù),則向所述列中補(bǔ)入默認(rèn)值。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。