本公開涉及數(shù)據(jù)同步技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)同步處理方法及數(shù)據(jù)同步處理裝置。
背景技術(shù):
隨著信息化技術(shù)的飛速發(fā)展,企業(yè)信息化建設(shè)日益普及。一些企業(yè)各部門或者分公司紛紛搭建自己的信息化系統(tǒng)。這樣,在這些不同的系統(tǒng)中實現(xiàn)數(shù)據(jù)的共享、整合時,數(shù)據(jù)(如在職人員數(shù)據(jù)和離職人員數(shù)據(jù)等)的雙向同步是一種經(jīng)常碰到且非常重要的需求。
相關(guān)技術(shù)中,目前對大數(shù)據(jù)量的數(shù)據(jù)進(jìn)行同步時主要有兩種方式:一是全量數(shù)據(jù)同步方式,二是增量數(shù)據(jù)同步方式。全量數(shù)據(jù)同步方式要求雙方系統(tǒng)有較強(qiáng)的數(shù)據(jù)讀取能力及穩(wěn)定的網(wǎng)絡(luò),該方式耗時長且對雙方系統(tǒng)壓力大。而增量數(shù)據(jù)同步方式則要求數(shù)據(jù)源系統(tǒng)準(zhǔn)確記錄各數(shù)據(jù)的如更新時間等變更信息,并實現(xiàn)邏輯刪除。但是當(dāng)數(shù)據(jù)量過大而無法采用全量數(shù)據(jù)同步方式,同時數(shù)據(jù)源系統(tǒng)又無法準(zhǔn)確記錄各數(shù)據(jù)的變更信息時,會導(dǎo)致數(shù)據(jù)同步效率低下,這對大數(shù)據(jù)量的數(shù)據(jù)同步提出了新的要求。另外,同步后的數(shù)據(jù)在目的系統(tǒng)中使用時,如何提高大數(shù)據(jù)量的數(shù)據(jù)的讀取效率,需要與之適應(yīng)的數(shù)據(jù)讀取方案,相關(guān)技術(shù)中目前缺乏相應(yīng)的解決方案。
因此,有必要提供一種新的技術(shù)方案改善上述方案中存在的一個或者多個問題。
需要說明的是,在上述背景技術(shù)部分公開的信息僅用于加強(qiáng)對本公開的背景的理解,因此可以包括不構(gòu)成對本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實現(xiàn)要素:
本公開的目的在于提供一種數(shù)據(jù)同步處理方法及數(shù)據(jù)同步處理裝置,進(jìn)而至少在一定程度上克服由于相關(guān)技術(shù)的限制和缺陷而導(dǎo)致的一個或者多個問題。
本公開的其他特性和優(yōu)點將通過下面的詳細(xì)描述變得顯然,或部分地通過本公開的實踐而習(xí)得。
根據(jù)本公開實施例的第一方面,提供一種數(shù)據(jù)同步處理方法,應(yīng)用于一第一服務(wù)器,所述方法包括:
向一第二服務(wù)器發(fā)送一數(shù)據(jù)定時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)定時同步請求后根據(jù)數(shù)據(jù)更新時間信息在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第一數(shù)據(jù);其中,所述定時同步請求攜帶所述數(shù)據(jù)更新時間信息;
根據(jù)一預(yù)設(shè)數(shù)據(jù)請求向所述第二服務(wù)器發(fā)送數(shù)據(jù)實時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)實時同步請求后在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第二數(shù)據(jù)。
本公開的一種示例性實施例中,所述第一服務(wù)器上設(shè)有第一數(shù)據(jù)存儲表和第二數(shù)據(jù)存儲表;所述方法還包括:
查詢所述第二數(shù)據(jù)是否在所述第一數(shù)據(jù)存儲表中,當(dāng)所述第二數(shù)據(jù)在所述第一數(shù)據(jù)存儲表中時,更新所述第一數(shù)據(jù)存儲表中的所述第二數(shù)據(jù);
當(dāng)所述第二數(shù)據(jù)不在所述第一數(shù)據(jù)存儲表中時,查詢所述第二數(shù)據(jù)是否在所述第二數(shù)據(jù)存儲表中,當(dāng)所述第二數(shù)據(jù)在所述第二數(shù)據(jù)存儲表中時,更新所述第二數(shù)據(jù)存儲表中的所述第二數(shù)據(jù);
當(dāng)所述第二數(shù)據(jù)不在所述第二數(shù)據(jù)存儲表中時,添加所述第二數(shù)據(jù)到所述第二數(shù)據(jù)存儲表。
本公開的一種示例性實施例中,所述更新所述第一數(shù)據(jù)存儲表中的所述第二數(shù)據(jù)之后,所述方法還包括:
判斷所述第二數(shù)據(jù)所表征的對象是否存在,若不存在,則將所述第二數(shù)據(jù)從所述第一數(shù)據(jù)存儲表轉(zhuǎn)移到所述第二數(shù)據(jù)存儲表;若存在,則不移動數(shù)據(jù)。
本公開的一種示例性實施例中,所述更新所述第二數(shù)據(jù)存儲表中之前存儲的所述第二數(shù)據(jù)之后,所述方法還包括:
判斷所述第二數(shù)據(jù)所表征的對象是否存在,若存在,則將所述第二數(shù)據(jù)從所述第二數(shù)據(jù)存儲表轉(zhuǎn)移到所述第一數(shù)據(jù)存儲表;若不存在,則不移動數(shù)據(jù)。
本公開的一種示例性實施例中,所述第一服務(wù)器上設(shè)有第一數(shù)據(jù)存儲表和第二數(shù)據(jù)存儲表;所述方法還包括:
將所述第一數(shù)據(jù)存儲到所述第一數(shù)據(jù)存儲表中,并檢查所述第一數(shù)據(jù)存儲表中是否存在使用頻率低于預(yù)設(shè)值的第三數(shù)據(jù),若存在,則將所述第三數(shù)據(jù)移動至所述第二數(shù)據(jù)存儲表中。
根據(jù)本公開實施例的第二方面,提供一種數(shù)據(jù)同步處理裝置,應(yīng)用于一第一服務(wù)器,所述裝置包括:
數(shù)據(jù)定時同步模塊,用于向一第二服務(wù)器發(fā)送一數(shù)據(jù)定時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)定時同步請求后根據(jù)數(shù)據(jù)更新時間信息在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第一數(shù)據(jù);其中,所述定時同步請求攜帶所述數(shù)據(jù)更新時間信息;
數(shù)據(jù)實時同步模塊,用于根據(jù)一預(yù)設(shè)數(shù)據(jù)請求向所述第二服務(wù)器發(fā)送數(shù)據(jù)實時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)實時同步請求后在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第二數(shù)據(jù)。
本公開的一種示例性實施例中,所述第一服務(wù)器上設(shè)有第一數(shù)據(jù)存儲表和第二數(shù)據(jù)存儲表;所述裝置還包括:
第一查詢更新模塊,用于查詢所述第二數(shù)據(jù)是否在所述第一數(shù)據(jù)存儲表中,當(dāng)所述第二數(shù)據(jù)在所述第一數(shù)據(jù)存儲表中時,更新所述第一數(shù)據(jù)存儲表中的所述第二數(shù)據(jù);
第二查詢更新模塊,用于當(dāng)所述第二數(shù)據(jù)不在所述第一數(shù)據(jù)存儲表中時,查詢所述第二數(shù)據(jù)是否在所述第二數(shù)據(jù)存儲表中,當(dāng)所述第二數(shù)據(jù)在所述第二數(shù)據(jù)存儲表中時,更新所述第二數(shù)據(jù)存儲表中的所述第二數(shù)據(jù);
數(shù)據(jù)添加模塊,用于當(dāng)所述第二數(shù)據(jù)不在所述第二數(shù)據(jù)存儲表中時,添加所述第二數(shù)據(jù)到所述第二數(shù)據(jù)存儲表。
本公開的一種示例性實施例中,所述裝置還包括:
第一判斷轉(zhuǎn)移模塊,用于在所述更新所述第一數(shù)據(jù)存儲表中的所述第二數(shù)據(jù)之后,判斷所述第二數(shù)據(jù)所表征的對象是否存在,若不存在,則將所述第二數(shù)據(jù)從所述第一數(shù)據(jù)存儲表轉(zhuǎn)移到所述第二數(shù)據(jù)存儲表;若存在,則不移動數(shù)據(jù)。
本公開的一種示例性實施例中,所述裝置還包括:
第二判斷轉(zhuǎn)移模塊,用于在所述更新所述第二數(shù)據(jù)存儲表中之前存儲的所述第二數(shù)據(jù)之后,判斷所述第二數(shù)據(jù)所表征的對象是否存在,若存在,則將所述第二數(shù)據(jù)從所述第二數(shù)據(jù)存儲表轉(zhuǎn)移到所述第一數(shù)據(jù)存儲表;若不存在,則不移動數(shù)據(jù)。
本公開的一種示例性實施例中,所述第一服務(wù)器上設(shè)有第一數(shù)據(jù)存儲表和第二數(shù)據(jù)存儲表;所述裝置還包括:
第三判斷轉(zhuǎn)移模塊,用于將所述第一數(shù)據(jù)存儲到所述第一數(shù)據(jù)存儲表中,并檢查所述第一數(shù)據(jù)存儲表中是否存在使用頻率低于預(yù)設(shè)值的第三數(shù)據(jù),若存在,則將所述第三數(shù)據(jù)移動至所述第二數(shù)據(jù)存儲表中。
本公開的實施例提供的技術(shù)方案可以包括以下有益效果:
本公開的一種實施例中,通過上述數(shù)據(jù)同步處理方法及裝置,將數(shù)據(jù)定時同步和數(shù)據(jù)實時同步相結(jié)合,對于數(shù)據(jù)源中準(zhǔn)確記錄變更時間的數(shù)據(jù)采用定時批量同步數(shù)據(jù),對于數(shù)據(jù)源中沒有準(zhǔn)確記錄變更時間的數(shù)據(jù)采用實時同步;這樣,一方面,當(dāng)數(shù)據(jù)量過大而無法采用全量同步,同時數(shù)據(jù)源中又無法準(zhǔn)確記錄變更時間時,解決大數(shù)據(jù)量的數(shù)據(jù)同步問題,在一定程度上提高數(shù)據(jù)同步效率;另一方面,由于不用完全采用實時同步方式,在一定程度上減少了對雙方系統(tǒng)的通信網(wǎng)絡(luò)的要求,降低了對雙方系統(tǒng)的壓力。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。顯而易見地,下面描述中的附圖僅僅是本公開的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示意性示出本公開示例性實施例中第一數(shù)據(jù)同步處理方法流程圖;
圖2示意性示出本公開示例性實施例中第二數(shù)據(jù)同步處理方法流程圖;
圖3示意性示出本公開示例性實施例中第三數(shù)據(jù)同步處理方法流程圖;
圖4示意性示出本公開示例性實施例中數(shù)據(jù)同步處理應(yīng)用場景示意圖;
圖5示意性示出本公開示例性實施例中第一數(shù)據(jù)同步處理裝置示意圖;
圖6示意性示出本公開示例性實施例中第二數(shù)據(jù)同步處理裝置示意圖;
圖7示意性示出本公開示例性實施例中第三數(shù)據(jù)同步處理裝置示意圖;
圖8示意性示出本公開示例性實施例中另一數(shù)據(jù)同步處理裝置示意圖。
具體實施方式
現(xiàn)在將參考附圖更全面地描述示例實施方式。然而,示例實施方式能夠以多種形式實施,且不應(yīng)被理解為限于在此闡述的范例;相反,提供這些實施方式使得本公開將更加全面和完整,并將示例實施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個或更多實施方式中。
此外,附圖僅為本公開的示意性圖解,并非一定是按比例繪制。圖中相同的附圖標(biāo)記表示相同或類似的部分,因而將省略對它們的重復(fù)描述。附圖中所示的一些方框圖是功能實體,不一定必須與物理或邏輯上獨立的實體相對應(yīng)??梢圆捎密浖问絹韺崿F(xiàn)這些功能實體,或在一個或多個硬件模塊或集成電路中實現(xiàn)這些功能實體,或在不同網(wǎng)絡(luò)和/或處理器裝置和/或微控制器裝置中實現(xiàn)這些功能實體。
本示例實施方式中首先提供了一種數(shù)據(jù)同步處理方法,該方法可以應(yīng)用于一第一服務(wù)器上,所述第一服務(wù)器例如可以是運行目的系統(tǒng)的服務(wù)器。參考圖1中所示,該數(shù)據(jù)同步處理方法可以包括:
步驟S101:向一第二服務(wù)器發(fā)送一數(shù)據(jù)定時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)定時同步請求后根據(jù)數(shù)據(jù)更新時間信息在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第一數(shù)據(jù);其中,所述定時同步請求攜帶所述數(shù)據(jù)更新時間信息。
步驟S102:根據(jù)一預(yù)設(shè)數(shù)據(jù)請求向所述第二服務(wù)器發(fā)送數(shù)據(jù)實時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)實時同步請求后在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第二數(shù)據(jù)。
通過上述數(shù)據(jù)同步處理方法,當(dāng)數(shù)據(jù)量過大而無法采用全量同步,同時數(shù)據(jù)源中又無法準(zhǔn)確記錄變更時間時,解決大數(shù)據(jù)量的數(shù)據(jù)同步問題,在一定程度上提高數(shù)據(jù)同步效率;另一方面,由于不用完全采用實時同步方式,在一定程度上減少了對雙方系統(tǒng)的通信網(wǎng)絡(luò)的要求,降低了對雙方系統(tǒng)的壓力。
下面,將參考圖1至圖4對本示例實施方式中的上述方法的各個步驟進(jìn)行更詳細(xì)的說明。
在步驟S101中,向一第二服務(wù)器發(fā)送一數(shù)據(jù)定時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)定時同步請求后根據(jù)數(shù)據(jù)更新時間信息在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第一數(shù)據(jù);其中,所述定時同步請求攜帶所述數(shù)據(jù)更新時間信息。
本示例實施方式中,所述第二服務(wù)器可以是運行一源系統(tǒng)的服務(wù)器,所述源系統(tǒng)例如可以是一分公司平臺系統(tǒng),該分公司平臺系統(tǒng)例如可以存儲記錄代理人信息(如姓名或者工號等)。而所述第一服務(wù)器上運行的所述目的系統(tǒng)例如可以是一個險培訓(xùn)管理系統(tǒng)。
示例性的,該個險培訓(xùn)管理系統(tǒng)需要從所述源系統(tǒng)同步獲取代理人信息。由于源系統(tǒng)中信息記錄更新可能存在不及時的情況,那么代理人的信息有些是準(zhǔn)確記錄了數(shù)據(jù)的更新時間的,有些則沒有準(zhǔn)確記錄數(shù)據(jù)更新時間。對于準(zhǔn)確記錄了數(shù)據(jù)的更新時間的這部分?jǐn)?shù)據(jù),所述個險培訓(xùn)管理系統(tǒng)可以向所述源系統(tǒng)發(fā)送一定時同步請求,所述定時同步請求可以攜帶所要請求的數(shù)據(jù)的時間范圍條件,例如距離當(dāng)前時間的前3天內(nèi)的數(shù)據(jù)。所述目的系統(tǒng)接收到所述定時同步請求后,解析獲取所述時間范圍條件,根據(jù)所述時間范圍條件比對查找符合該條件的代理人信息并批量返回給所述源系統(tǒng)。
在步驟S102中,根據(jù)一預(yù)設(shè)數(shù)據(jù)請求向所述第二服務(wù)器發(fā)送數(shù)據(jù)實時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)實時同步請求后在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第二數(shù)據(jù)。
示例性的,對于沒有準(zhǔn)確記錄數(shù)據(jù)更新時間的部分?jǐn)?shù)據(jù),可以通過所述目的系統(tǒng)向所述源系統(tǒng)發(fā)起實時同步請求以獲取一條或多條數(shù)據(jù),
本示例實施方式中,數(shù)據(jù)的同步采用定時增量同步和實時同步相結(jié)合的方式來實現(xiàn)。對于源系統(tǒng)中準(zhǔn)確記錄了變更時間的數(shù)據(jù),通過比對更新時間來定時批量同步數(shù)據(jù);對于源系統(tǒng)中更新時間不準(zhǔn)確的數(shù)據(jù),則通過目的系統(tǒng)發(fā)起同步請求,同步具體的一條或多條數(shù)據(jù)。這樣,當(dāng)數(shù)據(jù)量過大而無法采用全量同步,同時數(shù)據(jù)源中又無法準(zhǔn)確記錄變更時間時,解決了大數(shù)據(jù)量的數(shù)據(jù)同步問題,在一定程度上提高了數(shù)據(jù)同步的效率。
參考圖2所示,在一示例性實施例中,數(shù)據(jù)同步至所述目的系統(tǒng)后,為了提高所述目的系統(tǒng)中數(shù)據(jù)的查詢效率。所述第一服務(wù)器上可以設(shè)有第一數(shù)據(jù)存儲表和第二數(shù)據(jù)存儲表。例如,所述第一數(shù)據(jù)存儲表可以是所述目的系統(tǒng)中的常用數(shù)據(jù)表A,所述第二數(shù)據(jù)存儲表可以是所述目的系統(tǒng)中的不常用數(shù)據(jù)表B。所述方法還可以包括步驟S103~步驟S105。其中:
步驟S103:查詢所述第二數(shù)據(jù)是否在所述第一數(shù)據(jù)存儲表中,當(dāng)所述第二數(shù)據(jù)在所述第一數(shù)據(jù)存儲表中時,更新所述第一數(shù)據(jù)存儲表中的所述第二數(shù)據(jù)。
在一示例性實施例中,所述更新所述第一數(shù)據(jù)存儲表中的所述第二數(shù)據(jù)之后,所述方法還可以包括:判斷所述第二數(shù)據(jù)所表征的對象是否存在,若不存在,則將所述第二數(shù)據(jù)從所述第一數(shù)據(jù)存儲表轉(zhuǎn)移到所述第二數(shù)據(jù)存儲表;若存在,則不移動數(shù)據(jù)。
示例性的,所述第二數(shù)據(jù)可以是代理人數(shù)據(jù),所述第二數(shù)據(jù)所表征的對象即代理人。舉例來說,所述目的系統(tǒng)向源系統(tǒng)發(fā)起實時同步請求,并將源系統(tǒng)中的某條或多條數(shù)據(jù)同步至目的系統(tǒng)中。之后所述目的系統(tǒng)查詢所同步的數(shù)據(jù)是否存在于常用數(shù)據(jù)表A中,若存在,則在常用數(shù)據(jù)表A中更新數(shù)據(jù)。更新后,目的系統(tǒng)根據(jù)分表屬性明確該數(shù)據(jù)是否屬于常用數(shù)據(jù),若不屬于,則將該數(shù)據(jù)從常用數(shù)據(jù)表A移動至不常用數(shù)據(jù)表B中;若屬于,不移動數(shù)據(jù)。例如,同步代理人數(shù)據(jù)至目的系統(tǒng)后,目的系統(tǒng)根據(jù)該代理人數(shù)據(jù)所代表的代理人是否在職的屬性信息判斷該代理人數(shù)據(jù)是否屬于常用數(shù)據(jù),若不在職,則將該代理人數(shù)據(jù)從常用數(shù)據(jù)表A移動至不常用數(shù)據(jù)表B中;若在職,則不移動數(shù)據(jù)。
步驟S104:當(dāng)所述第二數(shù)據(jù)不在所述第一數(shù)據(jù)存儲表中時,查詢所述第二數(shù)據(jù)是否在所述第二數(shù)據(jù)存儲表中,當(dāng)所述第二數(shù)據(jù)在所述第二數(shù)據(jù)存儲表中時,更新所述第二數(shù)據(jù)存儲表中的所述第二數(shù)據(jù)。
示例性的,繼續(xù)以上述舉例說明。所述目的系統(tǒng)查詢所同步的數(shù)據(jù)是否存在于常用數(shù)據(jù)表A中,若同步的數(shù)據(jù)不存在于常用數(shù)據(jù)表A中,則檢查是存在于不常用數(shù)據(jù)表B中。若存在,則更新不常用數(shù)據(jù)表B中的數(shù)據(jù)。
在一示例性實施例中,所述更新所述第二數(shù)據(jù)存儲表中的所述第二數(shù)據(jù)之后,所述方法還可以包括:判斷所述第二數(shù)據(jù)所表征的對象是否存在,若存在,則將所述第二數(shù)據(jù)從所述第二數(shù)據(jù)存儲表轉(zhuǎn)移到所述第一數(shù)據(jù)存儲表;若不存在,則不移動數(shù)據(jù)。
示例性的,更新不常用數(shù)據(jù)表B中的數(shù)據(jù)后,目的系統(tǒng)根據(jù)分表屬性明確該數(shù)據(jù)是否屬于常用數(shù)據(jù),若屬于,則將數(shù)據(jù)從不常用數(shù)據(jù)表B中移動至常用數(shù)據(jù)表A中;若不屬于,則不移動數(shù)據(jù)。例如,更新不常用數(shù)據(jù)表B中的代理人數(shù)據(jù)后,所述目的系統(tǒng)根據(jù)該代理人數(shù)據(jù)所代表的代理人是否在職的屬性信息判斷該代理人數(shù)據(jù)是否屬于常用數(shù)據(jù),若在職,則將該代理人數(shù)據(jù)從不常用數(shù)據(jù)表B移動至常用數(shù)據(jù)表A中;若不在職,則不移動數(shù)據(jù)。
步驟S105:當(dāng)所述第二數(shù)據(jù)不在所述第二數(shù)據(jù)存儲表中時,添加所述第二數(shù)據(jù)到所述第二數(shù)據(jù)存儲表。
示例性的,上述檢查同步的數(shù)據(jù)是否存在于不常用數(shù)據(jù)表B中時,若不存在,則添加該同步的數(shù)據(jù)至不常用數(shù)據(jù)表B中。
本示例實施方式中,同步后的數(shù)據(jù)在目的系統(tǒng)中使用分表存儲更新,常用數(shù)據(jù)和不常用數(shù)據(jù)定時或?qū)崟r轉(zhuǎn)換。大數(shù)據(jù)量的數(shù)據(jù)讀取上同時可以采用索引和分表方式,按照數(shù)據(jù)的某一屬性進(jìn)行分表存儲,以提高后續(xù)在目的系統(tǒng)中進(jìn)行數(shù)據(jù)查詢的效率。本示例實施方式提高了目的系統(tǒng)中大數(shù)據(jù)量的數(shù)據(jù)讀取效率。
參考圖3所示,在一示例性實施例中,在上述實施例的基礎(chǔ)上,所述第一服務(wù)器上可以設(shè)有第一數(shù)據(jù)存儲表和第二數(shù)據(jù)存儲表。所述第一數(shù)據(jù)存儲表可以是目的系統(tǒng)中的常用數(shù)據(jù)表A,所述第二數(shù)據(jù)存儲表可以是所述目的系統(tǒng)中的不常用數(shù)據(jù)表B。所述方法還可以包括:
步驟S1011:將所述第一數(shù)據(jù)存儲到所述第一數(shù)據(jù)存儲表中,并檢查所述第一數(shù)據(jù)存儲表中是否存在使用頻率低于預(yù)設(shè)值的第三數(shù)據(jù),若存在,則將所述第三數(shù)據(jù)移動至所述第二數(shù)據(jù)存儲表中。
示例性的,所述使用頻率低于預(yù)設(shè)值的第三數(shù)據(jù)即不常用數(shù)據(jù),所述預(yù)設(shè)值可以根據(jù)具體情況設(shè)置,對此不做限制。定時同步數(shù)據(jù)時,每次定時同步根據(jù)源系統(tǒng)中數(shù)據(jù)的更新時間將滿足時間要求的數(shù)據(jù)增量同步到目的系統(tǒng)的常用表A中。之后目的系統(tǒng)根據(jù)分表屬性字段檢查常用表A中是否存在不常用數(shù)據(jù),即使用頻率低于預(yù)設(shè)值的數(shù)據(jù),若存在,則將這部分不常用數(shù)據(jù)移動至不常用表B。這樣可以根據(jù)同步的數(shù)據(jù)的屬性將數(shù)據(jù)分表存儲,同時也可以實現(xiàn)常用數(shù)據(jù)和不常用數(shù)據(jù)的實時或定期轉(zhuǎn)換,便于后期查詢數(shù)據(jù)時提高查詢效率。
下面結(jié)合圖4所示的本示例實施方式的一應(yīng)用場景示意圖對本示例實施方式作出進(jìn)一步的說明。
本應(yīng)用場景中以個險培訓(xùn)管理系統(tǒng)NTMS系統(tǒng)(目的系統(tǒng))向分公司信息平臺BIP系統(tǒng)(源系統(tǒng))請求同步代理人數(shù)據(jù)為例,來具體闡述本示例實施方式中上述方法的流程。所述NTMS系統(tǒng)中的代理人信息需要從BIP系統(tǒng)獲取,BIP系統(tǒng)中的代理人信息表數(shù)據(jù)量巨大,且部分信息的調(diào)整未記錄更新時間。NTMS系統(tǒng)中的代理人表根據(jù)人員狀態(tài)分為離職表(對應(yīng)不常用表B)和在職表(對應(yīng)常用表A)。下面對代理人數(shù)據(jù)定時同步和實時同步的流程進(jìn)行說明。
一、數(shù)據(jù)定時同步:
步驟1):NTMS系統(tǒng)每天定時向BIP系統(tǒng)發(fā)起定時同步請求。例如同步請求更新日期為最近3天的數(shù)據(jù)。
步驟2):BIP系統(tǒng)查詢更新日期為最近3天的數(shù)據(jù),若沒有,則無需同步。若有,BIP系統(tǒng)將滿足條件的數(shù)據(jù)同步更新到NTMS系統(tǒng)的在職表中。
步驟3):NTMS系統(tǒng)判斷更新后的代理人是否在職,將不在職的代理人轉(zhuǎn)移到離職表中。
二、數(shù)據(jù)實時同步:
步驟1):用戶在NTMS系統(tǒng)中輸入代理人工號,請求同步該代理人的信息。
步驟2):BIP系統(tǒng)查找到該代理人信息并返回同步到NTMS系統(tǒng)。
步驟3):NTMS系統(tǒng)查詢所同步的代理人是否存在于在職表,若存在,則更新在職表中該代理人的信息。
步驟4):步驟3)中更新在職表中該代理人的信息后,判斷更新后的代理人是否在職,若不在職,則將該代理人信息從在職表轉(zhuǎn)移到離職表;若在職,不移動數(shù)據(jù)。
步驟5):步驟3)中,若同步的代理人不存在于在職表中,則檢查離職表。若存在于離職表,則更新離職表中該代理人的信息;若不存在,則添加該代理人的信息至離職表。
步驟6):步驟5)中更新離職表中該代理人的信息后,NTMS系統(tǒng)判斷更新后的代理人是否在職,若在職,則將該代理人從離職表轉(zhuǎn)移到在職表;若不在職,不移動數(shù)據(jù)。
本示例實施方式中通過數(shù)據(jù)定時同步和實時同步方式相結(jié)合以提高數(shù)據(jù)同步效率,數(shù)據(jù)同步至目的系統(tǒng)后進(jìn)行數(shù)據(jù)分表存儲,以提高后續(xù)在目的系統(tǒng)中查找數(shù)據(jù)的便利性和查找效率。本示例實施方式兼顧了數(shù)據(jù)讀取效率及數(shù)據(jù)同步的準(zhǔn)確性以及同步效率。
需要說明的是,盡管在附圖中以特定順序描述了本公開中方法的各個步驟,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些步驟,或是必須執(zhí)行全部所示的步驟才能實現(xiàn)期望的結(jié)果。附加的或備選的,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,以及/或者將一個步驟分解為多個步驟執(zhí)行等。另外,也易于理解的是,這些步驟可以是例如在多個模塊/進(jìn)程/線程中同步或異步執(zhí)行。
進(jìn)一步的,本示例實施方式中,還提供了一種數(shù)據(jù)同步處理裝置。該裝置可以應(yīng)用于一第一服務(wù)器,所述第一服務(wù)器例如可以是運行目的系統(tǒng)的服務(wù)器。參考圖5中所示,裝置100可以包括數(shù)據(jù)定時同步模塊101和數(shù)據(jù)實時同步模塊102。其中:
所述數(shù)據(jù)定時同步模塊101,用于向一第二服務(wù)器發(fā)送一數(shù)據(jù)定時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)定時同步請求后根據(jù)數(shù)據(jù)更新時間信息在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第一數(shù)據(jù);其中,所述定時同步請求攜帶所述數(shù)據(jù)更新時間信息;
所述數(shù)據(jù)實時同步模塊102,用于根據(jù)一預(yù)設(shè)數(shù)據(jù)請求向所述第二服務(wù)器發(fā)送數(shù)據(jù)實時同步請求,接收所述第二服務(wù)器響應(yīng)所述數(shù)據(jù)實時同步請求后在所述第二服務(wù)器上查找到并發(fā)送來的一個或多個第二數(shù)據(jù)。
參考圖6所示,本示例性實施例中,所述第一服務(wù)器上可以設(shè)有第一數(shù)據(jù)存儲表和第二數(shù)據(jù)存儲表;所述裝置100還可以包括第一查詢更新模塊103、第二查詢更新模塊104和數(shù)據(jù)添加模塊105。其中:
所述第一查詢更新模塊103,用于查詢所述第二數(shù)據(jù)是否在所述第一數(shù)據(jù)存儲表中,當(dāng)所述第二數(shù)據(jù)在所述第一數(shù)據(jù)存儲表中時,更新所述第一數(shù)據(jù)存儲表中的所述第二數(shù)據(jù)。
所述第二查詢更新模塊104,用于當(dāng)所述第二數(shù)據(jù)不在所述第一數(shù)據(jù)存儲表中時,查詢所述第二數(shù)據(jù)是否在所述第二數(shù)據(jù)存儲表中,當(dāng)所述第二數(shù)據(jù)在所述第二數(shù)據(jù)存儲表中時,更新所述第二數(shù)據(jù)存儲表中的所述第二數(shù)據(jù)。
所述數(shù)據(jù)添加模塊105,用于當(dāng)所述第二數(shù)據(jù)不在所述第二數(shù)據(jù)存儲表中時,添加所述第二數(shù)據(jù)到所述第二數(shù)據(jù)存儲表。
參考圖7所示,本示例性實施例中,所述裝置100還可以包括第一判斷轉(zhuǎn)移模塊106,用于在所述更新所述第一數(shù)據(jù)存儲表中的所述第二數(shù)據(jù)之后,判斷所述第二數(shù)據(jù)所表征的對象是否存在,若不存在,則將所述第二數(shù)據(jù)從所述第一數(shù)據(jù)存儲表轉(zhuǎn)移到所述第二數(shù)據(jù)存儲表;若存在,則不移動數(shù)據(jù)。
參考圖7所示,本示例性實施例中,所述裝置100還可以包括第二判斷轉(zhuǎn)移模塊107,用于在所述更新所述第二數(shù)據(jù)存儲表中之前存儲的所述第二數(shù)據(jù)之后,判斷所述第二數(shù)據(jù)所表征的對象是否存在,若存在,則將所述第二數(shù)據(jù)從所述第二數(shù)據(jù)存儲表轉(zhuǎn)移到所述第一數(shù)據(jù)存儲表;若不存在,則不移動數(shù)據(jù)。
參考圖7所示,本示例性實施例中,所述第一服務(wù)器上可以設(shè)有第一數(shù)據(jù)存儲表和第二數(shù)據(jù)存儲表;所述裝置100還可以包括第三判斷轉(zhuǎn)移模塊108,用于將所述第一數(shù)據(jù)存儲到所述第一數(shù)據(jù)存儲表中,并檢查所述第一數(shù)據(jù)存儲表中是否存在使用頻率低于預(yù)設(shè)值的第三數(shù)據(jù),若存在,則將所述第三數(shù)據(jù)移動至所述第二數(shù)據(jù)存儲表中。
關(guān)于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了用于動作執(zhí)行的設(shè)備的若干模塊或者單元,但是這種劃分并非強(qiáng)制性的。實際上,根據(jù)本公開的實施方式,上文描述的兩個或更多模塊或者單元的特征和功能可以在一個模塊或者單元中具體化。反之,上文描述的一個模塊或者單元的特征和功能可以進(jìn)一步劃分為由多個模塊或者單元來具體化。作為模塊或單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)木公開方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實施方式可以通過軟件實現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實現(xiàn)。因此,根據(jù)本公開實施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺計算設(shè)備(可以是個人計算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本公開實施方式的方法。
圖8示出根據(jù)本公開示例實施方式中一種數(shù)據(jù)同步處理裝置400的示意圖。例如,裝置400可以被提供為一服務(wù)器。參照圖8,裝置400包括處理組件422,其進(jìn)一步包括一個或多個處理器,以及由存儲器432所代表的存儲器資源,用于存儲可由處理組件422的執(zhí)行的指令,例如應(yīng)用程序。存儲器432中存儲的應(yīng)用程序可以包括一個或一個以上的每一個對應(yīng)于一組指令的模塊。此外,處理組件422被配置為執(zhí)行指令,以執(zhí)行上述方法。
裝置400還可以包括一個電源組件426被配置為執(zhí)行裝置400的電源管理,一個有線或無線網(wǎng)絡(luò)接口450被配置為將裝置400連接到網(wǎng)絡(luò),和一個輸入輸出(I/O)接口458。裝置400可以操作基于存儲在存儲器432的操作系統(tǒng),例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM或類似。
本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由所附的權(quán)利要求指出。