本申請涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)同步方法及裝置。
背景技術(shù):
在很多業(yè)務(wù)系統(tǒng)中,往往存在數(shù)據(jù)同步的需求。數(shù)據(jù)同步是將一個數(shù)據(jù)源的數(shù)據(jù)同步更新到另一個數(shù)據(jù)源的過程。
目前,業(yè)務(wù)系統(tǒng)的數(shù)據(jù)隨著業(yè)務(wù)發(fā)展不斷發(fā)生變更,為了確保業(yè)務(wù)系統(tǒng)的數(shù)據(jù)完整性,通常需定期或不定期地將變更的離線數(shù)據(jù)源同步更新到業(yè)務(wù)系統(tǒng)的在線數(shù)據(jù)源?,F(xiàn)有技術(shù)在數(shù)據(jù)同步過程中,往往事先暫停業(yè)務(wù)系統(tǒng)的在線數(shù)據(jù)源的使用,隨后將待同步的數(shù)據(jù)同步更新到暫停使用的在線數(shù)據(jù)源中,在數(shù)據(jù)同步完成后,再恢復(fù)業(yè)務(wù)系統(tǒng)對所述在線數(shù)據(jù)源的正常使用。
現(xiàn)有技術(shù)中在數(shù)據(jù)同步的過程中,需要暫停業(yè)務(wù)系統(tǒng)的在線數(shù)據(jù)源的使用,這樣勢必造成業(yè)務(wù)系統(tǒng)的服務(wù)中斷。
技術(shù)實現(xiàn)要素:
本申請實施例的目的是提供一種數(shù)據(jù)同步方法及裝置,以解決現(xiàn)有技術(shù)中在數(shù)據(jù)同步的過程中暫停業(yè)務(wù)系統(tǒng)的在線數(shù)據(jù)源的使用,造成業(yè)務(wù)系統(tǒng)的服務(wù)中斷的問題。
為解決上述技術(shù)問題,本申請實施例提供的數(shù)據(jù)同步方法及裝置是這樣實現(xiàn)的:
一種數(shù)據(jù)同步方法,包括:
根據(jù)業(yè)務(wù)系統(tǒng)配置的數(shù)據(jù)表對應(yīng)的表名屬性的值,確定所述業(yè)務(wù)系統(tǒng)的備份數(shù)據(jù)表及業(yè)務(wù)數(shù)據(jù)表;
在第一時刻將源數(shù)據(jù)集中的所述第一時刻之前的待同步數(shù)據(jù)同步到確定的所述備份數(shù)據(jù)表中;
將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由第一屬性值修改為第三屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由第二屬性值修改為所述第一屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由所述第三屬性值修改為所述第二屬性值;
根據(jù)修改后的數(shù)據(jù)表對應(yīng)的表名屬性的值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表確定為所述業(yè)務(wù)系統(tǒng)在所述第一時刻后的第二時刻的業(yè)務(wù)數(shù)據(jù)表。
一種數(shù)據(jù)同步方法,包括:
根據(jù)與業(yè)務(wù)系統(tǒng)配置的數(shù)據(jù)表對應(yīng)的表名屬性的值,確定所述業(yè)務(wù)系統(tǒng)的備份數(shù)據(jù)表及業(yè)務(wù)數(shù)據(jù)表;
在第一時刻將源數(shù)據(jù)集中的所述第一時刻之前的待同步數(shù)據(jù)同步到確定的所述備份數(shù)據(jù)表中;
將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由第二屬性值修改為第三屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由第一屬性值修改為所述第二屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由所述第三屬性值修改為所述第一屬性值;
根據(jù)修改后的數(shù)據(jù)表對應(yīng)的表名屬性的值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表確定為所述業(yè)務(wù)系統(tǒng)在所述第一時刻后的第二時刻的業(yè)務(wù)數(shù)據(jù)表。
一種數(shù)據(jù)同步裝置,包括:
第一確定模塊,用于根據(jù)業(yè)務(wù)系統(tǒng)配置的數(shù)據(jù)表對應(yīng)的表名屬性的值,確定所述業(yè)務(wù)系統(tǒng)的備份數(shù)據(jù)表及業(yè)務(wù)數(shù)據(jù)表;
第一同步模塊,用于在第一時刻將源數(shù)據(jù)集中的所述第一時刻之前的待同步數(shù)據(jù)同步到確定的所述備份數(shù)據(jù)表中;
修改模塊,用于將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由第一屬性值修改為第三屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由第二屬性值修改為所述第一屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由所述第三屬性值修改為所述第二屬性值;
第二確定模塊,用于根據(jù)修改后的數(shù)據(jù)表對應(yīng)的表名屬性的值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表確定為所述業(yè)務(wù)系統(tǒng)在所述第一時刻后的第二時刻的業(yè)務(wù)數(shù)據(jù)表。
一種數(shù)據(jù)同步裝置,包括:
第一確定模塊,用于根據(jù)與業(yè)務(wù)系統(tǒng)配置的數(shù)據(jù)表對應(yīng)的表名屬性的值,確定所述業(yè)務(wù)系統(tǒng)的備份數(shù)據(jù)表及業(yè)務(wù)數(shù)據(jù)表;
第一同步模塊,用于在第一時刻將源數(shù)據(jù)集中的所述第一時刻之前的待同步數(shù)據(jù)同步到確定的所述備份數(shù)據(jù)表中;
修改模塊,用于將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由第二屬性值修改為第三屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由第一屬性值修改為所述第二屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由所述第三屬性值修改為所述第一屬性值;
第二確定模塊,用于根據(jù)修改后的數(shù)據(jù)表對應(yīng)的表名屬性的值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表確定為所述業(yè)務(wù)系統(tǒng)在所述第一時刻后的第二時刻的業(yè)務(wù)數(shù)據(jù)表。
由以上本申請實施例提供的技術(shù)方案可見,業(yè)務(wù)系統(tǒng)通過預(yù)先配置至少兩個數(shù)據(jù)表,在第一時刻需要進行數(shù)據(jù)同步時,將其中一個數(shù)據(jù)表確定為備份數(shù)據(jù)表,將另一個數(shù)據(jù)表確定為該業(yè)務(wù)系統(tǒng)在線使用的業(yè)務(wù)數(shù)據(jù)表。隨后,將源 數(shù)據(jù)集中的待同步數(shù)據(jù)同步到所述備份數(shù)據(jù)表中,從而避免在數(shù)據(jù)同步過程中暫停業(yè)務(wù)數(shù)據(jù)表的使用。在數(shù)據(jù)同步完成后,通過修改上述兩個數(shù)據(jù)表的元數(shù)據(jù)中的表名屬性的值來實現(xiàn)數(shù)據(jù)表的重命名,以將數(shù)據(jù)同步之前的備份數(shù)據(jù)表作為后續(xù)業(yè)務(wù)系統(tǒng)使用的業(yè)務(wù)數(shù)據(jù)表,而將數(shù)據(jù)同步之前的業(yè)務(wù)數(shù)據(jù)表作為后續(xù)業(yè)務(wù)系統(tǒng)使用的備份數(shù)據(jù)表。本申請實施例通過上述過程,避免數(shù)據(jù)同步過程造成業(yè)務(wù)系統(tǒng)的服務(wù)中斷。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了本申請實施例從源數(shù)據(jù)集到目標(biāo)數(shù)據(jù)集的數(shù)據(jù)同步的過程;
圖2為本申請一實施例的數(shù)據(jù)同步方法的流程圖;
圖3為本申請另一實施例的數(shù)據(jù)同步方法的流程圖;
圖4為本申請實施例從源數(shù)據(jù)集到目標(biāo)數(shù)據(jù)集的數(shù)據(jù)同步、并實時監(jiān)聽源數(shù)據(jù)集的過程;
圖5為本申請一實施例中的數(shù)據(jù)同步裝置的模塊圖;
圖6為本申請另一實施例中的數(shù)據(jù)同步裝置的模塊圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本申請保護的范圍。
圖1示出了本申請實施例從源數(shù)據(jù)集到目標(biāo)數(shù)據(jù)集的數(shù)據(jù)同步的過程。本實施例中,業(yè)務(wù)系統(tǒng)可以配置有源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集,該業(yè)務(wù)系統(tǒng)可以是電商網(wǎng)站的業(yè)務(wù)數(shù)據(jù)系統(tǒng)、或門戶網(wǎng)站的業(yè)務(wù)數(shù)據(jù)系統(tǒng)等。該業(yè)務(wù)系統(tǒng)可以包括用以存儲在線業(yè)務(wù)數(shù)據(jù)的并供業(yè)務(wù)系統(tǒng)在線使用的數(shù)據(jù)表及用以存儲離線數(shù)據(jù)的源數(shù)據(jù)集。所述目標(biāo)數(shù)據(jù)集至少配置有兩個數(shù)據(jù)表:數(shù)據(jù)表A和數(shù)據(jù)表B。且每個數(shù)據(jù)表均對應(yīng)于用以描述該表一個或多個特定屬性的元數(shù)據(jù),所述元數(shù)據(jù)中包含的屬性例如是:表名(Table Name)屬性、數(shù)據(jù)長度(Data Length)屬性,等等。
圖2為本申請一實施例的數(shù)據(jù)同步方法的流程圖。結(jié)合圖1、圖2所示,為了實現(xiàn)將上述業(yè)務(wù)系統(tǒng)的源數(shù)據(jù)集中的離線數(shù)據(jù)同步到在線使用的數(shù)據(jù)表中,并且在數(shù)據(jù)同步過程中避免業(yè)務(wù)服務(wù)的中斷,本申請實施例的數(shù)據(jù)同步方法包括如下步驟:
S101:根據(jù)業(yè)務(wù)系統(tǒng)配置的數(shù)據(jù)表對應(yīng)的表名屬性的值,確定所述業(yè)務(wù)系統(tǒng)的備份數(shù)據(jù)表及業(yè)務(wù)數(shù)據(jù)表。
如前所述,目標(biāo)數(shù)據(jù)集至少配置有數(shù)據(jù)表A和數(shù)據(jù)表B,每個數(shù)據(jù)表對應(yīng)的元數(shù)據(jù)中包含表名屬性,該表名屬性的值可以描述該表的名稱。在業(yè)務(wù)系統(tǒng)的運行過程中,以上目標(biāo)數(shù)據(jù)集中始終包括一個用以供該業(yè)務(wù)系統(tǒng)在線使用的數(shù)據(jù)表(即業(yè)務(wù)數(shù)據(jù)表),以及一個用以供業(yè)務(wù)系統(tǒng)進行數(shù)據(jù)同步的數(shù)據(jù)表(即備份數(shù)據(jù)表)。本實施例可以根據(jù)當(dāng)前各數(shù)據(jù)表的元數(shù)據(jù)中表名屬性的值,來確定當(dāng)前業(yè)務(wù)系統(tǒng)的備份數(shù)據(jù)表及業(yè)務(wù)數(shù)據(jù)表。例如:業(yè)務(wù)系統(tǒng)可以預(yù)先配置兩個與表名屬性對應(yīng)的值:第一屬性值(如:“name1”)和第二屬性值(如:“name2”),其中,假設(shè)業(yè)務(wù)系統(tǒng)將表名屬性的值為上述第一屬性值的數(shù)據(jù)表確定為備份數(shù)據(jù)表,將表名屬性的值為上述第二屬性值的數(shù)據(jù)表確定為業(yè)務(wù)數(shù)據(jù)表,則,在圖1所示的數(shù)據(jù)同步動作完成之前,業(yè)務(wù)系統(tǒng)將數(shù)據(jù)表A確定為備份數(shù)據(jù)表,而將數(shù)據(jù)表B確定為業(yè)務(wù)數(shù)據(jù)表。
S102:在第一時刻將源數(shù)據(jù)集中的所述第一時刻之前的待同步數(shù)據(jù)同步到 確定的所述備份數(shù)據(jù)表中。
本申請實施例中,可以通過定時機制來實現(xiàn)源數(shù)據(jù)集到目標(biāo)數(shù)據(jù)集中備份數(shù)據(jù)表(數(shù)據(jù)表A)的數(shù)據(jù)同步。例如,以單日為定時周期,業(yè)務(wù)系統(tǒng)可以在新的一天(如:2015-03-25)的凌晨0點整(上述第一時刻)獲取存儲在上述源數(shù)據(jù)集中的所述第一時刻之前(如:2015-03-24當(dāng)天和2015-03-24之前)的待同步數(shù)據(jù)(離線數(shù)據(jù)),并將所述待同步數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)集中的備份數(shù)據(jù)表(數(shù)據(jù)表A)中。當(dāng)然,定時數(shù)據(jù)同步機制的定時周期也可以是其他任意時長,或者是采取不定時數(shù)據(jù)同步機制,如:根據(jù)源數(shù)據(jù)集中的數(shù)據(jù)更新情況,在判斷更新的數(shù)據(jù)達到一定的數(shù)量級時,啟動所述數(shù)據(jù)同步動作。
為確保上述數(shù)據(jù)同步過程能夠在較短時間內(nèi)完成,本申請實施例采用塊數(shù)據(jù)(Chunk)同步的方式,將源數(shù)據(jù)集中的待同步數(shù)據(jù)同步到所述備份數(shù)據(jù)表中。采取塊數(shù)據(jù)存儲的過程中,數(shù)據(jù)文件通過被分割為每個默認(rèn)大小為64MB的塊數(shù)據(jù)Chunk的方式存儲,從而數(shù)據(jù)同步的過程中,數(shù)據(jù)文件以預(yù)先分割的各個塊數(shù)據(jù)Chunk的方式進行同步,從而減少數(shù)據(jù)傳輸次數(shù),進而可以大幅提升數(shù)據(jù)同步的速度。
S103:將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由第一屬性值修改為第三屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由第二屬性值修改為所述第一屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由所述第三屬性值修改為所述第二屬性值。
舉例而言,業(yè)務(wù)系統(tǒng)在新的一天(如:2015-03-25)的凌晨0點整(上述第一時刻)所使用的備份數(shù)據(jù)表是數(shù)據(jù)表A,該數(shù)據(jù)表A對應(yīng)的元數(shù)據(jù)中用以描述表名的表名屬性的值是第一屬性值(如:“name1”),而在上述第一時刻(也就是數(shù)據(jù)同步動作結(jié)束之前),為業(yè)務(wù)系統(tǒng)提供在線服務(wù)的業(yè)務(wù)數(shù)據(jù)表是數(shù)據(jù)表B,該數(shù)據(jù)表B對應(yīng)的元數(shù)據(jù)中用以描述表名的表名屬性的值是第二屬性值(如:“name2”)。在數(shù)據(jù)同步動作結(jié)束后,業(yè)務(wù)系統(tǒng)首先可以將數(shù)據(jù)表A的 表名屬性的值由第一屬性值(如:“name1”)修改為第三屬性值(如:“name3”),隨后將數(shù)據(jù)表B的表名屬性的值由第二屬性值(如:“name2”)修改為第一屬性值(如:“name1”),最后將數(shù)據(jù)表A的表名屬性的值由第三屬性值(如:“name3”)修改為第二屬性值(如:“name2”)。
S104:根據(jù)修改后的數(shù)據(jù)表對應(yīng)的表名屬性的值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表確定為所述業(yè)務(wù)系統(tǒng)在所述第一時刻后的第二時刻的業(yè)務(wù)數(shù)據(jù)表。
如上所述,業(yè)務(wù)系統(tǒng)在配置數(shù)據(jù)表之后,會預(yù)先生成數(shù)據(jù)表的功能與數(shù)據(jù)表的表名屬性的值的對應(yīng)關(guān)系,也就是說,可以設(shè)定表名屬性的值是第一屬性值(如:“name1”)的數(shù)據(jù)表的功能是:該業(yè)務(wù)系統(tǒng)用以數(shù)據(jù)同步的備份數(shù)據(jù)表;可以設(shè)定表名屬性的值是第二屬性值(如:“name2”)的數(shù)據(jù)表的功能是:該業(yè)務(wù)系統(tǒng)用以在線使用的業(yè)務(wù)數(shù)據(jù)表。
通過修改數(shù)據(jù)表A和數(shù)據(jù)表B的表名屬性的值,實現(xiàn)數(shù)據(jù)表A和數(shù)據(jù)表B的名稱的更換,即數(shù)據(jù)表A的表名屬性的值由修改前的第一屬性值(如:“name1”)變成修改后的第二屬性值(如:“name2”),而數(shù)據(jù)表B的表名屬性的值由修改前的第二屬性值(如:“name2”)變成修改后的第一屬性值(如:“name1”),從而業(yè)務(wù)系統(tǒng)可以在數(shù)據(jù)同步完成后,將被執(zhí)行數(shù)據(jù)同步動作的數(shù)據(jù)表A確定為第一時刻后的第二時刻起(該第二時刻可以步驟S103執(zhí)行結(jié)束的時刻)所需在線使用的業(yè)務(wù)數(shù)據(jù)表,相應(yīng)地,將在業(yè)務(wù)系統(tǒng)在數(shù)據(jù)同步之前在線使用的數(shù)據(jù)表B確定為上述第二時刻起所需執(zhí)行數(shù)據(jù)同步動作的備份數(shù)據(jù)表。通過修改上述數(shù)據(jù)表對應(yīng)的表名屬性的值,可以在不中斷業(yè)務(wù)系統(tǒng)的在線服務(wù)的基礎(chǔ)上,將源數(shù)據(jù)集中的離線數(shù)據(jù)同步到備份數(shù)據(jù)表中,并在同步完成后,將備份數(shù)據(jù)表快速變更為業(yè)務(wù)系統(tǒng)在線使用的業(yè)務(wù)數(shù)據(jù)表。
圖3為本申請另一實施例的數(shù)據(jù)同步方法的流程圖。本實施例的數(shù)據(jù)同步方法包括如下步驟:
S201:根據(jù)與業(yè)務(wù)系統(tǒng)配置的數(shù)據(jù)表對應(yīng)的表名屬性的值,確定所述業(yè)務(wù) 系統(tǒng)的備份數(shù)據(jù)表及業(yè)務(wù)數(shù)據(jù)表。
S202:在第一時刻將源數(shù)據(jù)集中的所述第一時刻之前的待同步數(shù)據(jù)同步到確定的所述備份數(shù)據(jù)表中。
S203:將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由第二屬性值修改為第三屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由第一屬性值修改為所述第二屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由所述第三屬性值修改為所述第一屬性值。
舉例而言,本實施例中,業(yè)務(wù)系統(tǒng)在新的一天(如:2015-03-25)的凌晨0點整(上述第一時刻)所使用的備份數(shù)據(jù)表是數(shù)據(jù)表A,該數(shù)據(jù)表A對應(yīng)的元數(shù)據(jù)中用以描述表名的表名屬性的值是第一屬性值(如:“name1”),而在上述第一時刻(也就是數(shù)據(jù)同步動作結(jié)束之前),為業(yè)務(wù)系統(tǒng)提供在線服務(wù)的業(yè)務(wù)數(shù)據(jù)表是數(shù)據(jù)表B,該數(shù)據(jù)表B對應(yīng)的元數(shù)據(jù)中用以描述表名的表名屬性的值是第二屬性值(如:“name2”)。在數(shù)據(jù)同步動作結(jié)束后,業(yè)務(wù)系統(tǒng)首先可以將數(shù)據(jù)表B的表名屬性的值由第二屬性值(如:“name2”)修改為第三屬性值(如:“name3”),隨后將數(shù)據(jù)表A的表名屬性的值由第一屬性值(如:“name1”)修改為第二屬性值(如:“name2”),最后將數(shù)據(jù)表B的表名屬性的值由第三屬性值(如:“name3”)修改為第一屬性值(如:“name1”)。
S204:根據(jù)修改后的數(shù)據(jù)表對應(yīng)的表名屬性的值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表確定為所述業(yè)務(wù)系統(tǒng)在所述第一時刻后的第二時刻的業(yè)務(wù)數(shù)據(jù)表。
如上所述,業(yè)務(wù)系統(tǒng)在配置數(shù)據(jù)表之后,會預(yù)先生成數(shù)據(jù)表的功能與數(shù)據(jù)表的表名屬性的值的對應(yīng)關(guān)系,也就是說,可以設(shè)定表名屬性的值是第一屬性值(如:“name1”)的數(shù)據(jù)表的功能是:該業(yè)務(wù)系統(tǒng)用以數(shù)據(jù)同步的備份數(shù)據(jù)表;可以設(shè)定表名屬性的值是第二屬性值(如:“name2”)的數(shù)據(jù)表的功能是:該業(yè)務(wù)系統(tǒng)用以在線使用的業(yè)務(wù)數(shù)據(jù)表。
通過修改上述數(shù)據(jù)表對應(yīng)的表名屬性的值,可以在不中斷業(yè)務(wù)系統(tǒng)的在線服務(wù)的基礎(chǔ)上,將源數(shù)據(jù)集中的離線數(shù)據(jù)同步到備份數(shù)據(jù)表中,并在同步完成后,將備份數(shù)據(jù)表快速變更為業(yè)務(wù)系統(tǒng)在線使用的業(yè)務(wù)數(shù)據(jù)表。
圖4為本申請實施例從源數(shù)據(jù)集到目標(biāo)數(shù)據(jù)集的數(shù)據(jù)同步、并實時監(jiān)聽源數(shù)據(jù)集的過程。為了實現(xiàn)在線使用的業(yè)務(wù)數(shù)據(jù)表中的數(shù)據(jù)完整性,本申請實施例需實時監(jiān)聽源數(shù)據(jù)集中離線數(shù)據(jù)的變更(例如:新增數(shù)據(jù)、修改數(shù)據(jù)、或刪除數(shù)據(jù)等)。則本申請實施例實時監(jiān)聽源數(shù)據(jù)集的過程包括:
從所述第一時刻后的第二時刻起,監(jiān)聽所述源數(shù)據(jù)集的數(shù)據(jù)變更,在監(jiān)聽到所述源數(shù)據(jù)集的數(shù)據(jù)變更時,獲取與所述數(shù)據(jù)變更對應(yīng)的變更日志,最終,根據(jù)所述變更日志,同步所述業(yè)務(wù)系統(tǒng)自所述第二時刻起在線使用的業(yè)務(wù)數(shù)據(jù)表中的數(shù)據(jù)。
舉例而言,將歷史數(shù)據(jù)全量同步完成的第二時刻(上述步驟S105或S205完成的時刻)設(shè)置為實時監(jiān)聽源數(shù)據(jù)集數(shù)據(jù)變更的開始時刻,當(dāng)被監(jiān)聽的源數(shù)據(jù)集中的數(shù)據(jù)發(fā)生變更(更新、新增、刪除等)時,業(yè)務(wù)系統(tǒng)的實時監(jiān)聽模塊會實時獲取當(dāng)前的變更日志并進行解析,所述變更日志可以包括變更操作信息、變更記錄信息、變更時間點信息等,最終,將當(dāng)前源數(shù)據(jù)集中的變更數(shù)據(jù)同步到最新的業(yè)務(wù)數(shù)據(jù)表(如數(shù)據(jù)表B)中。本實施例中,由于通常源數(shù)據(jù)集中數(shù)據(jù)變更較少,所以數(shù)據(jù)同步動作對業(yè)務(wù)系統(tǒng)在線使用的業(yè)務(wù)數(shù)據(jù)表的影響較小,進而不會影響業(yè)務(wù)數(shù)據(jù)表的在線服務(wù)。
接下來將結(jié)合圖5至圖6介紹本申請實施例中數(shù)據(jù)同步裝置的技術(shù)方案,所述數(shù)據(jù)同步裝置是基于上述數(shù)據(jù)同步方法的原理的,故該數(shù)據(jù)同步裝置的具體技術(shù)特征可參照以上內(nèi)容。
圖5為本申請一實施例中的數(shù)據(jù)同步裝置的模塊圖。本實施例中,所述數(shù)據(jù)同步裝置包括:
第一確定模塊301,用于根據(jù)業(yè)務(wù)系統(tǒng)配置的數(shù)據(jù)表對應(yīng)的表名屬性的值,確定所述業(yè)務(wù)系統(tǒng)的備份數(shù)據(jù)表及業(yè)務(wù)數(shù)據(jù)表;
第一同步模塊302,用于在第一時刻將源數(shù)據(jù)集中的所述第一時刻之前的待同步數(shù)據(jù)同步到確定的所述備份數(shù)據(jù)表中;
修改模塊303,用于將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由第一屬性值修改為第三屬性值;將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由第二屬性值修改為所述第一屬性值;將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由所述第三屬性值修改為所述第二屬性值。
第二確定模塊304,用于根據(jù)修改后的數(shù)據(jù)表對應(yīng)的表名屬性的值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表確定為所述業(yè)務(wù)系統(tǒng)在所述第一時刻后的第二時刻的業(yè)務(wù)數(shù)據(jù)表。
本申請實施例中,所述第一同步模塊302具體用于:
采用塊數(shù)據(jù)同步的方式,在第一時刻將源數(shù)據(jù)集中的所述第一時刻之前的待同步數(shù)據(jù)同步到確定的所述備份數(shù)據(jù)表中。
本申請另一實施例中,上述修改模塊303可以用于:將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由第二屬性值修改為第三屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由第一屬性值修改為所述第二屬性值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由所述第三屬性值修改為所述第一屬性值;
圖6為本申請另一實施例中的數(shù)據(jù)同步裝置的模塊圖。本實施例中,所述數(shù)據(jù)同步裝置包括:
第一確定模塊401,用于根據(jù)與業(yè)務(wù)系統(tǒng)配置的數(shù)據(jù)表對應(yīng)的表名屬性的值,確定所述業(yè)務(wù)系統(tǒng)的備份數(shù)據(jù)表及業(yè)務(wù)數(shù)據(jù)表;
第一同步模塊402,用于在第一時刻將源數(shù)據(jù)集中的所述第一時刻之前的待同步數(shù)據(jù)同步到確定的所述備份數(shù)據(jù)表中;
修改模塊403,用于將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由第二屬性值修改為第三屬性值;將所述業(yè)務(wù)系統(tǒng)在所述第一時 刻的備份數(shù)據(jù)表對應(yīng)的表名屬性的值由第一屬性值修改為所述第二屬性值;將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的業(yè)務(wù)數(shù)據(jù)表對應(yīng)的表名屬性的值由所述第三屬性值修改為所述第一屬性值。
第二確定模塊404,用于根據(jù)修改后的數(shù)據(jù)表對應(yīng)的表名屬性的值,將所述業(yè)務(wù)系統(tǒng)在所述第一時刻的備份數(shù)據(jù)表確定為所述業(yè)務(wù)系統(tǒng)在所述第一時刻后的第二時刻的業(yè)務(wù)數(shù)據(jù)表。
監(jiān)聽模塊405,用于從所述第一時刻后的第二時刻起,監(jiān)聽所述源數(shù)據(jù)集的數(shù)據(jù)變更;
獲取模塊406,用于在監(jiān)聽到所述源數(shù)據(jù)集的數(shù)據(jù)變更時,獲取與所述數(shù)據(jù)變更對應(yīng)的變更日志;
第二同步模塊407,用于根據(jù)所述變更日志,同步所述業(yè)務(wù)系統(tǒng)在所述第二時刻的業(yè)務(wù)數(shù)據(jù)表中的數(shù)據(jù)。
綜上所述,本申請上述各實施例中,所述業(yè)務(wù)系統(tǒng)通過預(yù)先配置至少兩個數(shù)據(jù)表,在第一時刻需要進行數(shù)據(jù)同步時,將其中一個數(shù)據(jù)表確定為備份數(shù)據(jù)表,將另一個數(shù)據(jù)表確定為該業(yè)務(wù)系統(tǒng)在線使用的業(yè)務(wù)數(shù)據(jù)表。隨后,將源數(shù)據(jù)集中的待同步數(shù)據(jù)同步到所述備份數(shù)據(jù)表中,從而避免在數(shù)據(jù)同步過程中暫停業(yè)務(wù)數(shù)據(jù)表的使用。在數(shù)據(jù)同步完成后,通過修改上述兩個數(shù)據(jù)表的元數(shù)據(jù)中的表名屬性的值來實現(xiàn)數(shù)據(jù)表的重命名,以將數(shù)據(jù)同步之前的備份數(shù)據(jù)表作為后續(xù)業(yè)務(wù)系統(tǒng)使用的業(yè)務(wù)數(shù)據(jù)表,而將數(shù)據(jù)同步之前的業(yè)務(wù)數(shù)據(jù)表作為后續(xù)業(yè)務(wù)系統(tǒng)使用的備份數(shù)據(jù)表。本申請實施例通過上述過程,避免數(shù)據(jù)同步過程造成業(yè)務(wù)系統(tǒng)的服務(wù)中斷,從而提升用戶的使用體驗。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當(dāng)然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包 含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算 機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。