本發(fā)明涉及信息
技術(shù)領域:
,尤其涉及一種數(shù)據(jù)同步方法及裝置。
背景技術(shù):
:隨著信息技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)能夠處理的數(shù)據(jù)量也越來越大。由于單臺的服務器的性能的限制,在實際的互聯(lián)網(wǎng)數(shù)據(jù)處理時,通常采用多臺的服務器。因此,保證多臺服務器中數(shù)據(jù)的一致性具有很非常重要的意義。目前,通常采用同步所有服務器數(shù)據(jù)庫的方式,保證多臺服務器中數(shù)據(jù)的一致性。然而,數(shù)據(jù)庫中的有些關系型的數(shù)據(jù)表中可能存在外鍵的關聯(lián)關系,當數(shù)據(jù)庫中存在以下情況時,1):引用表需要插入一條數(shù)據(jù)時被引用的數(shù)據(jù)表中不存在相關記錄;2):被引用表需要刪除一條數(shù)據(jù)時,這條數(shù)據(jù)有被別的表引用;3)引用表需修改引用的內(nèi)容時,相關引用的內(nèi)容在被引用表中不存在,數(shù)據(jù)同步就可能失敗。目前,為了避免數(shù)據(jù)同步失敗,保證多臺服務器中數(shù)據(jù)的一致性,在進行數(shù)據(jù)同步之前,通常需要根據(jù)待同步的配置待同步的數(shù)據(jù)和邏輯,即每當數(shù)據(jù)更新時,都需要重新修改相關的邏輯,造成無法做到自動適應相應的改變,從而導致數(shù)據(jù)同步的效率較低。技術(shù)實現(xiàn)要素:鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述技術(shù)問題得數(shù)據(jù)同步方法及裝置。依據(jù)本發(fā)明一方面,本發(fā)明實施例提供了一種數(shù)據(jù)同步方法,包括:獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息;通過遍歷所述外鍵關聯(lián)關系,判斷所述數(shù)據(jù)表是否被引用;當所述數(shù)據(jù)表未被引用時,將所述數(shù)據(jù)表插入到預置結(jié)果集合中;當所述數(shù)據(jù)表被引用時,將所述數(shù)據(jù)插入到預置字典集合中;遍歷所述預置字典集合中的數(shù)據(jù)表;當所述預置字典集合中不存在所述數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,將所述數(shù)據(jù)表插入到所述預置結(jié)果集合,重復執(zhí)行遍歷所述預置字典集合中的數(shù)據(jù)表的步驟;按照所述數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。依據(jù)本發(fā)明另一方面,本發(fā)明實施例提供了一種數(shù)據(jù)同步裝置,包括:獲取單元,用于獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息;判斷單元,用于通過遍歷所述外鍵關聯(lián)關系,判斷所述數(shù)據(jù)表是否被引用;插入單元,用于當所述數(shù)據(jù)表未被引用時,將所述數(shù)據(jù)表插入到預置結(jié)果集合中;所述插入單元,還用于當所述數(shù)據(jù)表被引用時,將所述數(shù)據(jù)插入到預置字典集合中;遍歷單元,用于遍歷所述預置字典集合中的數(shù)據(jù)表;所述插入單元,還用于當預置字典集合中不存在所述數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,將所述數(shù)據(jù)表插入到預置結(jié)果集合,重復執(zhí)行遍歷所述預置字典集合中的數(shù)據(jù)表的步驟;同步單元,用于按照所述數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。借由上述技術(shù)方案,本發(fā)明提供的一種數(shù)據(jù)同步方法及裝置。首先獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息;通過遍歷所述外鍵關聯(lián)關系,判斷所述數(shù)據(jù)表是否被引用;當所述數(shù)據(jù)表未被引用時,將所述數(shù)據(jù)表插入到預置結(jié)果集合中;當所述數(shù)據(jù)表被引用時,將所述數(shù)據(jù)插入到預置字典集合中;遍歷所述預置字典集合中的數(shù)據(jù)表;當所 述預置字典集合中不存在所述數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,將所述數(shù)據(jù)表插入到所述預置結(jié)果集合,重復執(zhí)行遍歷所述預置字典集合中的數(shù)據(jù)表的步驟;按照所述數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。與目前在進行數(shù)據(jù)同步之前,通常需要根據(jù)待同步的配置待同步的數(shù)據(jù)和邏輯相比,本發(fā)明實施例對待同步的各個數(shù)據(jù)表按照外鍵關聯(lián)關系進行排序,然后按照排序后的順序同步所述各個數(shù)據(jù)表,能夠避免重復修改數(shù)據(jù)表的邏輯,從而能夠提升數(shù)據(jù)同步的效率。附圖說明通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:圖1示出了本發(fā)明實施例提供的一種數(shù)據(jù)同步方法的流程圖;圖2示出了本發(fā)明實施例提供的另一種數(shù)據(jù)同步方法的流程圖;圖3示出了本發(fā)明實施例提供的一種數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖;圖4示出了本發(fā)明實施例提供的一種數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖。具體實施方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術(shù)人員。本發(fā)明實施例提供了一種數(shù)據(jù)同步方法,如圖1所示,所述方法包括:101、獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系。其中,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息。外鍵關聯(lián)是指的一個數(shù)據(jù)表的主鍵和另外一個數(shù)據(jù)表的非主鍵之間的關聯(lián)。具體地,所述數(shù)據(jù)表對應的外鍵關聯(lián)關系表示 數(shù)據(jù)表與其他數(shù)據(jù)表之間的關聯(lián)關系。在本發(fā)明實施例中,所述數(shù)據(jù)表對應的外鍵關聯(lián)關系表示數(shù)據(jù)表與其他數(shù)據(jù)表之間的引用關系。所述數(shù)據(jù)表的標識信息可以為數(shù)據(jù)表的名稱,也可以為數(shù)據(jù)表的身份標識號(identifify,id),本發(fā)明實施例不做限定。例如,數(shù)據(jù)表為數(shù)據(jù)表a,引用數(shù)據(jù)表a的關聯(lián)數(shù)據(jù)表為數(shù)據(jù)表b。102、通過遍歷外鍵關聯(lián)關系,判斷數(shù)據(jù)表是否被引用。103、當數(shù)據(jù)表未被引用時,將數(shù)據(jù)表插入到預置結(jié)果集合中。104、當數(shù)據(jù)表被引用時,將數(shù)據(jù)插入到預置字典集合中。具體而言,可以是通過遍歷外鍵關聯(lián)關系,將數(shù)據(jù)表中未被其他數(shù)據(jù)表引用的數(shù)據(jù)表插入到預置結(jié)果集合并將數(shù)據(jù)表中被其他數(shù)據(jù)表引用的數(shù)據(jù)表插入到預置字典集合。例如,待同步的數(shù)據(jù)表為數(shù)據(jù)表a、數(shù)據(jù)表b、數(shù)據(jù)表c、數(shù)據(jù)表d。各個數(shù)據(jù)表對應的外鍵關鍵關系可以為以存儲表的形式存儲,如表1:表1待同步的數(shù)據(jù)表關聯(lián)數(shù)據(jù)表數(shù)據(jù)表a數(shù)據(jù)表b數(shù)據(jù)表c數(shù)據(jù)表c數(shù)據(jù)表d數(shù)據(jù)表d從表1中可以看出,數(shù)據(jù)表a未被其他數(shù)據(jù)表引用,同時引用數(shù)據(jù)c的數(shù)據(jù)表d也未被其他數(shù)據(jù)表引用,則將數(shù)據(jù)表a插入到預置結(jié)果集合,然后再將數(shù)據(jù)表d插入到預置結(jié)果集合。此時,預置結(jié)果集合為(數(shù)據(jù)表a、數(shù)據(jù)表d)。數(shù)據(jù)表b被數(shù)據(jù)表c引用,數(shù)據(jù)表c被數(shù)據(jù)表b引用,則將數(shù)據(jù)表b和數(shù)據(jù)表c加入到預置字典集合中,此時預置字典集合為(數(shù)據(jù)表b、數(shù)據(jù)表c)。105、遍歷預置字典集合中的數(shù)據(jù)表。106、當預置字典集合中不存在數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,將數(shù)據(jù)表插入到預置結(jié)果集合,重復執(zhí)行遍歷預置字典集合中的數(shù)據(jù)表的步驟。例如,預置字典集合為(數(shù)據(jù)表b、數(shù)據(jù)表c),數(shù)據(jù)表b被數(shù)據(jù)表c 引用,數(shù)據(jù)表b對應的關聯(lián)數(shù)據(jù)表為數(shù)據(jù)表c,此時不將數(shù)據(jù)表b插入到預置結(jié)果集合中。數(shù)據(jù)表c被數(shù)據(jù)表d引用,數(shù)據(jù)表c對應的關聯(lián)數(shù)據(jù)表為數(shù)據(jù)表d,數(shù)據(jù)表d不在預置字典集合中,則將數(shù)據(jù)表c插入到預置結(jié)果集合中。此時,重復執(zhí)行遍歷預置字典集合中的數(shù)據(jù)表的步驟,數(shù)據(jù)表c中不存在預置字典集合中,即數(shù)據(jù)表b對應的關聯(lián)數(shù)據(jù)表c不存在預置字典集合中,則將數(shù)據(jù)表b插入到預置結(jié)果集合中。107、按照數(shù)據(jù)表插入到預置結(jié)果集合的順序,同步各個數(shù)據(jù)表。例如,若插入到預置結(jié)果集合中的順序為數(shù)據(jù)表a、數(shù)據(jù)表d、數(shù)據(jù)表c、數(shù)據(jù)表b,則按照上述順序進行數(shù)據(jù)表a、數(shù)據(jù)表b、數(shù)據(jù)表c、數(shù)據(jù)表d的同步。與目前直接按照數(shù)據(jù)表a、數(shù)據(jù)表b、數(shù)據(jù)表c、數(shù)據(jù)表d的順序進行數(shù)據(jù)表的同步相比,本發(fā)明能夠避免當數(shù)據(jù)表b更新,而引用數(shù)據(jù)表b的數(shù)據(jù)表c不更新造成的數(shù)據(jù)不一致的問題;同時按照數(shù)據(jù)表插入到所述預置存儲位置的順序,同步各個數(shù)據(jù)表,能夠避免數(shù)據(jù)更新時重新修改相關的邏輯,從而能夠提升數(shù)據(jù)同步的效率。本發(fā)明提供的一種數(shù)據(jù)同步方法。首先獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息;通過遍歷所述外鍵關聯(lián)關系,判斷所述數(shù)據(jù)表是否被引用;當所述數(shù)據(jù)表未被引用時,將所述數(shù)據(jù)表插入到預置結(jié)果集合中;當所述數(shù)據(jù)表被引用時,將所述數(shù)據(jù)插入到預置字典集合中;遍歷所述預置字典集合中的數(shù)據(jù)表;當所述預置字典集合中不存在所述數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,將所述數(shù)據(jù)表插入到所述預置結(jié)果集合,重復執(zhí)行遍歷所述預置字典集合中的數(shù)據(jù)表的步驟;按照所述數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。與目前在進行數(shù)據(jù)同步之前,通常需要根據(jù)待同步的配置待同步的數(shù)據(jù)和邏輯相比,本發(fā)明實施例對待同步的各個數(shù)據(jù)表按照外鍵關聯(lián)關系進行排序,然后按照排序后的順序同步所述各個數(shù)據(jù)表,能夠避免重復修改數(shù)據(jù)表的邏輯,從而能夠提升數(shù)據(jù)同步的效率。本發(fā)明實施例提供了另一種數(shù)據(jù)同步方法,如圖2所示,所述方法包括:201、獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系。其中,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息。所述數(shù)據(jù)表的標識信息可以為數(shù)據(jù)表的名稱,也可以為數(shù)據(jù)表的id,本發(fā)明實施例不做限定。例如,數(shù)據(jù)表為數(shù)據(jù)表a,引用數(shù)據(jù)表a的關聯(lián)數(shù)據(jù)表為數(shù)據(jù)表b。202、通過遍歷外鍵關聯(lián)關系,判斷數(shù)據(jù)表是否被引用。203、當數(shù)據(jù)表未被引用時,將數(shù)據(jù)表插入到預置結(jié)果集合中。204、當數(shù)據(jù)表被引用時,將數(shù)據(jù)插入到預置字典集合中。例如,待同步的數(shù)據(jù)表為數(shù)據(jù)表a、數(shù)據(jù)表b、數(shù)據(jù)表c、數(shù)據(jù)表d、數(shù)據(jù)表e。各個數(shù)據(jù)表對應的外鍵關鍵關系可以為以存儲表的形式存儲,如表2:表2待同步的數(shù)據(jù)表關聯(lián)數(shù)據(jù)表數(shù)據(jù)表a數(shù)據(jù)表c數(shù)據(jù)表b數(shù)據(jù)表c數(shù)據(jù)表d數(shù)據(jù)表d數(shù)據(jù)表e數(shù)據(jù)表e從表2中可以看出,數(shù)據(jù)表b未被其他數(shù)據(jù)表引用,同時數(shù)據(jù)表e也未被其他數(shù)據(jù)表引用,則將數(shù)據(jù)表插入到預置結(jié)果集合,此時預置結(jié)果集合為(數(shù)據(jù)表b、數(shù)據(jù)表e),然后將數(shù)據(jù)表a、數(shù)據(jù)表c、數(shù)據(jù)表d插入到預置字典集合,預置字典集合為(數(shù)據(jù)表a、數(shù)據(jù)表c、數(shù)據(jù)表d)。205、遍歷預置字典集合中的數(shù)據(jù)表。206、檢測預置字典集合是否存在數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表。當預置字典集合中不存在數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,則執(zhí)行步驟207。當預置字典集合中存在數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,則執(zhí)行步驟205。207、將數(shù)據(jù)表插入到預置結(jié)果集合。208、當預置字典集合中的數(shù)據(jù)為零時,按照數(shù)據(jù)表插入到預置結(jié)果集合的順序,同步各個數(shù)據(jù)表。對于本發(fā)明實施例,當預置字典集合中的數(shù)據(jù)為零時,說明所有待同步的數(shù)據(jù)表均被插入到所述預置字典集合中。進一步地,本發(fā)明實施例還包括配置功能:為預置字典集合配置多個key-value鍵值對。其中,所述key為插入的數(shù)據(jù)表的標識信息,所述value為插入的數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表的標識信息。例如,若插入到預置字典集合數(shù)據(jù)表為數(shù)據(jù)表a、數(shù)據(jù)表c、數(shù)據(jù)表d,所述預置字典集合的存儲形式可以如表3:表3待同步的數(shù)據(jù)表關聯(lián)數(shù)據(jù)表數(shù)據(jù)表a數(shù)據(jù)表c數(shù)據(jù)表c數(shù)據(jù)表d數(shù)據(jù)表d數(shù)據(jù)表e對于本發(fā)明實施例,步驟206之前,具體還可以包括:當預置字典集合中保存的每一個key對應的value中存在未被其他數(shù)據(jù)表引用的關聯(lián)數(shù)據(jù)表時,將所述key-value鍵值對插入到所述預置結(jié)果集合中,并在所述預置字典集合中刪除所述key-value鍵值對。此時,步驟206具體可以為:當所述預置字典集合中不存在key-value鍵值對時,按照數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。例如,從表3可以看出數(shù)據(jù)表e在預置字典中不存在,則數(shù)據(jù)表d為未被其他的數(shù)據(jù)表引用的數(shù)據(jù)表,將數(shù)據(jù)表d插入到結(jié)果集合中,此時結(jié)果集合為(數(shù)據(jù)表b、數(shù)據(jù)表e、數(shù)據(jù)表d)并將數(shù)據(jù)表d從預置字典集合中刪除;然后又判斷數(shù)據(jù)表d在預置字典中不存在,則數(shù)據(jù)表c未被其他的數(shù)據(jù)表引用的數(shù)據(jù)表,將數(shù)據(jù)表c插入到結(jié)果集合中并將數(shù)據(jù)表c從預置字典集合中刪除,此時結(jié)果集合為(數(shù)據(jù)表b、數(shù)據(jù)表e、數(shù)據(jù)表d、數(shù)據(jù)表c);最后判斷數(shù)據(jù)表c在預置字典中不存在,則數(shù)據(jù)表a未被其他的數(shù)據(jù)表引用的數(shù)據(jù)表,將數(shù)據(jù)表a插入到結(jié)果集合中并將數(shù)據(jù)表a從預置字典集合中刪除,此時結(jié)果集合為(數(shù)據(jù)表b、數(shù)據(jù)表e、數(shù)據(jù)表d、數(shù)據(jù)表c),同時預置字典集合中不存在key-value鍵值對。當預置字典集合 中不存在key-value鍵值對時,說明完成所有待同步的數(shù)據(jù)表的排序,此時根據(jù)排序后的順序進行數(shù)據(jù)表的同步,能夠保證數(shù)據(jù)的一致性。對于本發(fā)明實施例,對待同步的各個數(shù)據(jù)表按照外鍵關聯(lián)關系進行排序,然后按照排序后的順序同步所述各個數(shù)據(jù)表,能夠避免重復修改數(shù)據(jù)表的邏輯,從而能夠提升數(shù)據(jù)同步的效率。本發(fā)明提供的一種數(shù)據(jù)同步方法。首先獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息;通過遍歷所述外鍵關聯(lián)關系,判斷所述數(shù)據(jù)表是否被引用;當所述數(shù)據(jù)表未被引用時,將所述數(shù)據(jù)表插入到預置結(jié)果集合中;當所述數(shù)據(jù)表被引用時,將所述數(shù)據(jù)插入到預置字典集合中;遍歷所述預置字典集合中的數(shù)據(jù)表;當所述預置字典集合中不存在所述數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,將所述數(shù)據(jù)表插入到所述預置結(jié)果集合,重復執(zhí)行遍歷所述預置字典集合中的數(shù)據(jù)表的步驟;按照所述數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。與目前在進行數(shù)據(jù)同步之前,通常需要根據(jù)待同步的配置待同步的數(shù)據(jù)和邏輯相比,本發(fā)明實施例對待同步的各個數(shù)據(jù)表按照外鍵關聯(lián)關系進行排序,然后按照排序后的順序同步所述各個數(shù)據(jù)表,能夠避免重復修改數(shù)據(jù)表的邏輯,從而能夠提升數(shù)據(jù)同步的效率。進一步地,本發(fā)明實施例提供一種數(shù)據(jù)同步裝置,如圖3所示,所述裝置包括:獲取單元31、判斷單元32、插入單元33、遍歷單元34、同步單元35。所述獲取單元31,用于獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息。所述判斷單元32,用于通過遍歷所述外鍵關聯(lián)關系,判斷所述數(shù)據(jù)表是否被引用。所述插入單元33,用于當所述數(shù)據(jù)表未被引用時,將所述數(shù)據(jù)表插入到預置結(jié)果集合中。所述插入單元33,還用于當所述數(shù)據(jù)表被引用時,將所述數(shù)據(jù)插入到 預置字典集合中。所述遍歷單元34,用于遍歷所述預置字典集合中的數(shù)據(jù)表。所述插入單元33,還用于當所述預置字典集合中不存在所述數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,將所述數(shù)據(jù)表插入到預置字典集合,重復執(zhí)行遍歷所述預置字典集合中的數(shù)據(jù)表的步驟。所述同步單元35,用于按照所述數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。所述同步單元35,具體用于當所述預置字典集合中的數(shù)據(jù)為零時,按照數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。如圖4,所述裝置還包括:配置單元36。所述配置單元36,用于為所述預置字典集合配置多個key-value鍵值對,所述key為插入的數(shù)據(jù)表的標識信息,所述value為插入的數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表的標識信息。所述裝置還包括:刪除單元37。所述插入單元33,還用于當所述預置字典集合中保存的每一個key對應的value中存在未被其他數(shù)據(jù)表引用的關聯(lián)數(shù)據(jù)表時,將所述key-value鍵值對插入到所述預置結(jié)果集合中。所述刪除單元37,用于在所述預置字典集合中刪除所述key-value鍵值對。所述同步單元35,具體還可以用于當所述預置字典集合中不存在key-value鍵值對時,按照數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。該裝置實施例與前述方法實施例對應,為便于閱讀,本裝置實施例不再對前述方法實施例中的細節(jié)內(nèi)容進行逐一贅述,但應當明確,本實施例中的裝置能夠?qū)獙崿F(xiàn)前述方法實施例中的全部內(nèi)容。本發(fā)明提供的一種數(shù)據(jù)同步裝置。首先獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息;通過遍歷所述外鍵關聯(lián)關系,判斷所述數(shù)據(jù)表是否被引用;當所述數(shù)據(jù)表未被引用時,將所述數(shù)據(jù)表插入到預 置結(jié)果集合中;當所述數(shù)據(jù)表被引用時,將所述數(shù)據(jù)插入到預置字典集合中;遍歷所述預置字典集合中的數(shù)據(jù)表;當所述預置字典集合中不存在所述數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,將所述數(shù)據(jù)表插入到所述預置結(jié)果集合,重復執(zhí)行遍歷所述預置字典集合中的數(shù)據(jù)表的步驟;按照所述數(shù)據(jù)表插入到所述預置結(jié)果集合的順序,同步所述各個數(shù)據(jù)表。與目前在進行數(shù)據(jù)同步之前,通常需要根據(jù)待同步的配置待同步的數(shù)據(jù)和邏輯相比,本發(fā)明實施例對待同步的各個數(shù)據(jù)表按照外鍵關聯(lián)關系進行排序,然后按照排序后的順序同步所述各個數(shù)據(jù)表,能夠避免重復修改數(shù)據(jù)表的邏輯,從而能夠提升數(shù)據(jù)同步的效率。所述數(shù)據(jù)同步裝置包括處理器和存儲器,上述獲取單元、判斷單元、插入單元、遍歷單元、同步單元、配置單元和刪除單元等均作為程序單元存儲在存儲器中,由處理器執(zhí)行存儲在存儲器中的上述程序單元來實現(xiàn)相應的功能。處理器中包含內(nèi)核,由內(nèi)核去存儲器中調(diào)取相應的程序單元。內(nèi)核可以設置一個或以上,通過調(diào)整內(nèi)核參數(shù)來提升數(shù)據(jù)同步的效率。存儲器可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram),存儲器包括至少一個存儲芯片。本申請還提供了一種計算機程序產(chǎn)品,當在數(shù)據(jù)處理設備上執(zhí)行時,適于執(zhí)行初始化有如下方法步驟的程序代碼:獲取待同步的各個數(shù)據(jù)表分別對應的外鍵關聯(lián)關系,所述外鍵關聯(lián)關系包括數(shù)據(jù)表的標識信息和引用所述數(shù)據(jù)表的關聯(lián)數(shù)據(jù)表的標識信息;通過遍歷所述外鍵關聯(lián)關系,判斷所述數(shù)據(jù)表是否被引用;當所述數(shù)據(jù)表未被引用時,將所述數(shù)據(jù)表插入到預置結(jié)果集合中;當所述數(shù)據(jù)表被引用時,將所述數(shù)據(jù)插入到預置字典集合中;遍歷所述預置字典集合中的數(shù)據(jù)表;當預置字典集合中不存在所述數(shù)據(jù)表對應的關聯(lián)數(shù)據(jù)表時,將所述數(shù)據(jù)表插入到預置字典集合,重復執(zhí)行遍歷所述預置字典集合中的數(shù)據(jù)表步驟;按照數(shù)據(jù)表插入到所述預置字典集合的順序,同步所述各個數(shù)據(jù)表。本領域內(nèi)的技術(shù)人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡接口和內(nèi)存。存儲器可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。存儲器是計算機可讀介質(zhì)的示例。計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。以上僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應包含在本申請的權(quán)利要求范圍之內(nèi)。當前第1頁12