一種實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步領(lǐng)域,更具體地,涉及一種實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法,同時(shí)還提供使用所述方法的異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步系統(tǒng)。
【背景技術(shù)】
[0002]近年來,計(jì)算機(jī)系統(tǒng)的應(yīng)用已經(jīng)深入到各行各業(yè),在互聯(lián)網(wǎng)行業(yè),企業(yè)同時(shí)存在多種計(jì)算機(jī)應(yīng)用對(duì)內(nèi)對(duì)外提供服務(wù),而每個(gè)應(yīng)用都有各自的數(shù)據(jù)存儲(chǔ)方式,隨著業(yè)務(wù)的發(fā)展,這些相對(duì)獨(dú)立的系統(tǒng)間又必須進(jìn)行一定的數(shù)據(jù)交互,因此我們需要一種能夠兼容各種數(shù)據(jù)存儲(chǔ),并且高效進(jìn)行數(shù)據(jù)同步與交換的技術(shù)和工具,以滿足企業(yè)對(duì)內(nèi)及對(duì)外業(yè)務(wù)的各方面數(shù)據(jù)需求。
[0003]例如,在企業(yè)級(jí)的網(wǎng)絡(luò)環(huán)境中,異種數(shù)據(jù)庫(kù)同時(shí)并存的現(xiàn)象越來越普遍地存在,t匕如,在市場(chǎng)部門采用微軟的SQL Server數(shù)據(jù)庫(kù),在研發(fā)部門采用國(guó)產(chǎn)神通數(shù)據(jù)庫(kù),而企業(yè)的總服務(wù)器采用ORACLE數(shù)據(jù)庫(kù),這種異種數(shù)據(jù)庫(kù)同時(shí)使用的情況在許多系統(tǒng)集成的方案與實(shí)施中屢見不鮮,于是在不同數(shù)據(jù)庫(kù)之間的數(shù)據(jù)內(nèi)容的同步變成一個(gè)普遍令人關(guān)心的問題。目前,各大主流數(shù)據(jù)庫(kù)產(chǎn)品都提供了在各自數(shù)據(jù)庫(kù)之間進(jìn)行同步的功能?,F(xiàn)有的同步功能-一般采用發(fā)布/訂閱模型來實(shí)現(xiàn),一般來說,發(fā)布/訂閱模型包括下列對(duì)象:發(fā)布服務(wù)器、分發(fā)服務(wù)器、訂閱服務(wù)器,體系結(jié)構(gòu)如附圖圖1所示。
[0004]發(fā)布服務(wù)器:發(fā)布服務(wù)器是提供數(shù)據(jù)以便同步到其他服務(wù)器的服務(wù)器。
[0005]分發(fā)服務(wù)器:分發(fā)服務(wù)器是具體執(zhí)行數(shù)據(jù)分發(fā)任務(wù)的服務(wù)器。
[0006]訂閱服務(wù)器:訂閱服務(wù)器是接收同步數(shù)據(jù)的服務(wù)器。
[0007]首先,在發(fā)布服務(wù)器進(jìn)行發(fā)布配置,對(duì)同步的內(nèi)容和執(zhí)行同步的周期等進(jìn)行設(shè)置;訂閱服務(wù)器根據(jù)需要訂閱配置好的發(fā)布;分發(fā)服務(wù)器會(huì)根據(jù)發(fā)布配置執(zhí)行數(shù)據(jù)分發(fā),將數(shù)據(jù)寫入訂閱服務(wù)器。在這樣的實(shí)現(xiàn)模型下,數(shù)據(jù)被寫入發(fā)布數(shù)據(jù)庫(kù)后,分發(fā)數(shù)據(jù)庫(kù)根據(jù)發(fā)布配置定期去檢查數(shù)據(jù)變更,然后將這些數(shù)據(jù)變更提取出來寫入訂閱服務(wù)器。
[0008]但是,這種同步技術(shù)存在的主要問題是不能實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)間的數(shù)據(jù)同步,發(fā)布服務(wù)器和分發(fā)服務(wù)器的實(shí)現(xiàn)和數(shù)據(jù)庫(kù)服務(wù)器緊密相關(guān)(因?yàn)橐@取數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)更改需要數(shù)據(jù)庫(kù)本身的支持),各個(gè)數(shù)據(jù)庫(kù)廠商只能開發(fā)出配合自己的數(shù)據(jù)庫(kù)產(chǎn)品的發(fā)布服務(wù)器和分發(fā)服務(wù)器,目前最多只能做到訂閱數(shù)據(jù)庫(kù)可以是其他數(shù)據(jù)庫(kù),這主要是通過SQL標(biāo)準(zhǔn)來屏蔽不同數(shù)據(jù)庫(kù)間的差異。
[0009]專利授權(quán)公告號(hào)為CN 102063502B的發(fā)明專利:實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法,提供了一種實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法,其中異種數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)A和數(shù)據(jù)庫(kù)B,數(shù)據(jù)庫(kù)A是用戶應(yīng)用所使用的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)訪問接口使用JDBC接口,數(shù)據(jù)庫(kù)B是進(jìn)行數(shù)據(jù)同步的目的數(shù)據(jù)庫(kù),還包括符合SUN規(guī)范的JDBC驅(qū)動(dòng)AB,所述驅(qū)動(dòng)AB包括A的JDBC驅(qū)動(dòng)包和B的JDBC驅(qū)動(dòng)包;對(duì)驅(qū)動(dòng)AB上的函數(shù)調(diào)用都被原樣傳遞給數(shù)據(jù)庫(kù)A的JDBC驅(qū)動(dòng),而對(duì)數(shù)據(jù)庫(kù)有更改的函數(shù)調(diào)用,則通過SQL語法映射轉(zhuǎn)換后,再傳遞給數(shù)據(jù)庫(kù)B的JDBC驅(qū)動(dòng)。其利用數(shù)據(jù)庫(kù)訪問的標(biāo)準(zhǔn)接口,比如ODBC,JDBC等或者其他數(shù)據(jù)庫(kù)訪問標(biāo)準(zhǔn)接口,只要數(shù)據(jù)庫(kù)同步雙方都支持即可,對(duì)它們進(jìn)行封裝,所有通過標(biāo)準(zhǔn)接口進(jìn)行數(shù)據(jù)庫(kù)訪問的應(yīng)用發(fā)給數(shù)據(jù)庫(kù)的更新語句都可以被轉(zhuǎn)發(fā)給另外的數(shù)據(jù)庫(kù),使用該方法,通過數(shù)據(jù)庫(kù)訪問標(biāo)準(zhǔn)接口,數(shù)據(jù)庫(kù)產(chǎn)品間的差異被屏蔽了,而且,在應(yīng)用發(fā)送語句給目標(biāo)數(shù)據(jù)庫(kù)的時(shí)候,該語句也同時(shí)發(fā)送給同步數(shù)據(jù)庫(kù),實(shí)時(shí)性好。
[0010]但是上述發(fā)明對(duì)實(shí)時(shí)性的支持不夠好,JDBC驅(qū)動(dòng)包設(shè)定的周期去檢查發(fā)布數(shù)據(jù)庫(kù)的更改,然后再寫入,這一般會(huì)有幾秒的延時(shí),實(shí)時(shí)性能不夠好。
[0011]目前,行業(yè)內(nèi)數(shù)據(jù)同步交換的軟件主要有IBM的Datastage、InformaticPowerCenter以及Oracle GoldenGate等。這些專業(yè)化的工具主要應(yīng)用在ETL和數(shù)據(jù)復(fù)制方面,并不能滿足互聯(lián)網(wǎng)行業(yè)復(fù)雜的系統(tǒng)和異構(gòu)數(shù)據(jù)庫(kù)之間的數(shù)據(jù)交換同步需求。
【發(fā)明內(nèi)容】
[0012]本發(fā)明提供一種實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法,同時(shí)還提供使用該方法的異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步系統(tǒng)。
[0013]本發(fā)明提供一種實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的方法,所述方法包括如下步驟:a)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)同步的準(zhǔn)備工作,對(duì)數(shù)據(jù)進(jìn)行配置;b)數(shù)據(jù)同步的數(shù)據(jù)增量捕獲;c)全量數(shù)據(jù)的同步;d)增量數(shù)據(jù)同步。
[0014]在上述任一方案中優(yōu)選的是,所述對(duì)數(shù)據(jù)進(jìn)行配置包括但不限于配置基本數(shù)據(jù)作業(yè)單元、配置數(shù)據(jù)作業(yè)流、配置數(shù)據(jù)作業(yè)流定時(shí)任務(wù)。
[0015]在上述任一方案中優(yōu)選的是,所述配置基本數(shù)據(jù)作業(yè)單元包括如下步驟:選擇操作類型;輸入上述數(shù)據(jù)作業(yè)單元的操作類型對(duì)應(yīng)的參數(shù);保存相應(yīng)的數(shù)據(jù)操作作業(yè)。
[0016]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型包括從ORACLE數(shù)據(jù)表到GP數(shù)據(jù)表的數(shù)據(jù)操作。
[0017]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從ORACLE數(shù)據(jù)表到ORACLE數(shù)據(jù)表的數(shù)據(jù)操作。
[0018]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從ORACLE數(shù)據(jù)表到MYSQL數(shù)據(jù)表的數(shù)據(jù)操作。
[0019]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括ORACLE SQL數(shù)據(jù)表的數(shù)據(jù)操作。
[0020]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從ORACLE SQL數(shù)據(jù)表到GP數(shù)據(jù)表的數(shù)據(jù)操作。
[0021]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從ORACLE SQL數(shù)據(jù)表到MYSQL數(shù)據(jù)表的數(shù)據(jù)操作。
[0022]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從ORACLE SQL數(shù)據(jù)表到ORACLE數(shù)據(jù)表的數(shù)據(jù)操作。
[0023]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從GP數(shù)據(jù)表到HAD00P數(shù)據(jù)表的數(shù)據(jù)操作。
[0024]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從GP數(shù)據(jù)表到ORACLE數(shù)據(jù)表的數(shù)據(jù)操作。
[0025]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從GP數(shù)據(jù)表到文本文件的數(shù)據(jù)操作。
[0026]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括GPSQL數(shù)據(jù)表的數(shù)據(jù)操作。
[0027]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從GPSQL數(shù)據(jù)表到HADOOP數(shù)據(jù)表的數(shù)據(jù)操作。
[0028]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從GPSQL數(shù)據(jù)表到ORACLE數(shù)據(jù)表的數(shù)據(jù)操作。
[0029]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從GPSQL數(shù)據(jù)表到文本文件的數(shù)據(jù)操作。
[0030]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從HADOOP數(shù)據(jù)表到GP數(shù)據(jù)表的數(shù)據(jù)操作。
[0031]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括從HADOOP數(shù)據(jù)表到ORACLE數(shù)據(jù)表的數(shù)據(jù)操作。
[0032]在上述任一方案中優(yōu)選的是,所述數(shù)據(jù)作業(yè)單元支持的所述操作類型還包括HADOOP SHELL & PIG數(shù)據(jù)表的數(shù)據(jù)操作。
[0033]在上述任一方案中優(yōu)選的是,所述操作類型對(duì)應(yīng)的參數(shù)包括數(shù)據(jù)庫(kù)相關(guān)參數(shù)和HADOOP相關(guān)