一種數(shù)據(jù)交互的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)交互的方法及裝置。
【背景技術(shù)】
[0002]在進(jìn)行跨數(shù)據(jù)中心的業(yè)務(wù)協(xié)同與辦理過程中,數(shù)據(jù)需要在不同地方的數(shù)據(jù)中心的數(shù)據(jù)庫中進(jìn)行交換,舉例來說,在教育行業(yè)里,中小學(xué)生的電子學(xué)籍是以省為單位存放和管理的,各省級數(shù)據(jù)中心之間建立了跨省轉(zhuǎn)學(xué)業(yè)務(wù)辦理的機制。
[0003]現(xiàn)有的數(shù)據(jù)交換方法中,需要進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)庫之間直接建立數(shù)據(jù)連接,將源數(shù)據(jù)庫中的數(shù)據(jù)發(fā)送到目標(biāo)數(shù)據(jù)庫中。但是,由于基礎(chǔ)環(huán)境不穩(wěn)定、時間源不統(tǒng)一以及操作不規(guī)范等因素,可能導(dǎo)致源數(shù)據(jù)庫中要發(fā)送給目標(biāo)數(shù)據(jù)庫的目標(biāo)數(shù)據(jù)不能完整的存儲到目標(biāo)數(shù)據(jù)庫中,或者源數(shù)據(jù)庫中要發(fā)出的目標(biāo)數(shù)據(jù)與存儲到目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)有差異??傊?,現(xiàn)有技術(shù)的數(shù)據(jù)交互方法中,無法保證源數(shù)據(jù)庫中發(fā)出的數(shù)據(jù)與目標(biāo)數(shù)據(jù)庫中接收到的數(shù)據(jù)的一致性。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供了一種數(shù)據(jù)交互的方法及裝置,能夠保證源端中發(fā)出的目標(biāo)數(shù)據(jù)與目標(biāo)端中接收到的數(shù)據(jù)一致。
[0005]—方面,本發(fā)明提供了一種數(shù)據(jù)交互的方法,包括:
[0006]S1:從源端獲取目標(biāo)數(shù)據(jù);
[0007]S2:獲取每條目標(biāo)數(shù)據(jù)的第一信息;
[0008]S3:將所述目標(biāo)數(shù)據(jù)發(fā)送給目標(biāo)端;
[0009]S4:獲取所述目標(biāo)端接收到的每條接收數(shù)據(jù)的第二信息;
[0010]S5:將所有第二信息與所有第一信息進(jìn)行匹配,判斷每個第一信息是否均有相匹配的第二信息,如果是,則結(jié)束當(dāng)前流程,否則,執(zhí)行步驟S6 ;
[0011]S6:確定所有第一信息中沒有相匹配的第二信息的差異第一信息,確定差異第一信息對應(yīng)的差異目標(biāo)數(shù)據(jù),獲取所述差異目標(biāo)數(shù)據(jù),將所述差異目標(biāo)數(shù)據(jù)作為所述目標(biāo)數(shù)據(jù),返回所述步驟S2。
[0012]進(jìn)一步地,所述目標(biāo)數(shù)據(jù)的第一信息包括:所述目標(biāo)數(shù)據(jù)的主鍵;所述接收數(shù)據(jù)的第二信息包括:所述接收數(shù)據(jù)的主鍵。
[0013]進(jìn)一步地,所述S5中,所述判斷每個第一信息是否均有相匹配的第二信息,包括:
[0014]判斷每個目標(biāo)數(shù)據(jù)的主鍵是否均有相同的接收數(shù)據(jù)的主鍵,如果是,則確定每個第一信息均有相匹配的第二信息,否則,確定所有第一信息中存在沒有相匹配的第二信息的差異第一息;
[0015]所述差異第一信息包括:差異主鍵;
[0016]所述S6中,所述確定所有第一信息中沒有相匹配的第二信息的差異第一信息,確定差異第一信息對應(yīng)的差異目標(biāo)數(shù)據(jù),包括:
[0017]確定所述目標(biāo)數(shù)據(jù)的主鍵中沒有相同的接收數(shù)據(jù)的主鍵的差異主鍵,確定差異主鍵對應(yīng)的差異目標(biāo)數(shù)據(jù)。
[0018]進(jìn)一步地,還包括:預(yù)先設(shè)置觸發(fā)器;
[0019]所述SI,包括:當(dāng)源端中的數(shù)據(jù)發(fā)生變化時,觸發(fā)所述觸發(fā)器獲取發(fā)生變化的變化數(shù)據(jù),將所述變化數(shù)據(jù)作為目標(biāo)數(shù)據(jù)。
[0020]進(jìn)一步地,還包括:在所述源端和所述目標(biāo)端之間設(shè)置數(shù)據(jù)交換前置機;
[0021]所述S3,包括:將所述目標(biāo)數(shù)據(jù)發(fā)送給所述數(shù)據(jù)交換前置機,通過所述數(shù)據(jù)交換前置機將所述目標(biāo)數(shù)據(jù)發(fā)送給所述目標(biāo)端。
[0022]進(jìn)一步地,所述S3,包括:將所述目標(biāo)數(shù)據(jù)打包,將打包后的目標(biāo)數(shù)據(jù)發(fā)送給所述目標(biāo)端。
[0023]進(jìn)一步地,該方法還包括:預(yù)先設(shè)置核對表;
[0024]還包括:將所有第一信息和/或所有第二信息存儲到所述核對表中。
[0025]進(jìn)一步地,所述SI,包括:
[0026]按照所述源端中每條數(shù)據(jù)的時間戳和預(yù)設(shè)的獲取周期,從所述源端周期性地獲取在獲取時間段內(nèi)的目標(biāo)數(shù)據(jù),所述獲取時間段為上次獲取目標(biāo)數(shù)據(jù)的時間到本次獲取目標(biāo)數(shù)據(jù)的時間之間的時間段。
[0027]另一方面,本發(fā)明提供了一種數(shù)據(jù)交互的裝置,包括:
[0028]第一獲取單元,用于從源端獲取目標(biāo)數(shù)據(jù);
[0029]第二獲取單元,用于獲取每條目標(biāo)數(shù)據(jù)的第一信息;
[0030]發(fā)送單元,用于將所述目標(biāo)數(shù)據(jù)發(fā)送給目標(biāo)端;
[0031]第三獲取單元,用于獲取所述目標(biāo)端接收到的每條接收數(shù)據(jù)的第二信息;
[0032]匹配單元,用于將所有第二信息與所有第一信息進(jìn)行匹配,判斷每個第一信息是否均有相匹配的第二信息,如果是,則完成本次數(shù)據(jù)交互,否則,通知確定單元;
[0033]所述確定單元,用于確定所有第一信息中沒有相匹配的第二信息的差異第一信息,確定差異第一信息對應(yīng)的差異目標(biāo)數(shù)據(jù),獲取所述差異目標(biāo)數(shù)據(jù),將所述差異目標(biāo)數(shù)據(jù)作為所述目標(biāo)數(shù)據(jù),通知所述第二獲取單元。
[0034]進(jìn)一步地,所述目標(biāo)數(shù)據(jù)的第一信息包括:所述目標(biāo)數(shù)據(jù)的主鍵;所述接收數(shù)據(jù)的第二信息包括:所述接收數(shù)據(jù)的主鍵。
[0035]進(jìn)一步地,所述匹配單元,在執(zhí)行所述判斷每個第一信息是否均有相匹配的第二信息時,具體執(zhí)行:
[0036]判斷每個目標(biāo)數(shù)據(jù)的主鍵是否均有相同的接收數(shù)據(jù)的主鍵,如果是,則確定每個第一信息均有相匹配的第二信息,否則,確定所有第一信息中存在沒有相匹配的第二信息的差異第一息;
[0037]所述差異第一信息包括:差異主鍵;
[0038]所述確定單元,在執(zhí)行所述確定所有第一信息中沒有相匹配的第二信息的差異第一信息,確定差異第一信息對應(yīng)的差異目標(biāo)數(shù)據(jù)時,具體執(zhí)行:
[0039]確定所述目標(biāo)數(shù)據(jù)的主鍵中沒有相同的接收數(shù)據(jù)的主鍵的差異主鍵,確定差異主鍵對應(yīng)的差異目標(biāo)數(shù)據(jù)。
[0040]進(jìn)一步地,所述第一獲取單元,包括:觸發(fā)器;
[0041]所述第一獲取單元,用于當(dāng)源端中的數(shù)據(jù)發(fā)生變化時,觸發(fā)所述觸發(fā)器獲取發(fā)生變化的變化數(shù)據(jù),將所述變化數(shù)據(jù)作為目標(biāo)數(shù)據(jù)。
[0042]進(jìn)一步地,所述發(fā)送單元,包括:設(shè)置在所述源端和所述目標(biāo)端之間的數(shù)據(jù)交換前置機;
[0043]所述發(fā)送單元,用于將所述目標(biāo)數(shù)據(jù)發(fā)送給所述數(shù)據(jù)交換前置機,通過所述數(shù)據(jù)交換前置機將所述目標(biāo)數(shù)據(jù)發(fā)送給所述目標(biāo)端。
[0044]進(jìn)一步地,所述發(fā)送單元,用于將所述目標(biāo)數(shù)據(jù)打包,將打包后的目標(biāo)數(shù)據(jù)發(fā)送給所述目標(biāo)端。
[0045]進(jìn)一步地,還包括:存儲單元,用于將所有第一信息和/或所有第二信息存儲到所述預(yù)先設(shè)置的核對表中。
[0046]進(jìn)一步地,所述第一獲取單元,用于按照所述源端中每條數(shù)據(jù)的時間戳和預(yù)設(shè)的獲取周期,從所述源端周期性地獲取在獲取時間段內(nèi)的目標(biāo)數(shù)據(jù),所述獲取時間段為上次獲取目標(biāo)數(shù)據(jù)的時間到本次獲取目標(biāo)數(shù)據(jù)的時間之間的時間段。
[0047]本發(fā)明提供的一種數(shù)據(jù)交互的方法及裝置,獲取源端中的目標(biāo)數(shù)據(jù)和目標(biāo)數(shù)據(jù)的第一信息,獲取目標(biāo)端接收到的接收數(shù)據(jù)的第二信息,通過將第一信息和第二信息進(jìn)行匹配,確定目標(biāo)數(shù)據(jù)與接收數(shù)據(jù)是否一致,如果一致,則本次數(shù)據(jù)交換完成,如果不一致,則需要重新獲取不一致的差異目標(biāo)數(shù)據(jù),指的接收數(shù)據(jù)與目標(biāo)數(shù)據(jù)一致,進(jìn)而保證源端中發(fā)出的目標(biāo)數(shù)據(jù)與目標(biāo)端中接收到的數(shù)據(jù)一致。
【附圖說明】
[0048]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使