本發(fā)明涉及計算機技術(shù),尤其涉及一種數(shù)據(jù)同步方法以及數(shù)據(jù)同步裝置。
背景技術(shù):
:線上應(yīng)用系統(tǒng)往往需要使用數(shù)據(jù)倉庫中的指標(biāo)(指標(biāo)即基于一個維度或者多個維度對數(shù)據(jù)進行聚合統(tǒng)計而獲得的計算結(jié)果),以便于為需求方提供相應(yīng)的數(shù)據(jù)分析等服務(wù)。由于線上應(yīng)用系統(tǒng)對響應(yīng)時間要求較高,因此,通常需要將數(shù)據(jù)倉庫中的包括指標(biāo)在內(nèi)的相應(yīng)數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中,且同步頻率通常與數(shù)據(jù)倉庫中的指標(biāo)計算頻率保持一致。目前,數(shù)據(jù)同步方式通常采用基于指標(biāo)的數(shù)據(jù)庫增量同步方式,即針對發(fā)生變化的指標(biāo)進行數(shù)據(jù)同步,如在確定出數(shù)據(jù)倉庫中的某一指標(biāo)沒有存在于內(nèi)存數(shù)據(jù)庫中或者與內(nèi)存數(shù)據(jù)庫中的相應(yīng)指標(biāo)不相同時,將數(shù)據(jù)倉庫中的包含該指標(biāo)在內(nèi)的相應(yīng)數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中。發(fā)明人在實現(xiàn)本發(fā)明過程中發(fā)現(xiàn),現(xiàn)有的基于指標(biāo)的數(shù)據(jù)庫增量同步方式至少存在如下兩方面問題:1、內(nèi)存數(shù)據(jù)庫中指標(biāo)沒有變化的數(shù)據(jù)會丟失;即在每次統(tǒng)計獲得的指標(biāo)沒有變化的情況下,內(nèi)存數(shù)據(jù)庫中的相應(yīng)指標(biāo)不會被更新,從而針對內(nèi)存數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)的失效時間的計時值不會被更新,進而導(dǎo)致內(nèi)存數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)會由于其計時值達到失效時間而丟失;一個具體的例子,設(shè)定指標(biāo)為用戶在90天內(nèi)去過的城市個數(shù),且一用戶一直位于同一個城市,則第1天統(tǒng)計該用戶去過的城市個數(shù)為1,由于內(nèi)存數(shù)據(jù)庫中沒有相應(yīng)的記錄,因此,包含該指標(biāo)的相應(yīng)數(shù)據(jù)被同步到內(nèi)存數(shù)據(jù)庫中,且其失效時間被設(shè)置為90天后;由于第2、3……91天統(tǒng)計該用戶去過的城市個數(shù)均為1,因此,不會對內(nèi)存數(shù)據(jù)庫中的包含該指標(biāo)的相應(yīng)數(shù)據(jù)進行同步處理,從而使內(nèi)存數(shù)據(jù)庫中的包含該指標(biāo)的相應(yīng)數(shù)據(jù)的失效時間的計時值不會被更新,因此,在第 91天時,內(nèi)存數(shù)據(jù)庫中的包含該指標(biāo)的相應(yīng)數(shù)據(jù)由于失效而丟失。2、內(nèi)存數(shù)據(jù)庫中需要失效的數(shù)據(jù)沒有失效;即在數(shù)據(jù)倉庫中沒有相應(yīng)的指標(biāo),而內(nèi)存數(shù)據(jù)庫中存在相應(yīng)的指標(biāo)的情況下,內(nèi)存數(shù)據(jù)庫中的包含該指標(biāo)的相應(yīng)數(shù)據(jù)不會由于增量同步而消失;一個具體的例子,設(shè)定指標(biāo)為用戶在3天內(nèi)的洗澡次數(shù),且用戶第1天洗澡,而第2、3、4天均沒有洗澡,則第4天統(tǒng)計第1、2、3天的總洗澡次數(shù)為1,由于內(nèi)存數(shù)據(jù)庫中沒有相應(yīng)的記錄,因此,包含該指標(biāo)的相應(yīng)數(shù)據(jù)被同步到內(nèi)存數(shù)據(jù)庫中,失效時間被設(shè)置為3天后;在第5天進行總洗澡次數(shù)統(tǒng)計時,由于該用戶在第2、3、4天沒有洗澡而沒有相應(yīng)的記錄,因此,不會針對該用戶進行指標(biāo)統(tǒng)計操作,從而內(nèi)存數(shù)據(jù)庫中的包含該指標(biāo)的相應(yīng)數(shù)據(jù)被保留了下來。技術(shù)實現(xiàn)要素:本發(fā)明的目的是提供一種數(shù)據(jù)同步方法及裝置。根據(jù)本發(fā)明的其中一個方面,提供了一種數(shù)據(jù)同步方法,且該方法主要包括以下步驟:獲取已同步處理的第一數(shù)據(jù)集合以及待同步處理的第二數(shù)據(jù)集合;根據(jù)主關(guān)鍵字獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo);在判斷出所述指標(biāo)當(dāng)前值無變化持續(xù)時間達到與該指標(biāo)對應(yīng)的預(yù)設(shè)閾值的情況下,將第二數(shù)據(jù)集合中該指標(biāo)所在記錄的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中。根據(jù)本發(fā)明的另一個方面,還提供了一種數(shù)據(jù)同步裝置,且該裝置主要包括:第一獲取模塊,用于獲取已同步處理的第一數(shù)據(jù)集合以及待同步處理的第二數(shù)據(jù)集合;第二獲取模塊,用于根據(jù)主關(guān)鍵字獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo);第一同步模塊,用于在判斷出所述指標(biāo)當(dāng)前值無變化持續(xù)時間達到與該指標(biāo)對應(yīng)的預(yù)設(shè)閾值的情況下,將第二數(shù)據(jù)集合中該指標(biāo)所在記錄的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:本發(fā)明通過獲取已同步處理的第一數(shù)據(jù)集合和待同步處理的第二數(shù)據(jù)集合,可以從第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中查找到存在于兩個數(shù)據(jù)集合中且未發(fā)生變化的指標(biāo),針對這樣的指標(biāo),如果判斷出指標(biāo)當(dāng)前值無變化持續(xù)時間已經(jīng)達到了與該指標(biāo)對應(yīng)的預(yù)設(shè) 閾值,則通過將第二數(shù)據(jù)集合中該指標(biāo)所在記錄的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中,可以使目標(biāo)數(shù)據(jù)庫中針對包含該指標(biāo)的數(shù)據(jù)的失效時間的計時值重新開始計時,從而避免了目標(biāo)數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)由于失效而丟失的現(xiàn)象;由此可知,本發(fā)明提供的技術(shù)方案完善了數(shù)據(jù)同步技術(shù),提高了數(shù)據(jù)同步的可靠性。附圖說明通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:圖1為本發(fā)明實施例一的數(shù)據(jù)同步方法流程圖;圖2為本發(fā)明實施例一的采用全外連接的方式獲得第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)的流程圖;圖3為本發(fā)明實施例一的判斷指標(biāo)在第一數(shù)據(jù)集合以及第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的一流程圖;圖4為本發(fā)明實施例一的判斷指標(biāo)在第一數(shù)據(jù)集合以及第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的另一流程圖;圖5為本發(fā)明實施例二的數(shù)據(jù)同步方法流程圖;圖6為本發(fā)明實施例三的數(shù)據(jù)同步裝置的第一結(jié)構(gòu)示意圖;圖7為本發(fā)明實施例三的數(shù)據(jù)同步裝置的第二結(jié)構(gòu)示意圖;圖8為本發(fā)明實施例三的第二獲取模塊的結(jié)構(gòu)示意圖;圖9為本發(fā)明實施例三的設(shè)置模塊的結(jié)構(gòu)示意圖;圖10為本發(fā)明實施例三的第一同步模塊的結(jié)構(gòu)示意圖。具體實施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的實施例作詳細描述。在更加詳細地討論示例性實施例之前應(yīng)當(dāng)提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然本發(fā)明的流程圖將各項操作描述成順序的處理,但是,其中的許多操作可以被并行地、并發(fā)地或者同時實 施。此外,各項操作的順序可以被重新安排。當(dāng)其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。本實施例中的服務(wù)器包括但不限于單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或者基于云計算(cloudcomputing)的由大量計算機或者網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。其中,所述服務(wù)器可以接入網(wǎng)絡(luò)并與網(wǎng)絡(luò)中的其他設(shè)備進行信息交互操作。其中,所述服務(wù)器所能夠接入的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、vpn網(wǎng)絡(luò)等。需要說明的是,所述服務(wù)器以及網(wǎng)絡(luò)等僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的服務(wù)器或者網(wǎng)絡(luò)如可適用于本申請,也應(yīng)包含在本申請保護范圍以內(nèi),并以引用方式包含于此。后面描述所討論的方法(其中一些通過流程圖示出)實施例可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意組合的形式來實施。當(dāng)用軟件、固件、中間件或者微代碼來實施時,用以實施必要任務(wù)的程序代碼或者代碼段可以被存儲在機器或計算機可讀介質(zhì)(比如存儲介質(zhì))中。(一個或多個)處理器可以實施必要的任務(wù)。這里所公開的具體結(jié)構(gòu)和功能細節(jié)僅僅是代表性的,并且是用于描述本申請的示例性實施例的目的,但是,本申請可以通過許多替換形式來具體實現(xiàn),并且不應(yīng)當(dāng)被解釋成僅僅受限于這里所闡述的實施例。應(yīng)當(dāng)理解的是,雖然在這里可能使用了術(shù)語“第一”、“第二”等等來描述各個單元,但是這些單元不應(yīng)當(dāng)受這些術(shù)語限制。使用這些術(shù)語僅僅是為了將一個單元與另一個單元進行區(qū)分。舉例來說,在不背離示例性實施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術(shù)語“和/或”包括其中一個或更多所列出的相關(guān)聯(lián)項目的任意和所有組合。應(yīng)當(dāng)理解的是,當(dāng)一個單元被稱為“連接”或者“耦合”到另一個單元時,其可以直接連接或者耦合到所述另一個單元,也可以存在中間單元。與此相對的,當(dāng)一個單元被稱為“直接連接”或者“直接耦合”到另一個單元 時,則不存在中間單元。應(yīng)當(dāng)按照類似的方式來解釋被用于描述單元之間的關(guān)系的其他詞語(例如,“處于...之間”相比于“直接處于...之間”,“與...鄰近”相比于“與...直接鄰近”等等)。這里所使用的術(shù)語僅僅是為了描述具體實施例,而不是意圖限制示例性實施例。除非上下文中明確地另有所指,否則,這里所使用的單數(shù)形式“一個”、“一項”還意圖包括復(fù)數(shù)。還應(yīng)當(dāng)理解的是,這里所使用的術(shù)語“包括”和/或“包含”規(guī)定了所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或者添加一個或更多的其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。還應(yīng)當(dāng)提到的是,在一些替換的實現(xiàn)方式中,所提到的功能/動作可以按照不同于附圖中標(biāo)示的順序發(fā)生。舉例來說,取決于所涉及的功能/動作,相繼示出的兩幅圖實際上可以基本上同時執(zhí)行或者有時可以按照相反的順序來執(zhí)行。技術(shù)術(shù)語說明:指標(biāo)通常包括基于一個維度或者多個維度對數(shù)據(jù)進行聚合統(tǒng)計而獲得的計算結(jié)果;源數(shù)據(jù)庫,在數(shù)據(jù)同步過程中,通常是指存儲有被同步數(shù)據(jù)的數(shù)據(jù)庫,如源數(shù)據(jù)庫可以為數(shù)據(jù)倉庫等;主關(guān)鍵字是指其值可以唯一標(biāo)識出數(shù)據(jù)集合中的一條記錄的字段(如唯一標(biāo)識出表中的一條記錄的字段);數(shù)據(jù)集合用于存儲記錄,且數(shù)據(jù)集合可以具體為表等;時間窗口是指基于時間的預(yù)設(shè)閾值;內(nèi)存數(shù)據(jù)庫通常是指數(shù)據(jù)放在內(nèi)存中直接操作的數(shù)據(jù)庫。下面結(jié)合附圖對本發(fā)明的技術(shù)方案作進一步詳細描述。實施例一、數(shù)據(jù)同步方法。圖1為本實施例的數(shù)據(jù)同步方法流程圖。圖1中,本實施例的方法主要包括:步驟s100、步驟s110以及步驟s120。本實施例的方法通常由能夠訪問源數(shù)據(jù)庫以及目標(biāo)數(shù)據(jù)庫的設(shè)備(如計算機或者服務(wù)器等)執(zhí)行。下面對本實施例的方法所包含的各步驟分別進行說明。s100、獲取已同步處理的第一數(shù)據(jù)集合以及待同步處理的第二數(shù)據(jù)集合。作為示例,可以從源數(shù)據(jù)庫中獲取基于指標(biāo)前次已同步處理的第一數(shù)據(jù)集合以及基于指標(biāo)本次待同步處理的第二數(shù)據(jù)集合,在將數(shù)據(jù)倉庫中的包含指標(biāo)的相應(yīng)數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中的應(yīng)用場景中,本實施例中的源數(shù)據(jù)庫(即同步源數(shù)據(jù)庫)為數(shù)據(jù)倉庫,目標(biāo)數(shù)據(jù)庫(即同步目標(biāo)數(shù)據(jù)庫)為內(nèi)存數(shù)據(jù)庫,且本實施例的基于指標(biāo)的數(shù)據(jù)庫增量同步方法可以稱為基于指標(biāo)的從數(shù)據(jù)倉庫到內(nèi)存數(shù)據(jù)庫增量同步方法。在其他的同步應(yīng)用場景中,源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的具體表現(xiàn)形式應(yīng)與同步應(yīng)用場景相適應(yīng),本實施例不限制源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的具體表現(xiàn)形式。作為示例,本實施例中的基于指標(biāo)前次已同步處理的第一數(shù)據(jù)集合是指最近一次進行了基于指標(biāo)的數(shù)據(jù)庫增量同步處理的數(shù)據(jù)集合(如表),基于指標(biāo)本次待同步處理的第二數(shù)據(jù)集合是指本次需要進行基于指標(biāo)的數(shù)據(jù)庫增量同步處理的數(shù)據(jù)集合(如表),且第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中的各條記錄均來自源數(shù)據(jù)庫。一個具體的例子,在指標(biāo)的計算頻率為一天,且數(shù)據(jù)庫增量同步頻率也為一天的情況下,第一數(shù)據(jù)集合可以為包含有用于前一日計算指標(biāo)的相應(yīng)數(shù)據(jù)以及前一日計算出的指標(biāo)的數(shù)據(jù)表(可以稱為前一日數(shù)據(jù)表),而第二數(shù)據(jù)集合可以為包含用于當(dāng)日計算指標(biāo)的相應(yīng)數(shù)據(jù)以及當(dāng)日計算出的指標(biāo)的數(shù)據(jù)表(可以稱為當(dāng)日數(shù)據(jù)表)。作為示例,本實施例可以通過設(shè)置基于時間的數(shù)據(jù)查詢條件,來從源數(shù)據(jù)庫中獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合;如在源數(shù)據(jù)庫的記錄中包含有同步處理時間或者指標(biāo)計算時間等字段的情況下,通過設(shè)置同步處理時間或者指標(biāo)計算時間為前次同步處理時間或者前次指標(biāo)計算時間(如昨天的日期)這一查詢條件,可以通過查詢從源數(shù)據(jù)庫中獲得第一數(shù)據(jù)集合,而通過設(shè)置同步處理時間或者指標(biāo)計算時間為本次同步處理時間或者本次指標(biāo)計算時間(如今天的日期)這一查詢條件,可以通過查詢從源數(shù)據(jù)庫中獲得第二數(shù)據(jù)集合。需要特別說明的是,在第一次進行指標(biāo)計算,并在第一次進行指標(biāo)計算后,對目標(biāo)數(shù)據(jù)庫進行基于指標(biāo)的數(shù)據(jù)庫增量同步的處理過程中,本實施例中的第一數(shù)據(jù)集合應(yīng)為空。本實施例可以通過設(shè)置基于無效時間的數(shù)據(jù)查詢 條件,來從源數(shù)據(jù)庫中獲取為空的第一數(shù)據(jù)集合;如在源數(shù)據(jù)庫的記錄中包含有同步處理時間或者指標(biāo)計算時間等字段的情況下,通過設(shè)置同步處理時間或者指標(biāo)計算時間為無效時間(如9999年1月1日)這一查詢條件,可以通過查詢從源數(shù)據(jù)庫中獲得為空的第一數(shù)據(jù)集合。s110、根據(jù)主關(guān)鍵字獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)。本實施例中的主關(guān)鍵字可以為數(shù)據(jù)集合主關(guān)鍵字,數(shù)據(jù)集合主關(guān)鍵字即第一數(shù)據(jù)集合和第二數(shù)據(jù)集合的主關(guān)鍵字。本實施例所獲取的第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)是指:指標(biāo)同時存在于第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中,且指標(biāo)在第一數(shù)據(jù)集合中的值與該指標(biāo)在第二數(shù)據(jù)集合中的值完全相同。作為示例,本實施例可以采用全外連接的方式獲得第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)。下面結(jié)合圖2對采用全外連接的方式獲得第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)的過程進行說明。圖2中,s200、根據(jù)數(shù)據(jù)集合主關(guān)鍵字將第一數(shù)據(jù)集合和第二數(shù)據(jù)集合全外連接。作為示例,設(shè)定數(shù)據(jù)集合主關(guān)鍵字為用戶標(biāo)識(id),第一數(shù)據(jù)集合的內(nèi)容包括下述表1,而第二數(shù)據(jù)集合的內(nèi)容包括下述表2:表1用戶標(biāo)識(id)用戶名稱指標(biāo)a1aa12bb14dd1表2用戶標(biāo)識(id)用戶名稱指標(biāo)a1aa13cc2本實施例根據(jù)用戶標(biāo)識將包含上述表1的第一數(shù)據(jù)集合和包含上述表2的第二數(shù)據(jù)集合全外連接后,所獲得的內(nèi)容包括下述表3:表3用戶標(biāo)識用戶名稱指標(biāo)a用戶標(biāo)識用戶名稱指標(biāo)a1aa11aa12bb1nullnullnullnullnullnull3cc24dd1nullnullnulls210、根據(jù)全外連接獲得的各條記錄確定第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)。作為示例,全外連接后通常會形成多條記錄,本實施例應(yīng)針對每一條記錄分別進行下述判斷:判斷一條記錄中的第一個指標(biāo)是否為空以及該條記錄中的第二個指標(biāo)是否為空,如果該條記錄中的第一個指標(biāo)不為空,且第二個指標(biāo)也不為空,則確定出該條記錄中的指標(biāo)是第一數(shù)據(jù)集合和第二數(shù)據(jù)集合均存在的指標(biāo),針對第一數(shù)據(jù)集合和第二數(shù)據(jù)集合均存在的指標(biāo),本實施例應(yīng)繼續(xù)判斷該條記錄中的兩個指標(biāo)的值是否相同,如果相同,則確定出該指標(biāo)沒有發(fā)生變化。續(xù)前例,上述表3中包括4條記錄,本實施例應(yīng)針對這4條記錄分別進行下述判斷:判斷該條記錄中左邊的指標(biāo)a是否為null以及該條記錄中右邊的指標(biāo)a是否為null,如果左邊的指標(biāo)a不為null,且右邊的指標(biāo)a也不為null,則確定出該條記錄中的指標(biāo)a是第一數(shù)據(jù)集合和第二數(shù)據(jù)集合均存在的指標(biāo),且針對第一數(shù)據(jù)集合和第二數(shù)據(jù)集合均存在的指標(biāo)a需要繼續(xù)判斷該條記錄中的左右兩個指標(biāo)a的值是否相同,如果相同,則確定出該條記錄中的指標(biāo)a沒有發(fā)生變化。具體的,上述表3中的四條記錄只有第一條記錄中的指標(biāo)a為第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)。本實施例可以針對第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)設(shè)置無變化標(biāo)記,也就是說,在第二數(shù)據(jù)集合中為相應(yīng)記錄中的指標(biāo) 設(shè)置無變化標(biāo)記;續(xù)前例,針對表2中的第一條記錄中的a1設(shè)置nochange標(biāo)記。由于在下一次同步處理過程中,本次同步處理過程中的第二數(shù)據(jù)集合會成為第一數(shù)據(jù)集合,因此,在除了第一次進行基于指標(biāo)的數(shù)據(jù)庫增量同步之外的其他同步過程中,本實施例中的第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中的各條記錄均經(jīng)過了針對指標(biāo)設(shè)置無變化標(biāo)記的處理過程。需要特別說明的是,在第一次進行指標(biāo)計算,并在第一次進行指標(biāo)計算后,對目標(biāo)數(shù)據(jù)庫進行基于指標(biāo)的數(shù)據(jù)庫增量同步的處理過程中,由于第一數(shù)據(jù)集合為空,因此,本實施例可以認(rèn)為第一數(shù)據(jù)集合中沒有任何一條記錄中的指標(biāo)設(shè)置有無變化標(biāo)記,而且,由于本實施例中的第二數(shù)據(jù)集合中的任何一條記錄中的指標(biāo)的值相對于第一數(shù)據(jù)集合而言都發(fā)生了變化,因此,本實施例不會針對第二數(shù)據(jù)集合中的任何一條記錄中的指標(biāo)設(shè)置無變化標(biāo)記。作為示例,針對第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo),本實施例可以在第二數(shù)據(jù)集合中為該指標(biāo)設(shè)置無變化標(biāo)記,以便于能夠利用該無變化標(biāo)記來判斷指標(biāo)當(dāng)前值無變化持續(xù)時間,如通過追溯連續(xù)設(shè)置無變化標(biāo)記的數(shù)據(jù)集合,即可計算出指標(biāo)當(dāng)前值無變化持續(xù)時間。作為示例,為了進一步方便的判斷出指標(biāo)當(dāng)前值無變化持續(xù)時間,本實施例可以在為第二數(shù)據(jù)集合中的指標(biāo)設(shè)置無變化標(biāo)記后,判斷該指標(biāo)在第一數(shù)據(jù)集合中是否設(shè)置有無變化標(biāo)記,如果判斷的結(jié)果為該指標(biāo)在第一數(shù)據(jù)集合中也設(shè)置有無變化標(biāo)記,則可以將第二數(shù)據(jù)集合中的該指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間設(shè)置為第一數(shù)據(jù)集合中的該指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間;而如果判斷的結(jié)果為該指標(biāo)在第一數(shù)據(jù)集合中并未設(shè)置有無變化標(biāo)記,則本實施例不會對第二數(shù)據(jù)集合中的該指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間進行修改,從而使第二數(shù)據(jù)集合中的該指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間仍為其初始值,如計算出指標(biāo)當(dāng)前值的時間(即指標(biāo)當(dāng)前值的計算時間)。在實際應(yīng)用中,在針對數(shù)據(jù)倉庫中的數(shù)據(jù)計算指標(biāo)的過程中,通常都會在數(shù)據(jù)倉庫中存儲計算出的指標(biāo)當(dāng)前值以及指標(biāo)當(dāng)前值的計算時間,本實施例可以利用數(shù)據(jù)倉庫中的指標(biāo)當(dāng)前值的計算時間來存儲指標(biāo)當(dāng)前值無變化起始時間。當(dāng)然,本實施例也可以利用數(shù) 據(jù)倉庫中的其他字段(如新增字段)來存儲指標(biāo)當(dāng)前值無變化起始時間。作為示例,本實施例可以采用左外連接的方式來判斷指標(biāo)在第一數(shù)據(jù)集合以及第二數(shù)據(jù)集合中是否均設(shè)置有無變化標(biāo)記;下面結(jié)合圖3對采用左外連接的方式來判斷指標(biāo)在第一數(shù)據(jù)集合以及第二數(shù)據(jù)集合中是否均設(shè)置有無變化標(biāo)記的具體實現(xiàn)過程進行說明。圖3中,s300、使第一數(shù)據(jù)集合中所有設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄形成第三數(shù)據(jù)集合,如通過對第一數(shù)據(jù)集合中的所有記錄進行分區(qū)存儲的方式使設(shè)置有無變化標(biāo)記的指標(biāo)存儲于同一個分區(qū)中,且該分區(qū)僅用于存儲第一數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄,該分區(qū)中的所有記錄即為第三數(shù)據(jù)集合。到步驟s320。s310、使第二數(shù)據(jù)集合中所有設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄形成第四數(shù)據(jù)集合,如通過對第二數(shù)據(jù)集合中的所有記錄進行分區(qū)存儲的方式使設(shè)置有無變化標(biāo)記的指標(biāo)存儲于同一個分區(qū)中,且該分區(qū)僅用于存儲第二數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄,該分區(qū)中的所有記錄即為第四數(shù)據(jù)集合。到步驟s320。s320、以第三數(shù)據(jù)集合為右,以第四數(shù)據(jù)集合為左,根據(jù)數(shù)據(jù)集合主關(guān)鍵字執(zhí)行左外連接操作。上述步驟s320中的數(shù)據(jù)集合主關(guān)鍵字即第一數(shù)據(jù)集合和第二數(shù)據(jù)集合的主關(guān)鍵字,也即第三數(shù)據(jù)集合和第四數(shù)據(jù)集合的主關(guān)鍵字。設(shè)定第三數(shù)據(jù)集合包括上述表1的內(nèi)容,且表1中的各條記錄均設(shè)置有無變化標(biāo)記,第四數(shù)據(jù)集合包括上述表2的內(nèi)容,且表2中的各條記錄均設(shè)置有無變化標(biāo)記,則本實施例在執(zhí)行左外連接操作后所獲得的內(nèi)容包括下述表4:表4用戶標(biāo)識用戶名稱指標(biāo)a用戶標(biāo)識用戶名稱指標(biāo)a1aa11aa13cc2nullnullnull需要特別說明的是:由于上述表1和表2中均沒有示出指標(biāo)的無變化標(biāo) 記,因此,上述表4中的各條記錄中均沒有包含指標(biāo)的無變化標(biāo)記,而在實際應(yīng)用中,左外連接后所獲得的各條記錄中的左半部分中均應(yīng)包括有指標(biāo)的無變化標(biāo)記,然而各條記錄中的右半部分中有可能均不包含指標(biāo)的無變化標(biāo)記,也有可能部分包含有指標(biāo)的無變化標(biāo)記,還有可能均包含有指標(biāo)的無變化標(biāo)記。s330、針對左外連接獲得的所有記錄分別進行判斷,如果判斷出一條記錄中包含有兩個無變化標(biāo)記,則到步驟s340,否則,到步驟s350。s340、確定出該條記錄中的指標(biāo)為在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的指標(biāo)。s350、確定出該條記錄中的指標(biāo)并不是在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的指標(biāo)。作為示例,本實施例可以采用右外連接的方式來判斷指標(biāo)在第一數(shù)據(jù)集合以及第二數(shù)據(jù)集合中是否均設(shè)置有無變化標(biāo)記;下面結(jié)合圖4對采用右外連接的方式來判斷指標(biāo)在第一數(shù)據(jù)集合以及第二數(shù)據(jù)集合中是否均設(shè)置有無變化標(biāo)記的具體實現(xiàn)過程進行說明。圖4中,s400、使第一數(shù)據(jù)集合中所有設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄形成第三數(shù)據(jù)集合,如通過對第一數(shù)據(jù)集合中的所有記錄進行分區(qū)存儲的方式使設(shè)置有無變化標(biāo)記的指標(biāo)存儲于同一個分區(qū)中,且該分區(qū)僅用于存儲第一數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄,該分區(qū)中的所有記錄即為第三數(shù)據(jù)集合。到步驟s420。s410、使第二數(shù)據(jù)集合中所有設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄形成第四數(shù)據(jù)集合,如通過對第二數(shù)據(jù)集合中的所有記錄進行分區(qū)存儲的方式使設(shè)置有無變化標(biāo)記的指標(biāo)存儲于同一個分區(qū)中,且該分區(qū)僅用于存儲第二數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄,該分區(qū)中的所有記錄即為第四數(shù)據(jù)集合。到步驟s420。s420、以第四數(shù)據(jù)集合為右,以第三數(shù)據(jù)集合為左,根據(jù)數(shù)據(jù)集合主關(guān)鍵字執(zhí)行右外連接操作。上述步驟s420中的數(shù)據(jù)集合主關(guān)鍵字即第一數(shù)據(jù)集合和第二數(shù)據(jù)集合的主關(guān)鍵字,也即第三數(shù)據(jù)集合和第四數(shù)據(jù)集合的主關(guān)鍵字。設(shè)定第三數(shù)據(jù)集合包括上述表1的內(nèi)容,且表1中的各條記錄均設(shè)置有無變化標(biāo)記,第四數(shù)據(jù)集合包括上述表2的內(nèi)容,且表2中的各條記錄均設(shè)置有無變化標(biāo)記,則本實施例在執(zhí)行右外連接操作后所獲得的內(nèi)容包括下述表5:表5用戶標(biāo)識用戶名稱指標(biāo)a用戶標(biāo)識用戶名稱指標(biāo)a1aa11aa1nullnullnull3cc2需要特別說明的是:由于上述表1和表2中均沒有示出指標(biāo)的無變化標(biāo)記,因此,上述表5中的各條記錄中均沒有包含指標(biāo)的無變化標(biāo)記,而在實際應(yīng)用中,右外連接后所獲得的各條記錄中的右半部分中均應(yīng)包含有指標(biāo)的無變化標(biāo)記,然而各條記錄中的左半部分中有可能均不包含指標(biāo)的無變化標(biāo)記,也有可能部分包含有指標(biāo)的無變化標(biāo)記,還有可能均包含有指標(biāo)的無變化標(biāo)記。s430、針對右外連接獲得的所有記錄分別進行判斷,如果判斷出一條記錄中包含有兩個無變化標(biāo)記,則到步驟s440,否則,到步驟s450。s440、確定出該條記錄中的指標(biāo)為在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的指標(biāo)。s450、確定出該條記錄中的指標(biāo)并不是在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的指標(biāo)。另外需要特別說明的是,本實施例在根據(jù)數(shù)據(jù)集合主關(guān)鍵字獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)的過程中,還可以執(zhí)行根據(jù)數(shù)據(jù)集合主關(guān)鍵字獲取第一數(shù)據(jù)集合不存在而第二數(shù)據(jù)集合中存在的指標(biāo)的操作,如果根據(jù)數(shù)據(jù)集合主關(guān)鍵字查找到第一數(shù)據(jù)集合不存在而第二數(shù)據(jù)集合中存在的指標(biāo),則確定出第二數(shù)據(jù)集合中的該指標(biāo)為新增的指標(biāo);針對新增的指標(biāo),本實施例應(yīng)將第二數(shù)據(jù)集合中的該新增的指標(biāo)所在記錄中的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中,如根據(jù)實際需求從第二數(shù)據(jù)集合中該指標(biāo)所在記錄中提取出包含有數(shù)據(jù)集合主關(guān)鍵字以及指標(biāo)在內(nèi)的部分?jǐn)?shù)據(jù),并將提 取出的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中;當(dāng)然,在有些應(yīng)用場景中,可以根據(jù)實際需求將第二數(shù)據(jù)集合中該指標(biāo)所在記錄中的所有數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫(如內(nèi)存數(shù)據(jù)庫等)中;本實施例還應(yīng)將目標(biāo)數(shù)據(jù)庫中的該指標(biāo)所在記錄的失效時間設(shè)置為該指標(biāo)的時間窗口。再一需要特別說明的是,本實施例在根據(jù)數(shù)據(jù)集合主關(guān)鍵字獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)的過程中,還可以執(zhí)行根據(jù)數(shù)據(jù)集合主關(guān)鍵字獲取第一數(shù)據(jù)集合存在而第二數(shù)據(jù)集合中不存在的指標(biāo)的操作,如果根據(jù)數(shù)據(jù)集合主關(guān)鍵字查找到第一數(shù)據(jù)集合存在而第二數(shù)據(jù)集合中不存在的指標(biāo),則確定出第一數(shù)據(jù)集合中的該指標(biāo)為目標(biāo)數(shù)據(jù)庫中需要失效的指標(biāo);針對需要失效的指標(biāo),本實施例應(yīng)將第一數(shù)據(jù)集合中的該指標(biāo)所在記錄中的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中,如根據(jù)實際需求從第一數(shù)據(jù)集合中該指標(biāo)所在記錄中提取出包含有數(shù)據(jù)集合主關(guān)鍵字以及指標(biāo)在內(nèi)的部分?jǐn)?shù)據(jù),并將提取出的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中;當(dāng)然,在有些應(yīng)用場景中,本實施例可以根據(jù)實際需求將第一數(shù)據(jù)集合中該指標(biāo)所在記錄中的所有數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫(如內(nèi)存數(shù)據(jù)庫等)中;本實施例還應(yīng)將目標(biāo)數(shù)據(jù)庫中的該指標(biāo)所在記錄的失效時間設(shè)置為即時失效的時間值(也可以稱為即刻失效時間,如1秒等),以便于可以由于針對該條記錄的失效時間的計時值立刻達到即時失效的時間值而使該條記錄立刻從目標(biāo)數(shù)據(jù)庫中刪除,從而避免了目標(biāo)數(shù)據(jù)庫中需要失效的數(shù)據(jù)沒有及時失效的現(xiàn)象。s120、在判斷出指標(biāo)當(dāng)前值無變化持續(xù)時間達到與該指標(biāo)對應(yīng)的預(yù)設(shè)閾值的情況下,將第二數(shù)據(jù)集合中該指標(biāo)所在記錄的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中。作為示例,本實施例可以根據(jù)指標(biāo)在第二數(shù)據(jù)集合中是否設(shè)置有無變化標(biāo)記以及指標(biāo)當(dāng)前值無變化起始時間來確定指標(biāo)當(dāng)前值無變化持續(xù)時間,即在確定出該指標(biāo)在第二數(shù)據(jù)集合中設(shè)置有無變化標(biāo)記時,計算當(dāng)前時間與該指標(biāo)在第二數(shù)據(jù)集合中的指標(biāo)當(dāng)前值無變化起始時間的時間差值,且計算出的該時間差值即為指標(biāo)當(dāng)前值無變化持續(xù)時間。本實施例也可以采用其他方式來確定指標(biāo)當(dāng)前值無變化持續(xù)時間;如在針對指標(biāo)進行無變化標(biāo)記的設(shè)置處理,而不進行指標(biāo)當(dāng)前值無變化起始時間的設(shè)置處理的情況下,本實施例 可以通過追溯連續(xù)設(shè)置無變化標(biāo)記的已同步處理的數(shù)據(jù)集合的個數(shù),即可計算出指標(biāo)當(dāng)前值無變化持續(xù)時間;再如在針對指標(biāo)不進行無變化標(biāo)記的設(shè)置處理,也不進行指標(biāo)當(dāng)前值無變化起始時間的設(shè)置處理的情況下,本實施例可以通過追溯該指標(biāo)當(dāng)前值在已同步處理的數(shù)據(jù)集合中連續(xù)出現(xiàn)的次數(shù),即可計算出指標(biāo)當(dāng)前值無變化持續(xù)時間。作為示例,本實施例對上述計算出的時間差值進行判斷,以確定該時間差值是否達到與該指標(biāo)對應(yīng)的時間窗口(下述稱為指標(biāo)的時間窗口);如果判斷出計算獲得的時間差值達到該指標(biāo)的時間窗口,則可以確定出指標(biāo)當(dāng)前值無變化持續(xù)時間達到該指標(biāo)的時間窗口,本實施例應(yīng)將第二數(shù)據(jù)集合中該指標(biāo)所在記錄的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫(如內(nèi)存數(shù)據(jù)庫等)中,如根據(jù)實際需求從第二數(shù)據(jù)集合中該指標(biāo)所在記錄中提取出包含有數(shù)據(jù)集合主關(guān)鍵字以及指標(biāo)在內(nèi)的部分?jǐn)?shù)據(jù),并將提取出的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中;當(dāng)然,在有些應(yīng)用場景中,可以根據(jù)實際需求將第二數(shù)據(jù)集合中該指標(biāo)所在記錄中的所有數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫(如內(nèi)存數(shù)據(jù)庫等)中;如果判斷出計算獲得的時間差值未達到該指標(biāo)的時間窗口,則可以確定出指標(biāo)當(dāng)前值無變化持續(xù)時間未達到該指標(biāo)的時間窗口,本實施例不會執(zhí)行將第二數(shù)據(jù)集合中該指標(biāo)所在記錄的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中的操作。實施例二、數(shù)據(jù)同步方法。圖5為本實施例的數(shù)據(jù)同步方法流程圖。本實施例的方法通常由能夠訪問數(shù)據(jù)倉庫以及內(nèi)存數(shù)據(jù)庫的設(shè)備(如計算機或者服務(wù)器等)執(zhí)行。下面對本實施例的方法所包含的各步驟分別進行說明。s500、針對數(shù)據(jù)倉庫中的數(shù)據(jù)進行指標(biāo)計算,并在指標(biāo)計算后獲得基于指標(biāo)本次待同步處理的當(dāng)日數(shù)據(jù)表。s510、從數(shù)據(jù)倉庫中獲取基于指標(biāo)前次已同步處理的前日數(shù)據(jù)表。s520、根據(jù)當(dāng)日數(shù)據(jù)表和前日數(shù)據(jù)表的主關(guān)鍵字將當(dāng)日數(shù)據(jù)表和前日數(shù)據(jù)包進行全外關(guān)聯(lián)。s530、針對全外關(guān)聯(lián)獲得的表中的各記錄分別進行delta1、delta2、del或者nochange的標(biāo)記,本步驟也可以認(rèn)為是對當(dāng)日數(shù)據(jù)表中的各記錄分別進行delta1、delta2、del或者nochange的標(biāo)記。具體的,針對全外關(guān)聯(lián)獲得的表中的一條記錄而言,如果該條記錄中包含有一個指標(biāo),且該指標(biāo)出現(xiàn)在當(dāng)日數(shù)據(jù)表所在側(cè),則將該條記錄標(biāo)記為新增記錄,即標(biāo)記為delta1;如果該條記錄中包含有兩個指標(biāo),且這兩個指標(biāo)的值不相同,則將該條記錄標(biāo)記為新增記錄,即標(biāo)記為delta2;如果該條記錄中包含有兩個指標(biāo),且這兩個指標(biāo)的值相同,則應(yīng)在當(dāng)日數(shù)據(jù)表中將該指標(biāo)所在的記錄標(biāo)記為無變化標(biāo)記,即標(biāo)記為nochange;如果該條記錄包含有一個指標(biāo),且該指標(biāo)出現(xiàn)在前日數(shù)據(jù)表所在側(cè),則將該條記錄標(biāo)記為死亡記錄,即標(biāo)記為del。s540、將當(dāng)日數(shù)據(jù)表中具有無變化標(biāo)記的記錄形成的表作為左表,將前日數(shù)據(jù)庫中具有無變化標(biāo)記的記錄形成的表作為右表,執(zhí)行左外連接操作。s550、針對左外關(guān)聯(lián)獲得的表中的各記錄分別進行進一步的標(biāo)記處理操作,如執(zhí)行nochange_delta1、nochange_delta2、nochange_delta3或者delta3的標(biāo)記處理操作,并針對標(biāo)記為nochange_delta1的記錄進行指標(biāo)當(dāng)前值無變化起始時間的修改。本步驟也可以認(rèn)為是對當(dāng)日數(shù)據(jù)表中的相應(yīng)記錄分別進行nochange_delta1、nochange_delta2、nochange_delta3或者delta3的標(biāo)記。具體的,針對左外關(guān)聯(lián)獲得的表中的一條記錄而言,如果該條記錄中包含有兩個nochange標(biāo)記,且該條記錄中的兩個指標(biāo)的值相同,則將該條記錄標(biāo)記為nochange_delta1,并將該條記錄中的左側(cè)的指標(biāo)當(dāng)前值無變化起始時間修改為該條記錄中的右側(cè)的指標(biāo)當(dāng)前值無變化起始時間;如果該條記錄中包含有兩個nochange標(biāo)記,且該條記錄中的兩個指標(biāo)的值不相同,則將該條記錄標(biāo)記為nochange_delta2;而如果該條記錄中包含有一個nochange標(biāo)記,且該nochange標(biāo)記出現(xiàn)在記錄中的左側(cè),則將該條記錄標(biāo)記為nochange_delta3。之后,針對標(biāo)記為nochange_delta1的各條記錄,分別計算當(dāng)前時間與記錄左側(cè)的指標(biāo)當(dāng)前值無變化起始時間的差值,并在判斷出該差值達到該指標(biāo)的時間窗口時,將該條記錄的標(biāo)記修改為delta3,否則,不對該條記錄的標(biāo)記進行修改,即該條記錄的標(biāo)記仍為nochange_delta1。s560、利用標(biāo)記為delta3、nochange_delta1、nochange_delta2以及nochange_delta3的記錄中的左半部分?jǐn)?shù)據(jù)替換當(dāng)日數(shù)據(jù)表中標(biāo)記為 nochange的記錄。s570、將當(dāng)日數(shù)據(jù)表中的相應(yīng)記錄中的相應(yīng)數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中。具體的,本實施例應(yīng)將標(biāo)記為delta1、delta2以及delta3的當(dāng)日數(shù)據(jù)表中的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中,并將該同步到內(nèi)存數(shù)據(jù)庫中的各條記錄的失效時間設(shè)置為相應(yīng)指標(biāo)的時間窗口。另外,本實施例還應(yīng)將標(biāo)記為del的當(dāng)日數(shù)據(jù)表中的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中,并將該同步到內(nèi)存數(shù)據(jù)庫中的各條記錄的失效時間設(shè)置為即時失效的時間值(也可以稱為即刻失效時間,如1秒),以便于可以由于針對該條記錄的失效時間的計時值立刻達到即時失效的時間值而使該條記錄立刻從內(nèi)存數(shù)據(jù)庫中刪除,從而避免了內(nèi)存數(shù)據(jù)庫中需要失效的數(shù)據(jù)沒有及時失效的現(xiàn)象。實施例三、數(shù)據(jù)同步裝置。圖6為本實施例的數(shù)據(jù)同步裝置的一結(jié)構(gòu)示意圖。圖6中,本實施例的裝置主要包括:第一獲取模塊600、第二獲取模塊610以及第一同步模塊620。本實施例的裝置通常設(shè)置于能夠訪問源數(shù)據(jù)庫以及目標(biāo)數(shù)據(jù)庫的設(shè)備(如計算機或者服務(wù)器等)中。另外,本實施例的裝置還可以可選的包括:設(shè)置模塊630、第三獲取模塊640、第二同步模塊650、第四獲取模塊660以及第三同步模塊670(如圖7所示)。下面對本實施例的裝置所包含的各模塊分別進行說明。第一獲取模塊600主要用于獲取已同步處理的第一數(shù)據(jù)集合以及待同步處理的第二數(shù)據(jù)集合,如從源數(shù)據(jù)庫中獲取基于指標(biāo)前次已同步處理的第一數(shù)據(jù)集合以及基于指標(biāo)本次待同步處理的第二數(shù)據(jù)集合。作為示例,在將數(shù)據(jù)倉庫中的包含指標(biāo)的相應(yīng)數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中的應(yīng)用場景中,本實施例中的源數(shù)據(jù)庫(即同步源數(shù)據(jù)庫)為數(shù)據(jù)倉庫,目標(biāo)數(shù)據(jù)庫(即同步目標(biāo)數(shù)據(jù)庫)為內(nèi)存數(shù)據(jù)庫,且本實施例的基于指標(biāo)的數(shù)據(jù)庫增量同步裝置可以稱為基于指標(biāo)的從數(shù)據(jù)倉庫到內(nèi)存數(shù)據(jù)庫增量同步裝置。在其他的同步應(yīng)用場景中,源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的具體表現(xiàn)形式應(yīng)與同步應(yīng)用場景相適應(yīng),本實施例不限制源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的具體表現(xiàn)形式。作為示例,第一獲取模塊600所獲取的基于指標(biāo)前次已同步處理的第一 數(shù)據(jù)集合是指最近一次進行了基于指標(biāo)的數(shù)據(jù)庫增量同步處理的數(shù)據(jù)集合(可以采用表的形式),第一獲取模塊600所獲取的基于指標(biāo)本次待同步處理的第二數(shù)據(jù)集合是指本次需要進行基于指標(biāo)的數(shù)據(jù)庫增量同步處理的數(shù)據(jù)集合(可以采用表的形式),且第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中的各條記錄均來自源數(shù)據(jù)庫。一個具體的例子,在指標(biāo)的計算頻率為一天,且數(shù)據(jù)庫增量同步頻率也為一天的情況下,第一獲取模塊600所獲取的第一數(shù)據(jù)集合可以為包含有用于前一日計算指標(biāo)的相應(yīng)數(shù)據(jù)以及前一日計算出的指標(biāo)的數(shù)據(jù)表(可以稱為前一日數(shù)據(jù)表),而第一獲取模塊600所獲取的第二數(shù)據(jù)集合可以為包含用于當(dāng)日計算指標(biāo)的相應(yīng)數(shù)據(jù)以及當(dāng)日計算出的指標(biāo)的數(shù)據(jù)表(可以稱為當(dāng)日數(shù)據(jù)表)。作為示例,第一獲取模塊600可以通過設(shè)置基于時間的數(shù)據(jù)查詢條件來從源數(shù)據(jù)庫中獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合;如在源數(shù)據(jù)庫的記錄中包含有同步處理時間或者指標(biāo)計算時間等字段的情況下,第一獲取模塊600通過設(shè)置同步處理時間或者指標(biāo)計算時間為前次同步處理時間或者前次指標(biāo)計算時間(如昨天的日期)這一查詢條件,可以通過查詢從源數(shù)據(jù)庫中獲得第一數(shù)據(jù)集合,而第一獲取模塊600通過設(shè)置同步處理時間或者指標(biāo)計算時間為本次同步處理時間或者本次指標(biāo)計算時間(如今天的日期)這一查詢條件,可以通過查詢從源數(shù)據(jù)庫中獲得第二數(shù)據(jù)集合。需要特別說明的是,在第一次進行指標(biāo)計算,并在第一次進行指標(biāo)計算后,對目標(biāo)數(shù)據(jù)庫進行基于指標(biāo)的數(shù)據(jù)庫增量同步的處理過程中,第一獲取模塊600所獲取到的第一數(shù)據(jù)集合應(yīng)為空。第一獲取模塊600可以通過設(shè)置基于無效時間的數(shù)據(jù)查詢條件從源數(shù)據(jù)庫中獲取為空的第一數(shù)據(jù)集合;如在源數(shù)據(jù)庫的記錄中包含同步處理時間或者指標(biāo)計算時間等字段的情況下,第一獲取模塊600通過設(shè)置同步處理時間或者指標(biāo)計算時間為無效時間(如9999年1月1日)這一查詢條件,可以通過查詢從源數(shù)據(jù)庫中獲得為空的第一數(shù)據(jù)集合。第二獲取模塊610主要用于根據(jù)主關(guān)鍵字(如數(shù)據(jù)集合主關(guān)鍵字)獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo),且第二獲取模塊還可以用于針對第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指 標(biāo),在第二數(shù)據(jù)集合中針對該指標(biāo)設(shè)置無變化標(biāo)記。第二獲取模塊610所使用的數(shù)據(jù)集合主關(guān)鍵字即第一數(shù)據(jù)集合和第二數(shù)據(jù)集合的主關(guān)鍵字。第二獲取模塊610所獲取的第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)是指:指標(biāo)同時存在于第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中,且指標(biāo)在第一數(shù)據(jù)集合中的值與該指標(biāo)在第二數(shù)據(jù)集合中的值完全相同。作為示例,第二獲取模塊610可以采用全外連接的方式獲得第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)。一個具體的例子,第二獲取模塊610包括:全外連接子模塊611以及第一確定子模塊612(如圖8所示),其中的全外連接子模塊611主要用于根據(jù)數(shù)據(jù)集合主關(guān)鍵字將第一數(shù)據(jù)集合和第二數(shù)據(jù)集合全外連接;其中的第一確定子模塊612主要用于根據(jù)全外連接獲得的各條記錄確定第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)。作為示例,設(shè)定數(shù)據(jù)集合主關(guān)鍵字為用戶標(biāo)識(id),第一數(shù)據(jù)集合的內(nèi)容包括上述表1,而第二數(shù)據(jù)集合的內(nèi)容包括上述表2,全外連接子模塊611根據(jù)用戶標(biāo)識將包含上述表1的第一數(shù)據(jù)集合和包含上述表2的第二數(shù)據(jù)集合全外連接后,所獲得的內(nèi)容包括上述表3。全外連接子模塊611執(zhí)行全外連接操作后通常會形成多條記錄,第一確定子模塊612應(yīng)針對每一條記錄分別進行下述判斷:判斷一條記錄中的第一個指標(biāo)是否為空以及該條記錄中的第二個指標(biāo)是否為空,如果該條記錄中的第一個指標(biāo)不為空,且第二個指標(biāo)也不為空,則第一確定子模塊612確定出該條記錄中的指標(biāo)是第一數(shù)據(jù)集合和第二數(shù)據(jù)集合均存在的指標(biāo),針對第一數(shù)據(jù)集合和第二數(shù)據(jù)集合均存在的指標(biāo),第一確定子模塊612應(yīng)繼續(xù)判斷該條記錄中的兩個指標(biāo)的值是否相同,如果相同,則第一確定子模塊612確定出該指標(biāo)沒有發(fā)生變化。續(xù)前例,上述表3中包括4條記錄,第一確定子模塊612應(yīng)針對這4條記錄分別進行下述判斷:第一確定子模塊612判斷該條記錄中左邊的指標(biāo)a是否為null以及該條記錄中右邊的指標(biāo)a是否為null,如果左邊的指標(biāo)a不為null,且右邊的指標(biāo)a也不為null,則第一確定子模塊612確定出該條記錄中的指標(biāo)a是第一數(shù)據(jù)集合和第二數(shù)據(jù)集合均存在的指標(biāo),且針對第一 數(shù)據(jù)集合和第二數(shù)據(jù)集合均存在的指標(biāo)a需要繼續(xù)判斷該條記錄中的左右兩個指標(biāo)a的值是否相同,如果相同,則第一確定子模塊612確定出該條記錄中的指標(biāo)a沒有發(fā)生變化。具體的,上述表3中的四條記錄只有第一條記錄中的指標(biāo)a為第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)。第二獲取模塊610(如第一確定子模塊612)可以針對第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)設(shè)置無變化標(biāo)記,也就是說,第二獲取模塊610(如第一確定子模塊612)在第二數(shù)據(jù)集合中為相應(yīng)記錄中的指標(biāo)設(shè)置無變化標(biāo)記;續(xù)前例,第二獲取模塊610(第一確定子模塊612)針對表2中的第一條記錄中的a1設(shè)置nochange標(biāo)記。由于在本裝置進行下一次同步處理過程中,本次同步處理過程中的第二數(shù)據(jù)集合會成為第一數(shù)據(jù)集合,因此,在除了第一次進行基于指標(biāo)的數(shù)據(jù)庫增量同步之外的其他同步過程中,本實施例中的第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中的各條記錄均經(jīng)過了第二獲取模塊610(如第一確定子模塊612)針對指標(biāo)設(shè)置無變化標(biāo)記的處理過程。需要特別說明的是,在第一次進行指標(biāo)計算,并在第一次進行指標(biāo)計算后,本裝置對目標(biāo)數(shù)據(jù)庫進行基于指標(biāo)的數(shù)據(jù)庫增量同步的處理過程中,由于第一數(shù)據(jù)集合為空,因此,第二獲取模塊610(如第一確定子模塊612)可以認(rèn)為第一數(shù)據(jù)集合中沒有任何一條記錄中的指標(biāo)設(shè)置有無變化標(biāo)記,而且,由于本實施例中的第二數(shù)據(jù)集合中的任何一條記錄中的指標(biāo)的值相對于第一數(shù)據(jù)集合而言都發(fā)生了變化,因此,第二獲取模塊610(如第一確定子模塊612)不會針對第二數(shù)據(jù)集合中的任何一條記錄中的指標(biāo)設(shè)置無變化標(biāo)記。作為示例,針對第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo),第二獲取模塊610(如第一確定子模塊612)可以在第二數(shù)據(jù)集合中為該指標(biāo)設(shè)置無變化標(biāo)記,以便于第一同步模塊620能夠利用該無變化標(biāo)記來判斷指標(biāo)當(dāng)前值無變化持續(xù)時間,如第一同步模塊620通過追溯連續(xù)設(shè)置無變化標(biāo)記的數(shù)據(jù)集合,即可計算出指標(biāo)當(dāng)前值無變化持續(xù)時間。作為示例,為了進一步方便第一同步模塊620判斷出指標(biāo)當(dāng)前值無變化持續(xù)時間,本實施例的裝置包括設(shè)置模塊630,且該設(shè)置模塊630主要用于針對第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo),在判斷出 指標(biāo)在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的情況下,將第二數(shù)據(jù)集合中的指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間設(shè)置為第一數(shù)據(jù)集合中的所述指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間;其中,第二數(shù)據(jù)集合中的所述指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間的初始值為計算出指標(biāo)當(dāng)前值的時間。設(shè)置模塊630可以在第二獲取模塊610為第二數(shù)據(jù)集合中的指標(biāo)設(shè)置無變化標(biāo)記后,判斷該指標(biāo)在第一數(shù)據(jù)集合中是否設(shè)置有無變化標(biāo)記,如果判斷的結(jié)果為該指標(biāo)在第一數(shù)據(jù)集合中也設(shè)置有無變化標(biāo)記,則設(shè)置模塊630可以將第二數(shù)據(jù)集合中的該指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間設(shè)置為第一數(shù)據(jù)集合中的該指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間;而如果判斷的結(jié)果為該指標(biāo)在第一數(shù)據(jù)集合中并未設(shè)置有無變化標(biāo)記,則設(shè)置模塊630不會對第二數(shù)據(jù)集合中的該指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間進行修改,從而使第二數(shù)據(jù)集合中的該指標(biāo)所在記錄中的指標(biāo)當(dāng)前值無變化起始時間仍為其初始值,如計算出指標(biāo)當(dāng)前值的時間(即指標(biāo)當(dāng)前值的計算時間)。在實際應(yīng)用中,在針對數(shù)據(jù)倉庫中的數(shù)據(jù)計算指標(biāo)的過程中,通常都會在數(shù)據(jù)倉庫中存儲計算出的指標(biāo)當(dāng)前值以及指標(biāo)當(dāng)前值的計算時間,設(shè)置模塊630可以利用數(shù)據(jù)倉庫中的指標(biāo)當(dāng)前值的計算時間來存儲指標(biāo)當(dāng)前值無變化起始時間。當(dāng)然,設(shè)置模塊630也可以利用數(shù)據(jù)倉庫中的其他字段(如新增字段)來存儲指標(biāo)當(dāng)前值無變化起始時間。作為示例,設(shè)置模塊630可以采用左外連接的方式或右外連接的方式來判斷指標(biāo)在第一數(shù)據(jù)集合以及第二數(shù)據(jù)集合中是否均設(shè)置有無變化標(biāo)記;此時,設(shè)置模塊630可以具體包括:左/右外連接子模塊631以及第二確定子模塊632(如圖9所示),其中的左/右外連接子模塊631主要用于以第一數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄所形成的第三數(shù)據(jù)集合為右/左,以第二數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄所形成的第四數(shù)據(jù)集合為左/右,根據(jù)數(shù)據(jù)集合主關(guān)鍵字執(zhí)行左/右外連接;其中的第二確定子模塊632主要用于根據(jù)左/右外連接獲得的各條記錄確定出在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的指標(biāo)。一個具體的例子,左/右外連接子模塊631使第一數(shù)據(jù)集合中所有設(shè)置有 無變化標(biāo)記的指標(biāo)所在的記錄形成第三數(shù)據(jù)集合,如左/右外連接子模塊631通過對第一數(shù)據(jù)集合中的所有記錄進行分區(qū)存儲的方式使設(shè)置有無變化標(biāo)記的指標(biāo)存儲于同一個分區(qū)中,且該分區(qū)僅用于存儲第一數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄,該分區(qū)中的所有記錄即為第三數(shù)據(jù)集合。左/右外連接子模塊631使第二數(shù)據(jù)集合中所有設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄形成第四數(shù)據(jù)集合,如通過對第二數(shù)據(jù)集合中的所有記錄進行分區(qū)存儲的方式使設(shè)置有無變化標(biāo)記的指標(biāo)存儲于同一個分區(qū)中,且該分區(qū)僅用于存儲第二數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄,該分區(qū)中的所有記錄即為第四數(shù)據(jù)集合。左/右外連接子模塊631以第三數(shù)據(jù)集合為右,以第四數(shù)據(jù)集合為左,根據(jù)數(shù)據(jù)集合主關(guān)鍵字執(zhí)行左外連接操作。左/右外連接子模塊631所使用的數(shù)據(jù)集合主關(guān)鍵字即第一數(shù)據(jù)集合和第二數(shù)據(jù)集合的主關(guān)鍵字,也即第三數(shù)據(jù)集合和第四數(shù)據(jù)集合的主關(guān)鍵字。第二確定子模塊632針對左外連接獲得的所有記錄分別進行判斷,如果判斷出一條記錄中包含有兩個無變化標(biāo)記,則第二確定子模塊632確定出該條記錄中的指標(biāo)為在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的指標(biāo),否則,第二確定子模塊632確定出該條記錄中的指標(biāo)并不是在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的指標(biāo)。另一個具體的例子為:左/右外連接子模塊631使第一數(shù)據(jù)集合中所有設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄形成第三數(shù)據(jù)集合,如通過對第一數(shù)據(jù)集合中的所有記錄進行分區(qū)存儲的方式使設(shè)置有無變化標(biāo)記的指標(biāo)存儲于同一個分區(qū)中,且該分區(qū)僅用于存儲第一數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄,該分區(qū)中的所有記錄即為第三數(shù)據(jù)集合。到步驟s420;左/右外連接子模塊631使第二數(shù)據(jù)集合中所有設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄形成第四數(shù)據(jù)集合,如左/右外連接子模塊631通過對第二數(shù)據(jù)集合中的所有記錄進行分區(qū)存儲的方式使設(shè)置有無變化標(biāo)記的指標(biāo)存儲于同一個分區(qū)中,且該分區(qū)僅用于存儲第二數(shù)據(jù)集合中的設(shè)置有無變化標(biāo)記的指標(biāo)所在的記錄,該分區(qū)中的所有記錄即為第四數(shù)據(jù)集合;左/右外連接子模塊631以第四數(shù)據(jù)集合為右,以第三數(shù)據(jù)集合為左,根據(jù)數(shù)據(jù)集合主關(guān)鍵字執(zhí)行右外連接操作。左/右外連接子模塊631所使用的數(shù)據(jù)集合主關(guān)鍵字即第一數(shù)據(jù)集合 和第二數(shù)據(jù)集合的主關(guān)鍵字,也即第三數(shù)據(jù)集合和第四數(shù)據(jù)集合的主關(guān)鍵字。第二確定子模塊632針對右外連接獲得的所有記錄分別進行判斷,如果判斷出一條記錄中包含有兩個無變化標(biāo)記,則第二確定子模塊632確定出該條記錄中的指標(biāo)為在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的指標(biāo),否則,第二確定子模塊632確定出該條記錄中的指標(biāo)并不是在第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均設(shè)置有無變化標(biāo)記的指標(biāo)。另外需要特別說明的是,在第二獲取模塊610根據(jù)數(shù)據(jù)集合主關(guān)鍵字獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)的過程中,第三獲取模塊640還可以執(zhí)行根據(jù)數(shù)據(jù)集合主關(guān)鍵字獲取第一數(shù)據(jù)集合不存在而第二數(shù)據(jù)集合中存在的指標(biāo)的操作,如果第三獲取模塊640根據(jù)數(shù)據(jù)集合主關(guān)鍵字查找到第一數(shù)據(jù)集合不存在而第二數(shù)據(jù)集合中存在的指標(biāo),則第二同步模塊650確定出第二數(shù)據(jù)集合中的該指標(biāo)為新增的指標(biāo);針對新增的指標(biāo),第二同步模塊650應(yīng)將第二數(shù)據(jù)集合中的該新增的指標(biāo)所在記錄中的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中,如根據(jù)實際需求從第二數(shù)據(jù)集合中該指標(biāo)所在記錄中提取出包含有數(shù)據(jù)集合主關(guān)鍵字以及指標(biāo)在內(nèi)的部分?jǐn)?shù)據(jù),并將提取出的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中;當(dāng)然,在有些應(yīng)用場景中,第二同步模塊650可以根據(jù)實際需求將第二數(shù)據(jù)集合中該指標(biāo)所在記錄中的所有數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫(如內(nèi)存數(shù)據(jù)庫等)中;第二同步模塊650還應(yīng)將目標(biāo)數(shù)據(jù)庫中的該指標(biāo)所在記錄的失效時間設(shè)置為該指標(biāo)的時間窗口。另一需要特別說明的是,在第二獲取模塊610根據(jù)數(shù)據(jù)集合主關(guān)鍵字獲取第一數(shù)據(jù)集合和第二數(shù)據(jù)集合中均存在且未發(fā)生變化的指標(biāo)的過程中,第四獲取模塊660還可以執(zhí)行根據(jù)數(shù)據(jù)集合主關(guān)鍵字獲取第一數(shù)據(jù)集合存在而第二數(shù)據(jù)集合中不存在的指標(biāo)的操作,如果第四獲取模塊660根據(jù)數(shù)據(jù)集合主關(guān)鍵字查找到第一數(shù)據(jù)集合存在而第二數(shù)據(jù)集合中不存在的指標(biāo),則第三同步模塊670確定出第一數(shù)據(jù)集合中的該指標(biāo)為目標(biāo)數(shù)據(jù)庫中需要失效的指標(biāo);針對需要失效的指標(biāo),第三同步模塊670應(yīng)將第一數(shù)據(jù)集合中的該指標(biāo)所在記錄中的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中,如第三同步模塊670根據(jù)實際需求從第一數(shù)據(jù)集合中該指標(biāo)所在記錄中提取出包含有數(shù)據(jù)集合主關(guān)鍵字以及指標(biāo)在內(nèi)的部分?jǐn)?shù)據(jù),并將提取出的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中;當(dāng)然,在 有些應(yīng)用場景中,第三同步模塊670可以根據(jù)實際需求將第一數(shù)據(jù)集合中該指標(biāo)所在記錄中的所有數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫(如內(nèi)存數(shù)據(jù)庫等)中;第三同步模塊670還應(yīng)將目標(biāo)數(shù)據(jù)庫中的該指標(biāo)所在記錄的失效時間設(shè)置為即時失效的時間值(也可以稱為即刻失效時間,如1秒等),以便于可以由于針對該條記錄的失效時間的計時值立刻達到即時失效的時間值而使該條記錄立刻從目標(biāo)數(shù)據(jù)庫中刪除,從而避免了目標(biāo)數(shù)據(jù)庫中需要失效的數(shù)據(jù)沒有及時失效的現(xiàn)象。第一同步模塊620主要用于在判斷出指標(biāo)當(dāng)前值無變化持續(xù)時間達到與該指標(biāo)對應(yīng)的預(yù)設(shè)閾值(如指標(biāo)的時間窗口)的情況下,將第二數(shù)據(jù)集合中該指標(biāo)所在記錄的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中。可選的,第一同步模塊620可以包括:計算子模塊621以及判斷子模塊622(如圖10所示),其中的計算子模塊621主要用于計算當(dāng)前時間與第二數(shù)據(jù)集合中的指標(biāo)當(dāng)前值無變化起始時間的時間差值,其中的判斷子模塊622主要用于在時間差值達到該指標(biāo)的時間窗口時,判斷出該指標(biāo)當(dāng)前值無變化持續(xù)時間達到該指標(biāo)的時間窗口。作為示例,第一同步模塊620(如計算子模塊621)可以根據(jù)指標(biāo)在第二數(shù)據(jù)集合中是否設(shè)置有無變化標(biāo)記以及指標(biāo)當(dāng)前值無變化起始時間來確定指標(biāo)當(dāng)前值無變化持續(xù)時間,即第一同步模塊620(如計算子模塊621)在確定出該指標(biāo)在第二數(shù)據(jù)集合中設(shè)置有無變化標(biāo)記時,計算當(dāng)前時間與該指標(biāo)在第二數(shù)據(jù)集合中的指標(biāo)當(dāng)前值無變化起始時間的時間差值,且第一同步模塊620(如計算子模塊621)計算出的該時間差值即為指標(biāo)當(dāng)前值無變化持續(xù)時間。第一同步模塊620也可以采用其他方式來確定指標(biāo)當(dāng)前值無變化持續(xù)時間;如在針對指標(biāo)進行無變化標(biāo)記的設(shè)置處理,而不進行指標(biāo)當(dāng)前值無變化起始時間的設(shè)置處理的情況下,第一同步模塊620可以通過追溯連續(xù)設(shè)置無變化標(biāo)記的已同步處理的數(shù)據(jù)集合的個數(shù),即可計算出指標(biāo)當(dāng)前值無變化持續(xù)時間;再如在針對指標(biāo)不進行無變化標(biāo)記的設(shè)置處理,也不進行指標(biāo)當(dāng)前值無變化起始時間的設(shè)置處理的情況下,第一同步模塊620可以通過追溯該指標(biāo)當(dāng)前值在已同步處理的數(shù)據(jù)集合中連續(xù)出現(xiàn)的次數(shù),即可計算出指標(biāo)當(dāng)前值無變化持續(xù)時間。作為示例,第一同步模塊620(如判斷子模塊622)對計算子模塊621所計算出的時間差值進行判斷,以判斷該時間差值是否達到該指標(biāo)的時間窗口;如果判斷出計算獲得的時間差值達到該指標(biāo)的時間窗口,則第一同步模塊620(如判斷子模塊622)可以確定出指標(biāo)當(dāng)前值無變化持續(xù)時間達到該指標(biāo)的時間窗口,第一同步模塊620應(yīng)將第二數(shù)據(jù)集合中該指標(biāo)所在記錄的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫(如內(nèi)存數(shù)據(jù)庫等)中,如第一同步模塊620根據(jù)實際需求從第二數(shù)據(jù)集合中該指標(biāo)所在記錄中提取出包含有數(shù)據(jù)集合主關(guān)鍵字以及指標(biāo)在內(nèi)的部分?jǐn)?shù)據(jù),并將提取出的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫中;當(dāng)然,在有些應(yīng)用場景中,第一同步模塊620可以根據(jù)實際需求將第二數(shù)據(jù)集合中該指標(biāo)所在記錄中的所有數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫(如內(nèi)存數(shù)據(jù)庫等)中;如果第一同步模塊620(如判斷子模塊622)判斷出計算獲得的時間差值未達到該指標(biāo)的時間窗口,則可以確定出指標(biāo)當(dāng)前值無變化持續(xù)時間未達到該指標(biāo)的時間窗口,第一同步模塊620不會執(zhí)行將第二數(shù)據(jù)集合中該指標(biāo)所在記錄的相應(yīng)數(shù)據(jù)同步到目標(biāo)數(shù)據(jù)庫中的操作。需要注意的是,本發(fā)明的一部分可以被應(yīng)用為計算機程序產(chǎn)品,例如計算機程序指令,當(dāng)其被智能電子設(shè)備(如計算機或者服務(wù)器等)執(zhí)行時,通過該智能電子設(shè)備的操作可以調(diào)用或者提供根據(jù)本發(fā)明的方法和/或技術(shù)方案。而調(diào)用本發(fā)明的方法的程序指令,可能被存儲在固定的或可移動的記錄介質(zhì)中,和/或通過廣播或者其他信號承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲在根據(jù)所述程序指令運行的智能電子設(shè)備的工作存儲器中。在此,根據(jù)本發(fā)明的一個實施例包括一個裝置,該裝置包括用于存儲計算機程序指令的存儲器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計算機程序指令被該處理器執(zhí)行時,觸發(fā)該裝置運行基于前述根據(jù)本發(fā)明的多個實施例的方法和/或技術(shù)方案。對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明并不局限于上述示范性實施例的細節(jié),而且在不背離本發(fā)明的精神或者基本特征的情況下,能夠以其他的具體形式實現(xiàn)本發(fā)明。因此,無論從哪一點來看,均應(yīng)將本發(fā)明的實施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化 涵括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個單元或者裝置或者模塊也可以由一個單元或者裝置或者模塊通過軟件或者硬件來實現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。當(dāng)前第1頁12