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