一種數(shù)據(jù)庫的更新方法及系統(tǒng)的制作方法
【專利摘要】本申請?zhí)峁┝艘环N數(shù)據(jù)庫的更新方法及系統(tǒng),解決數(shù)據(jù)庫更新過程中資源消耗大的問題。所述的方法包括:在全量數(shù)據(jù)表中建立結(jié)束表和未結(jié)束表,其中,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù);接收增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),其中,所述增量數(shù)據(jù)包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)和/或處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù);分別查詢每個(gè)增量數(shù)據(jù)的狀態(tài);其中,若所述增量數(shù)據(jù)的狀態(tài)為完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄;若所述增量數(shù)據(jù)的狀態(tài)為未完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄。
【專利說明】一種數(shù)據(jù)庫的更新方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)據(jù)處理技術(shù),特別是涉及一種數(shù)據(jù)庫的更新方法及系統(tǒng)。
【背景技術(shù)】
[0002]數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行同步的過程中,即數(shù)據(jù)表的更新過程中,需要定時(shí)將業(yè)務(wù)數(shù)據(jù)表中的數(shù)據(jù)同步到增量數(shù)據(jù)表中,再將增量數(shù)據(jù)表中的數(shù)據(jù)合并到全量數(shù)據(jù)表中。
[0003]其中,將增量數(shù)據(jù)表中的數(shù)據(jù)合并到全量數(shù)據(jù)表采用的方法是insert update方式,即按照業(yè)務(wù)數(shù)據(jù)表的主鍵和更新時(shí)間,把增量數(shù)據(jù)表中增加的數(shù)據(jù)insert (插入)到全量數(shù)據(jù)表中,將增量數(shù)據(jù)表中修改的數(shù)據(jù)update (更新)到全量數(shù)據(jù)表中。
[0004]但是,采用insert update方式時(shí),需要遍歷全量數(shù)據(jù)表中的所有數(shù)據(jù),才能確認(rèn)增量數(shù)據(jù)表中的哪個(gè)數(shù)據(jù)是增加的,哪個(gè)數(shù)據(jù)是修改的,然后再執(zhí)行插入或更新操作。
[0005]全量數(shù)據(jù)表中的數(shù)據(jù)是非常多的,并且其中的大部分?jǐn)?shù)據(jù)都是不會再修改的,因此采用insert update方式,遍歷全量數(shù)據(jù)表中的所有數(shù)據(jù)會消耗大量的資源。尤其是針對海量數(shù)據(jù)的處理時(shí),全量數(shù)據(jù)表中的數(shù)據(jù)是數(shù)以億計(jì)的,采用insert update方式會大大的增加資源的消耗,并且,數(shù)據(jù)處理的時(shí)間比較長,效率非常低。
【發(fā)明內(nèi)容】
[0006]本申請?zhí)峁┮环N數(shù)據(jù)庫的更新方法及系統(tǒng),以解決數(shù)據(jù)庫的更新過程中資源消耗較大,數(shù)據(jù)處理的時(shí)間比較長,效率非常低的問題。
[0007]為了解決上述問題,本申請公開了一種數(shù)據(jù)庫的更新方法,包括:
[0008]在全量數(shù)據(jù)表中建立結(jié)束表和未結(jié)束表,其中,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù);
[0009]接收增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),其中,所述增量數(shù)據(jù)包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)和/或處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù);
[0010]分別查詢每個(gè)增量數(shù)據(jù)的狀態(tài);其中
[0011]若所述增量數(shù)據(jù)的狀態(tài)為完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄;
[0012]若所述增量數(shù)據(jù)的狀態(tài)為未完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄。
[0013]優(yōu)選的,按照業(yè)務(wù)數(shù)據(jù)的接收時(shí)間劃分增量數(shù)據(jù)表和全量數(shù)據(jù)表的存儲分區(qū)。
[0014]優(yōu)選的,所述的方法還包括:
[0015]增量數(shù)據(jù)表定時(shí)接收業(yè)務(wù)數(shù)據(jù)表發(fā)送的增量數(shù)據(jù);
[0016]獲取所述增量數(shù)據(jù)的接收時(shí)間,并在增量數(shù)據(jù)表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū);
[0017]將所述增量數(shù)據(jù)存儲到增量數(shù)據(jù)表中所述接收時(shí)間對應(yīng)的存儲分區(qū)中。
[0018]優(yōu)選的,在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄,包括:[0019]獲取接收時(shí)間,并在全量數(shù)據(jù)表的未結(jié)束表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū);
[0020]在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加所述增量數(shù)據(jù)的記錄。
[0021]優(yōu)選的,所述在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄,包括:
[0022]獲取接收時(shí)間,并在全量數(shù)據(jù)表的結(jié)束表的末尾建立所述接收時(shí)間對應(yīng)的存儲分區(qū);
[0023]在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加所述增量數(shù)據(jù)唯一的記錄。
[0024]優(yōu)選的,所述的方法還包括:
[0025]業(yè)務(wù)數(shù)據(jù)表中增加業(yè)務(wù)數(shù)據(jù)時(shí),配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為未完成;
[0026]根據(jù)業(yè)務(wù)的執(zhí)行,修改業(yè)務(wù)數(shù)據(jù)表中對應(yīng)的業(yè)務(wù)數(shù)據(jù),直到業(yè)務(wù)執(zhí)行完畢,配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為完成。
[0027]優(yōu)選的,所述的方法還包括:
[0028]業(yè)務(wù)數(shù)據(jù)表定時(shí)抽取增量數(shù)據(jù)發(fā)送給增量數(shù)據(jù)表,其中,所述增量數(shù)據(jù)包括增加的業(yè)務(wù)數(shù)據(jù)和修改的業(yè)務(wù)數(shù)據(jù)。
[0029]相應(yīng)的,本申請還公開了一種數(shù)據(jù)庫的更新系統(tǒng),包括全量數(shù)據(jù)表和增量數(shù)據(jù)表,其中,所述全量數(shù)據(jù)表,包括:
[0030]建立模塊,用于建立結(jié)束表和未結(jié)束表,其中,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù);
[0031 ] 接收模塊,用于接收增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),其中,所述增量數(shù)據(jù)包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)和/或處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù);
[0032]查詢模塊,用于分別查詢每個(gè)增量數(shù)據(jù)的狀態(tài);
[0033]第一添加模塊,用于若所述增量數(shù)據(jù)的狀態(tài)為完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄;
[0034]第二添加模塊,用于若所述增量數(shù)據(jù)的狀態(tài)為未完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄。
[0035]優(yōu)選的,按照業(yè)務(wù)數(shù)據(jù)的接收時(shí)間劃分增量數(shù)據(jù)表和全量數(shù)據(jù)表的存儲分區(qū)。
[0036]優(yōu)選的,所述增量數(shù)據(jù)表,包括:
[0037]接收模塊,用于定時(shí)接收業(yè)務(wù)數(shù)據(jù)表發(fā)送的增量數(shù)據(jù);
[0038]獲取并建立模塊,用于獲取所述增量數(shù)據(jù)的接收時(shí)間,并在增量數(shù)據(jù)表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū);
[0039]保存模塊,用于將所述增量數(shù)據(jù)存儲到增量數(shù)據(jù)表中所述接收時(shí)間對應(yīng)的存儲分區(qū)中。
[0040]與現(xiàn)有技術(shù)相比,本申請包括以下優(yōu)點(diǎn):
[0041]首先,本申請?jiān)谌繑?shù)據(jù)表中建立結(jié)束表和未結(jié)束表,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),因此完成表中保存了全量數(shù)據(jù)表的大部分業(yè)務(wù)數(shù)據(jù),而未完成表中僅保存了全量數(shù)據(jù)表的小部分業(yè)務(wù)數(shù)據(jù)。因此針對增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),可以按照數(shù)據(jù)所處的狀態(tài)分別存儲。在對增量數(shù)據(jù)進(jìn)行存儲時(shí),識別處于完成狀態(tài)的增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),則可以在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述處于完成狀態(tài)的增量數(shù)據(jù)的記錄,此時(shí)不需要進(jìn)行查找,節(jié)省了資源,提高了處理時(shí)間和效率。識別處于未完成狀態(tài)的增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),則在全量數(shù)據(jù)表的未結(jié)束表中添加所述處于未完成狀態(tài)的增量數(shù)據(jù)的記錄,由于未完成表中的業(yè)務(wù)數(shù)據(jù)僅占全量數(shù)據(jù)表中的小部分,因此在添加處于未完成狀態(tài)的增量數(shù)據(jù)時(shí),無論查找與否消耗的資源都是比較少的,處理的時(shí)間也比較快。總體來講,在結(jié)束表和未結(jié)束表中增量數(shù)據(jù)的操作都比較節(jié)省時(shí)間和資源,提高了處理效率。
[0042]其次,本申請按照業(yè)務(wù)數(shù)據(jù)的接收時(shí)間劃分增量數(shù)據(jù)表和全量數(shù)據(jù)表的存儲分區(qū)。因此在接收到增量數(shù)據(jù)后,可以獲取接收時(shí)間,再建立所述接收時(shí)間對應(yīng)的存儲分區(qū),并將所述增量數(shù)據(jù)添加到接收時(shí)間對應(yīng)的存儲分區(qū)中。操作非常的簡單,進(jìn)一步的節(jié)省了資源且減少了處理時(shí)間。
【專利附圖】
【附圖說明】
[0043]圖1是本申請實(shí)施例所述一種數(shù)據(jù)庫的更新方法流程圖;
[0044]圖2是本申請優(yōu)選實(shí)施例所述一種數(shù)據(jù)庫的更新方法中業(yè)務(wù)數(shù)據(jù)表的操作流程圖;
[0045]圖3是本申請優(yōu)選實(shí)施例所述一種數(shù)據(jù)庫的更新方法中增量數(shù)據(jù)表的操作流程圖;
[0046]圖4是本申請實(shí)施例所述一種數(shù)據(jù)庫的更新系統(tǒng)結(jié)構(gòu)圖;
[0047]圖5是本申請優(yōu)選實(shí)施例所述一種數(shù)據(jù)庫的更新系統(tǒng)第一種結(jié)構(gòu)圖;
[0048]圖6是本申請優(yōu)選實(shí)施例所述一種數(shù)據(jù)庫的更新系統(tǒng)第二種結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0049]為使本申請的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對本申請作進(jìn)一步詳細(xì)的說明。
[0050]服務(wù)器中業(yè)務(wù)的執(zhí)行過程中會產(chǎn)生業(yè)務(wù)數(shù)據(jù),保存到業(yè)務(wù)數(shù)據(jù)表中,業(yè)務(wù)數(shù)據(jù)表中的業(yè)務(wù)數(shù)據(jù)最終要保存到全量數(shù)據(jù)表中。
[0051]現(xiàn)有技術(shù)采用insert update方式,即按照業(yè)務(wù)數(shù)據(jù)表的主鍵和更新時(shí)間,把增量數(shù)據(jù)表中增加的業(yè)務(wù)數(shù)據(jù)insert (插入)到全量數(shù)據(jù)表中,將增量數(shù)據(jù)表中修改的業(yè)務(wù)數(shù)據(jù)update (更新)到全量數(shù)據(jù)表中。其中,所述主鍵即主關(guān)鍵字(primary key)是數(shù)據(jù)表中的一個(gè)或多個(gè)字段,它的值用于惟一的標(biāo)識數(shù)據(jù)表中的某一條記錄。
[0052]具體實(shí)施中,針對增量數(shù)據(jù)表中增加的業(yè)務(wù)數(shù)據(jù),需要首先獲取該增加的業(yè)務(wù)數(shù)據(jù)的主鍵,然后需要遍歷全量數(shù)據(jù)表,從全量數(shù)據(jù)表第一個(gè)業(yè)務(wù)數(shù)據(jù)的主鍵開始查找,直到查找到所述增加的業(yè)務(wù)數(shù)據(jù)的主鍵對應(yīng)的位置,將所述增加的業(yè)務(wù)數(shù)據(jù)插入到該位置。
[0053]針對增量數(shù)據(jù)表中修改的業(yè)務(wù)數(shù)據(jù),同樣要獲取所述修改的業(yè)務(wù)數(shù)據(jù)的主鍵,然后遍歷所述全量數(shù)據(jù)表,查找所述主鍵在全量數(shù)據(jù)表中的位置,然后將修改的業(yè)務(wù)數(shù)據(jù)更新到該位置。
[0054]但是,上述的insert update的過程中,遍歷全量數(shù)據(jù)表中的業(yè)務(wù)數(shù)據(jù)會消耗大量的資源。尤其是針對海量數(shù)據(jù)的處理時(shí),全量數(shù)據(jù)表中的業(yè)務(wù)數(shù)據(jù)是數(shù)以億計(jì)的,采用insert update方式會大大的增加資源的消耗,并且,數(shù)據(jù)處理的時(shí)間比較長,效率非常低。
[0055]本申請?zhí)峁┮环N數(shù)據(jù)庫的更新方法,針對增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),可以按照數(shù)據(jù)所處的狀態(tài)分別存儲,并且,在對增量數(shù)據(jù)進(jìn)行存儲時(shí),僅在結(jié)束表和未結(jié)束表中添加相應(yīng)的記錄即可,因此本申請資源消耗較低,數(shù)據(jù)處理的時(shí)間比較短,效率非常高。
[0056]參照圖1,給出了本申請實(shí)施例所述一種數(shù)據(jù)庫的更新方法流程圖。
[0057]步驟11,在全量數(shù)據(jù)表中建立結(jié)束表和未結(jié)束表,其中,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù);
[0058]全量數(shù)據(jù)表用于保存業(yè)務(wù)數(shù)據(jù),其中,所述業(yè)務(wù)數(shù)據(jù)可能是已經(jīng)將業(yè)務(wù)執(zhí)行完畢的數(shù)據(jù),這些數(shù)據(jù)是不會再進(jìn)行修改的;也可能是業(yè)務(wù)正在執(zhí)行中的數(shù)據(jù),這些數(shù)據(jù)是有可能會修改的。
[0059]因此,本申請考慮業(yè)務(wù)執(zhí)行中的特點(diǎn),在全量數(shù)據(jù)表中建立了結(jié)束表和未結(jié)束表,其中,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù)。因此,業(yè)務(wù)數(shù)據(jù)一旦存入到結(jié)束表以后,就不會再進(jìn)行修改了,而業(yè)務(wù)數(shù)據(jù)存入到未結(jié)束表以后,還可能會發(fā)生變化,進(jìn)行修改。
[0060]步驟12,接收增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),其中,所述增量數(shù)據(jù)包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)和/或處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù);
[0061]業(yè)務(wù)每天的執(zhí)行中,可能會增加一些業(yè)務(wù)數(shù)據(jù),也可能會對一些業(yè)務(wù)數(shù)據(jù)進(jìn)行修改,這些增加和修改的業(yè)務(wù)數(shù)據(jù)會構(gòu)成增量數(shù)據(jù)存儲到增量數(shù)據(jù)表中,全量數(shù)據(jù)表會保存所有的業(yè)務(wù)數(shù)據(jù),因此增量數(shù)據(jù)表中的增量數(shù)據(jù)還會保存到全量數(shù)據(jù)表中。
[0062]全量數(shù)據(jù)表可以接收增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),其中所述增量數(shù)據(jù)可能包含多個(gè),可能包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)和處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù),也可能僅包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù),或僅包括處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)。
[0063]本申請中考慮業(yè)務(wù)執(zhí)行中的特點(diǎn),為業(yè)務(wù)數(shù)據(jù)配置了狀態(tài),包括完成狀態(tài)和未完成狀態(tài),其中,若業(yè)務(wù)數(shù)據(jù)處于完成狀態(tài),則所述業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)執(zhí)行完畢了,若業(yè)務(wù)數(shù)據(jù)處于未完成狀態(tài),則所述業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)正在執(zhí)行中。
[0064]步驟13,分別查詢每個(gè)增量數(shù)據(jù)的狀態(tài);
[0065]若所述增量數(shù)據(jù)的狀態(tài)為完成,則執(zhí)行步驟14 ;若所述增量數(shù)據(jù)的狀態(tài)為未完成,則執(zhí)行步驟15。
[0066]現(xiàn)有技術(shù)中不考慮業(yè)務(wù)的執(zhí)行狀態(tài),將增量數(shù)據(jù)包括業(yè)務(wù)執(zhí)行中和業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù)共同保存在全量數(shù)據(jù)表中,依據(jù)業(yè)務(wù)的實(shí)際進(jìn)行,在所述全量數(shù)據(jù)表中的業(yè)務(wù)數(shù)據(jù)時(shí)海量的,并且其中大部分?jǐn)?shù)據(jù)是業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),即不會進(jìn)行修改的業(yè)務(wù)數(shù)據(jù)。其中,增量數(shù)據(jù)中可以包括增加的業(yè)務(wù)數(shù)據(jù)和修改的業(yè)務(wù)數(shù)據(jù)。
[0067]以一條修改的業(yè)務(wù)數(shù)據(jù)為例,依據(jù)所述修改的業(yè)務(wù)數(shù)據(jù)主鍵查找全量數(shù)據(jù)表時(shí),其中大部分的業(yè)務(wù)數(shù)據(jù)是業(yè)務(wù)執(zhí)行完畢的,即會進(jìn)行修改的業(yè)務(wù)數(shù)據(jù),則這些業(yè)務(wù)數(shù)據(jù)也不可能是所述修改的業(yè)務(wù)數(shù)據(jù)要查找的,現(xiàn)有技術(shù)在查找業(yè)務(wù)數(shù)據(jù)時(shí),浪費(fèi)了大量的資源,并且浪費(fèi)了很多時(shí)間。
[0068]本申請將全量數(shù)據(jù)表分為完成表和未完成表,然后依據(jù)增量數(shù)據(jù)的狀態(tài)分表存儲,其中大部分的業(yè)務(wù)數(shù)據(jù)是業(yè)務(wù)執(zhí)行完畢的,小部分是業(yè)務(wù)執(zhí)行中的,因此完成表中保存了全量數(shù)據(jù)表的大部分業(yè)務(wù)數(shù)據(jù),而未完成表中僅保存了全量數(shù)據(jù)表的小部分業(yè)務(wù)數(shù)據(jù)。具體如下:
[0069]步驟14,識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄;
[0070]本申請中若所述增量數(shù)據(jù)的狀態(tài)為完成,則可以識別出所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),即所述業(yè)務(wù)數(shù)據(jù)不會再進(jìn)行修改了。因此可以將所述處于完成狀態(tài)的增量數(shù)據(jù)存入全量數(shù)據(jù)表的結(jié)束表中,具體實(shí)施中,不需要依據(jù)增量數(shù)據(jù)的主鍵從頭查找全量數(shù)據(jù)表,而是可以直接在全量數(shù)據(jù)表的結(jié)束表的最后添加對應(yīng)的記錄,所述記錄中存儲的內(nèi)容為所述處于完成狀態(tài)的增量數(shù)據(jù),此時(shí)不需要進(jìn)行查找,節(jié)省了資源。
[0071]步驟15,識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄。
[0072]若所述增量數(shù)據(jù)的狀態(tài)為未完成,則可以識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),即所述業(yè)務(wù)數(shù)據(jù)可能會再進(jìn)行修改,因此可以將處于未完成狀態(tài)的增量數(shù)據(jù)存入全量數(shù)據(jù)表的未結(jié)束表中,具體實(shí)施中,不需要依據(jù)增量數(shù)據(jù)的主鍵從頭查找全量數(shù)據(jù)表,可以直接在未結(jié)束表的最后添加對應(yīng)的記錄,所述記錄中存儲的內(nèi)容為所述處于未完成狀態(tài)的增量數(shù)據(jù),也可以依據(jù)主鍵查找到所述處于未完成狀態(tài)的增量數(shù)據(jù)的位置,執(zhí)行插入或更新操作。
[0073]本申請中由于未完成表中的業(yè)務(wù)數(shù)據(jù)僅占全量數(shù)據(jù)表中的小部分,因此在添加處于未完成狀態(tài)的增量數(shù)據(jù)時(shí),無論查找與否消耗的資源都是比較少的,處理的時(shí)間也比較快。
[0074]綜上所述,本申請?jiān)谌繑?shù)據(jù)表中建立結(jié)束表和未結(jié)束表,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),因此完成表中保存了全量數(shù)據(jù)表的大部分業(yè)務(wù)數(shù)據(jù),而未完成表中僅保存了全量數(shù)據(jù)表的小部分業(yè)務(wù)數(shù)據(jù)。因此針對增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),可以按照數(shù)據(jù)所處的狀態(tài)分別存儲。在對增量數(shù)據(jù)進(jìn)行存儲時(shí),識別處于完成狀態(tài)的增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),則可以在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述處于完成狀態(tài)的增量數(shù)據(jù)的記錄,此時(shí)不需要進(jìn)行查找,節(jié)省了資源,提高了處理時(shí)間和效率。識別處于未完成狀態(tài)的增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),則在全量數(shù)據(jù)表的未結(jié)束表中添加所述處于未完成狀態(tài)的增量數(shù)據(jù)的記錄,由于未完成表中的業(yè)務(wù)數(shù)據(jù)僅占全量數(shù)據(jù)表中的小部分,因此在添加處于未完成狀態(tài)的增量數(shù)據(jù)時(shí),無論查找與否消耗的資源都是比較少的,處理的時(shí)間也比較快??傮w來講,在結(jié)束表和未結(jié)束表中添加增量數(shù)據(jù)的操作都比較節(jié)省時(shí)間和資源,提高了處理效率。
[0075]參照圖2,給出了本申請優(yōu)選實(shí)施例所述一種數(shù)據(jù)庫的更新方法中業(yè)務(wù)數(shù)據(jù)表的操作流程圖。
[0076]優(yōu)選的,所述的方法還包括:
[0077]步驟21,業(yè)務(wù)數(shù)據(jù)表中增加業(yè)務(wù)數(shù)據(jù)時(shí),配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為未完成;
[0078]業(yè)務(wù)的執(zhí)行過程中會產(chǎn)生業(yè)務(wù)數(shù)據(jù),因此建立了一個(gè)業(yè)務(wù)數(shù)據(jù)表來存儲業(yè)務(wù)數(shù)據(jù)。并且,考慮到后續(xù)的數(shù)據(jù)處理過程,業(yè)務(wù)數(shù)據(jù)表中的數(shù)據(jù)最終要存儲到全量數(shù)據(jù)表中??紤]業(yè)務(wù)執(zhí)行的特點(diǎn),在業(yè)務(wù)數(shù)據(jù)表中增加一條業(yè)務(wù)數(shù)據(jù)時(shí),可以配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為未完成。
[0079]例如,在電子商務(wù)平臺中,一條購物數(shù)據(jù)可能包括的過程為創(chuàng)建訂單、付款、確認(rèn)收貨。則在創(chuàng)建訂單后會生成對應(yīng)的業(yè)務(wù)數(shù)據(jù),采用主鍵唯一標(biāo)識,此時(shí)會在業(yè)務(wù)數(shù)據(jù)表中添加對應(yīng)的業(yè)務(wù)數(shù)據(jù),此時(shí)配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為未完成。[0080]步驟22,根據(jù)業(yè)務(wù)的執(zhí)行,修改業(yè)務(wù)數(shù)據(jù)表中對應(yīng)的業(yè)務(wù)數(shù)據(jù),直到業(yè)務(wù)執(zhí)行完畢,配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為完成。
[0081]業(yè)務(wù)的執(zhí)行過程中,會進(jìn)行業(yè)務(wù)的各個(gè)流程,因此相應(yīng)的就會修改業(yè)務(wù)數(shù)據(jù)表中對應(yīng)的業(yè)務(wù)數(shù)據(jù),一直到業(yè)務(wù)執(zhí)行完畢后,配置業(yè)務(wù)數(shù)據(jù)表中對應(yīng)的業(yè)務(wù)數(shù)據(jù)的狀態(tài)為完成。
[0082]如上例中,業(yè)務(wù)過程由創(chuàng)建訂單執(zhí)行到付款,此時(shí)業(yè)務(wù)數(shù)據(jù)會進(jìn)行修改,通過業(yè)務(wù)主鍵可以查找到業(yè)務(wù)數(shù)據(jù)表中的業(yè)務(wù)數(shù)據(jù),然后對所述業(yè)務(wù)數(shù)據(jù)進(jìn)行修改,此時(shí)所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)仍然是未完成。直到業(yè)務(wù)過程進(jìn)行到確認(rèn)收貨,此時(shí)業(yè)務(wù)已經(jīng)執(zhí)行完畢,通過業(yè)務(wù)主鍵可以查找到業(yè)務(wù)數(shù)據(jù)表中的業(yè)務(wù)數(shù)據(jù),然后對所述業(yè)務(wù)數(shù)據(jù)進(jìn)行修改,然后配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為完成。
[0083]步驟23,業(yè)務(wù)數(shù)據(jù)表定時(shí)抽取增量數(shù)據(jù)發(fā)送給增量數(shù)據(jù)表,其中,所述增量數(shù)據(jù)包括增加的業(yè)務(wù)數(shù)據(jù)和修改的業(yè)務(wù)數(shù)據(jù)。
[0084]每天會增加新的業(yè)務(wù)數(shù)據(jù),并且會根據(jù)業(yè)務(wù)的執(zhí)行過程對業(yè)務(wù)數(shù)據(jù)修改,由于業(yè)務(wù)數(shù)據(jù)表中的業(yè)務(wù)數(shù)據(jù)最終要保存到全量數(shù)據(jù)表中,為了減少不必要的操作,節(jié)省資源,因此僅需要將發(fā)生變化的業(yè)務(wù)數(shù)據(jù),即增加的業(yè)務(wù)數(shù)據(jù)和修改的業(yè)務(wù)數(shù)據(jù)保存到全量數(shù)據(jù)表中即可。因此,將增加的業(yè)務(wù)數(shù)據(jù)和修改的業(yè)務(wù)數(shù)據(jù)作為增量數(shù)據(jù)。
[0085]業(yè)務(wù)數(shù)據(jù)表定時(shí)抽取增量數(shù)據(jù),然后將所述增量數(shù)據(jù)發(fā)送給增量數(shù)據(jù)表,例如,每天0時(shí)抽取一次增量數(shù)據(jù)。
[0086]優(yōu)選的,按照業(yè)務(wù)數(shù)據(jù)的接收時(shí)間劃分增量數(shù)據(jù)表和全量數(shù)據(jù)表的存儲分區(qū)。
[0087]本申請中針對增量數(shù)據(jù)表和全量數(shù)據(jù)表,可以按照業(yè)務(wù)數(shù)據(jù)的接收時(shí)間來劃分存儲分區(qū)。例如,增量數(shù)據(jù)表和全量數(shù)據(jù)表每天執(zhí)行一次更新,則可以在增量數(shù)據(jù)表和全量數(shù)據(jù)表中按天來建立存儲分區(qū)。
[0088]參照圖3,給出了本申請優(yōu)選實(shí)施例所述一種數(shù)據(jù)庫的更新方法中增量數(shù)據(jù)表的操作流程圖。
[0089]優(yōu)選的,增量數(shù)據(jù)表的操作過程包括:
[0090]步驟31,增量數(shù)據(jù)表定時(shí)接收業(yè)務(wù)數(shù)據(jù)表發(fā)送的增量數(shù)據(jù);
[0091]增量數(shù)據(jù)表定時(shí)接收到業(yè)務(wù)數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),例如,每天接收一次增量數(shù)據(jù)。所述增量數(shù)據(jù)包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)和/或處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)。
[0092]步驟32,獲取所述增量數(shù)據(jù)的接收時(shí)間,并在增量數(shù)據(jù)表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū);
[0093]接收業(yè)務(wù)數(shù)據(jù)表發(fā)送的增量數(shù)據(jù)后,可以獲取所述增量數(shù)據(jù)的接收時(shí)間,例如,若按天劃分存儲分區(qū),在2011-6-100:00獲取到業(yè)務(wù)數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),則確定接收時(shí)間為2011-6-1,并所述增量數(shù)據(jù)表中建立2011-6-1對應(yīng)的存儲分區(qū),如將接收時(shí)間作為存儲分區(qū)的標(biāo)識。
[0094]當(dāng)然針對接收時(shí)間還可以精確到小時(shí)或分鐘,可以視具體的業(yè)務(wù)需求而定,本申請對此不做限定。
[0095]步驟33,將所述增量數(shù)據(jù)存儲到增量數(shù)據(jù)表中所述接收時(shí)間對應(yīng)的存儲分區(qū)中。
[0096]上述在增量數(shù)據(jù)表中建立了接收時(shí)間對應(yīng)的存儲分區(qū)后,可以將所述增量數(shù)據(jù)存儲到所述接收時(shí)間對應(yīng)的存儲分區(qū)中。[0097]例如,所述增量數(shù)據(jù)中x-001為增加的業(yè)務(wù)數(shù)據(jù),狀態(tài)為未完成,x-002為修改的業(yè)務(wù)數(shù)據(jù),狀態(tài)為未完成,x-003為修改的業(yè)務(wù)數(shù)據(jù),狀態(tài)為完成。
[0098]如上例建立了 2011-6-1對應(yīng)的存儲分區(qū),則將增量數(shù)據(jù)x-001、x-002和x_003都存入到所述2011-6-1對應(yīng)的存儲分區(qū)中。
[0099]步驟34,發(fā)送所述增量數(shù)據(jù)給全量數(shù)據(jù)表。
[0100]優(yōu)選的,所述在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄,包括:
[0101]獲取接收時(shí)間,并在全量數(shù)據(jù)表的未結(jié)束表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū);在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加所述增量數(shù)據(jù)的記錄。
[0102]全量數(shù)據(jù)表接收到增量數(shù)據(jù)后,會查詢每個(gè)增量數(shù)據(jù)的狀態(tài),若所述增量數(shù)據(jù)的狀態(tài)為未完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù)。
[0103]則獲取所述業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù)的接收時(shí)間,在并在全量數(shù)據(jù)表的未結(jié)束表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū)。其中,按照接收時(shí)間在未結(jié)束表中建立存儲分區(qū)時(shí),則每次接收時(shí)的接收時(shí)間都是最近的,因此可以在未結(jié)束表中所有存儲分區(qū)的末尾添加一個(gè)所述接收時(shí)間的存儲分區(qū)。然后在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加對應(yīng)所述增量數(shù)據(jù)的記錄,可以在所述存儲分區(qū)中僅添加在所述接收時(shí)間獲取的未完成狀態(tài)的增量數(shù)據(jù),當(dāng)然也可以將全量數(shù)據(jù)表中其他未完成狀態(tài)的增量數(shù)據(jù)也添加到所述存儲分區(qū)中,本申請對此不做限定。
[0104]如上例中,x-001為增加的業(yè)務(wù)數(shù)據(jù),狀態(tài)為未完成,則識別x-001為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù)。按天劃分存儲分區(qū),則在全量數(shù)據(jù)表的未完成表中建立接收時(shí)間2011-6-1對應(yīng)的存儲分區(qū),在所述存儲分區(qū)中添加對應(yīng)的記錄,所述記錄的內(nèi)容為增加的業(yè)務(wù)數(shù)據(jù)x-001。
[0105]x-002為修改的業(yè)務(wù)數(shù)據(jù),狀態(tài)為未完成,同樣識別為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù)。因此在全量數(shù)據(jù)表的未完成表中,所述接收時(shí)間2011-6-1對應(yīng)的存儲分區(qū)中添加對應(yīng)的記錄,所述記錄的內(nèi)容為修改的業(yè)務(wù)數(shù)據(jù)x-002。
[0106]實(shí)際處理中,一條業(yè)務(wù)數(shù)據(jù)可以采用主鍵唯一標(biāo)識,對全量數(shù)據(jù)表的未完成表中是按照接收時(shí)間來劃分存儲分區(qū)的,因此在不同的存儲分區(qū)中存儲的業(yè)務(wù)數(shù)據(jù)的主鍵可能相同。如上例中的購物數(shù)據(jù)005,在全量數(shù)據(jù)表的未完成表中,創(chuàng)建訂單產(chǎn)生的業(yè)務(wù)數(shù)據(jù)x-005可能存儲2011-5-1對應(yīng)的存儲分區(qū)中,付款對應(yīng)修改的業(yè)務(wù)數(shù)據(jù)x-005可能存儲
2011-5-10對應(yīng)的存儲分區(qū)中。
[0107]優(yōu)選的,所述在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄,包括:
[0108]獲取接收時(shí)間,并在全量數(shù)據(jù)表的結(jié)束表的末尾建立所述接收時(shí)間對應(yīng)的存儲分區(qū);在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加所述增量數(shù)據(jù)唯一的記錄。
[0109]全量數(shù)據(jù)表接收到增量數(shù)據(jù)后,會查詢每個(gè)增量數(shù)據(jù)的狀態(tài),若所述增量數(shù)據(jù)的狀態(tài)為完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù)。
[0110]則獲取所述業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù)的接收時(shí)間,在并在全量數(shù)據(jù)表的結(jié)束表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū)。其中,每次接收時(shí)的接收時(shí)間都是最近的,因此可以在結(jié)束表中所有存儲分區(qū)的末尾添加一個(gè)所述接收時(shí)間的存儲分區(qū)。然后在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加對應(yīng)所述增量數(shù)據(jù)的記錄。
[0111]如上例中,X-003為修改的業(yè)務(wù)數(shù)據(jù),狀態(tài)為完成,則識別X-003為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù)。按天劃分存儲分區(qū),則在全量數(shù)據(jù)表的完成表中建立接收時(shí)間2011-6-1對應(yīng)的存儲分區(qū),在所述存儲分區(qū)中添加對應(yīng)的記錄,所述記錄的內(nèi)容為修改的業(yè)務(wù)數(shù)據(jù)x_003o
[0112]實(shí)際處理中,業(yè)務(wù)數(shù)據(jù)只有在處于完成狀態(tài),即業(yè)務(wù)執(zhí)行完畢后才會添加到全量數(shù)據(jù)表的完成表中,因此在全量數(shù)據(jù)表的完成表中,一條業(yè)務(wù)數(shù)據(jù)只能存儲在一個(gè)存儲分區(qū)中。
[0113]實(shí)際處理中,為了進(jìn)一步的節(jié)省時(shí)間,業(yè)務(wù)數(shù)據(jù)可以一批一起進(jìn)行處理。因此,可以使未完成表中每一個(gè)存儲分區(qū)中都保存有,截止到對應(yīng)接收時(shí)間為止所有未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)。例如,按天存儲,若本次接收時(shí)間為2012-1-13,則上一個(gè)接收時(shí)間為
2012-1-12,則未完成表中2012-1-12對應(yīng)存儲分區(qū)中保存有,截止到2012-1-12所有未完成的業(yè)務(wù)數(shù)據(jù)。
[0114]針對本次接收的增量數(shù)據(jù),可以獲取未完成表中上一個(gè)接收時(shí)間的存儲分區(qū)中的業(yè)務(wù)數(shù)據(jù),通過主鍵將所述增量數(shù)據(jù)和所述存儲分區(qū)中的業(yè)務(wù)數(shù)據(jù)進(jìn)行全外連接,即將兩份數(shù)據(jù)通過主鍵連接在一起。然后采用修改的業(yè)務(wù)數(shù)據(jù)更新所述存儲分區(qū)中主鍵一致的業(yè)務(wù)數(shù)據(jù),將增加的業(yè)務(wù)數(shù)據(jù)按照主鍵排列并存放到對應(yīng)位置。
[0115]本次接收的增量數(shù)據(jù)(本次增加的業(yè)務(wù)數(shù)據(jù)和修改的業(yè)務(wù)數(shù)據(jù))可以包括完成狀態(tài)和未完成狀態(tài),則通過上述操作最終可以得到:1、本次接收的完成狀態(tài)的業(yè)務(wù)數(shù)據(jù);2、截止到本次接收所有未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)(包括:本次修改的業(yè)務(wù)數(shù)據(jù)、本次增加的業(yè)務(wù)數(shù)據(jù)和之間的未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù))。
[0116]然后可以過濾出完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)添加到完成表中本次接收時(shí)間的存儲分區(qū)內(nèi),過濾出未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)添加到未完成表中本次接收時(shí)間的存儲分區(qū)內(nèi)。
[0117]則完成表中本次接收時(shí)間的存儲分區(qū)內(nèi)包括:本次接收的完成狀態(tài)的業(yè)務(wù)數(shù)據(jù);未完成表中本次接收時(shí)間的存儲分區(qū)內(nèi)包括:截止到本次接收時(shí)間所有未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)。
[0118]綜上所述,本申請按照業(yè)務(wù)數(shù)據(jù)的接收時(shí)間劃分增量數(shù)據(jù)表和全量數(shù)據(jù)表的存儲分區(qū)。因此在接收到增量數(shù)據(jù)后,可以獲取接收時(shí)間,再建立所述接收時(shí)間對應(yīng)的存儲分區(qū),并將所述增量數(shù)據(jù)添加到接收時(shí)間對應(yīng)的存儲分區(qū)中。操作非常的簡單,進(jìn)一步的節(jié)省了資源且減少了處理時(shí)間。
[0119]參照圖4,給出了本申請實(shí)施例所述一種數(shù)據(jù)庫的更新系統(tǒng)結(jié)構(gòu)圖。
[0120]相應(yīng)的,本申請還提供了一種數(shù)據(jù)庫的更新系統(tǒng),包括全量數(shù)據(jù)表12和增量數(shù)據(jù)表11,其中:
[0121]所述全量數(shù)據(jù)表12,包括:
[0122]建立模塊121,用于建立結(jié)束表和未結(jié)束表,其中,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù);
[0123]接收模塊122,用于接收增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),其中,所述增量數(shù)據(jù)包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)和/或處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù);
[0124]查詢模塊123,用于分別查詢每個(gè)增量數(shù)據(jù)的狀態(tài);
[0125]第一添加模塊124,用于若所述增量數(shù)據(jù)的狀態(tài)為完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄;[0126]第二添加模塊125,用于若所述增量數(shù)據(jù)的狀態(tài)為未完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄。
[0127]參照圖5,給出了本申請優(yōu)選實(shí)施例所述一種數(shù)據(jù)庫的更新系統(tǒng)第一種結(jié)構(gòu)圖。
[0128]優(yōu)選的,按照業(yè)務(wù)數(shù)據(jù)的接收時(shí)間劃分增量數(shù)據(jù)表和全量數(shù)據(jù)表的存儲分區(qū)。
[0129]優(yōu)選的,所述增量數(shù)據(jù)表11,包括:
[0130]接收模塊111,用于定時(shí)接收業(yè)務(wù)數(shù)據(jù)表發(fā)送的增量數(shù)據(jù);
[0131]獲取并建立模塊112,用于獲取所述增量數(shù)據(jù)的接收時(shí)間,并在增量數(shù)據(jù)表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū);
[0132]保存模塊113,用于將所述增量數(shù)據(jù)存儲到增量數(shù)據(jù)表中所述接收時(shí)間對應(yīng)的存儲分區(qū)中。
[0133]優(yōu)選的,第二添加模塊125,包括:
[0134]獲取并建立子模塊1251,用于獲取接收時(shí)間,并在全量數(shù)據(jù)表的未結(jié)束表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū);
[0135]添加子模塊1252,用于在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加所述增量數(shù)據(jù)的記錄。
[0136]優(yōu)選的,所述第一添加模塊124,包括:
[0137]獲取并建立子模塊1241,用于獲取接收時(shí)間,并在全量數(shù)據(jù)表的結(jié)束表的末尾建立所述接收時(shí)間對應(yīng)的存儲分區(qū);
[0138]添加子模塊1242,用于在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加所述增量數(shù)據(jù)唯一的記錄。
[0139]參照圖6,給出了本申請優(yōu)選實(shí)施例所述一種數(shù)據(jù)庫的更新系統(tǒng)第二種結(jié)構(gòu)圖。
[0140]優(yōu)選的,所述的系統(tǒng)還包括業(yè)務(wù)數(shù)據(jù)表10 ;
[0141]所述業(yè)務(wù)數(shù)據(jù)表10,包括:
[0142]增加數(shù)據(jù)模塊101,用于業(yè)務(wù)數(shù)據(jù)表中增加業(yè)務(wù)數(shù)據(jù)時(shí),配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為未完成;
[0143]修改數(shù)據(jù)模塊102,用于根據(jù)業(yè)務(wù)的執(zhí)行,修改業(yè)務(wù)數(shù)據(jù)表中對應(yīng)的業(yè)務(wù)數(shù)據(jù),直到業(yè)務(wù)執(zhí)行完畢,配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為完成;
[0144]發(fā)送模塊103,用于業(yè)務(wù)數(shù)據(jù)表定時(shí)抽取增量數(shù)據(jù)發(fā)送給增量數(shù)據(jù)表,其中,所述增量數(shù)據(jù)包括增加的業(yè)務(wù)數(shù)據(jù)和修改的業(yè)務(wù)數(shù)據(jù)。
[0145]對于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
[0146]本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
[0147]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0148]盡管已描述了本申請的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請范圍的所有變更和修改。
[0149]本申請是參照根據(jù)本申請實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0150]這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0151]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0152]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
[0153]以上對本申請所提供的一種數(shù)據(jù)庫的更新方法及系統(tǒng),進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本申請的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請的方法及其核心 思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。
【權(quán)利要求】
1.一種數(shù)據(jù)庫的更新方法,其特征在于,包括: 在全量數(shù)據(jù)表中建立結(jié)束表和未結(jié)束表,其中,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù); 接收增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),其中,所述增量數(shù)據(jù)包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)和/或處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù); 分別查詢每個(gè)增量數(shù)據(jù)的狀態(tài);其中 若所述增量數(shù)據(jù)的狀態(tài)為完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄; 若所述增量數(shù)據(jù)的狀態(tài)為未完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,按照業(yè)務(wù)數(shù)據(jù)的接收時(shí)間劃分增量數(shù)據(jù)表和全量數(shù)據(jù)表的存儲分區(qū)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 增量數(shù)據(jù)表定時(shí)接收業(yè)務(wù)數(shù)據(jù)表發(fā)送的增量數(shù)據(jù); 獲取所述增量數(shù)據(jù)的接收時(shí)間,并在增量數(shù)據(jù)表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū); 將所述增量數(shù)據(jù)存儲到增量數(shù)據(jù)表中所述接收時(shí)間對應(yīng)的存儲分區(qū)中。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄,包括: 獲取接收時(shí)間,并在全量數(shù)據(jù)表的未結(jié)束表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū); 在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加所述增量數(shù)據(jù)的記錄。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄,包括: 獲取接收時(shí)間,并在全量數(shù)據(jù)表的結(jié)束表的末尾建立所述接收時(shí)間對應(yīng)的存儲分區(qū); 在所述接收時(shí)間對應(yīng)的存儲分區(qū)中添加所述增量數(shù)據(jù)唯一的記錄。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 業(yè)務(wù)數(shù)據(jù)表中增加業(yè)務(wù)數(shù)據(jù)時(shí),配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為未完成; 根據(jù)業(yè)務(wù)的執(zhí)行,修改業(yè)務(wù)數(shù)據(jù)表中對應(yīng)的業(yè)務(wù)數(shù)據(jù),直到業(yè)務(wù)執(zhí)行完畢,配置所述業(yè)務(wù)數(shù)據(jù)的狀態(tài)為完成。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括: 業(yè)務(wù)數(shù)據(jù)表定時(shí)抽取增量數(shù)據(jù)發(fā)送給增量數(shù)據(jù)表,其中,所述增量數(shù)據(jù)包括增加的業(yè)務(wù)數(shù)據(jù)和修改的業(yè)務(wù)數(shù)據(jù)。
8.一種數(shù)據(jù)庫的更新系統(tǒng),其特征在于,包括全量數(shù)據(jù)表和增量數(shù)據(jù)表,其中,所述全量數(shù)據(jù)表,包括: 建立模塊,用于建立結(jié)束表和未結(jié)束表,其中,結(jié)束表中存儲業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),未結(jié)束表中存儲業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù); 接收模塊,用于接收增量數(shù)據(jù)表發(fā)送的增量數(shù)據(jù),其中,所述增量數(shù)據(jù)包括處于完成狀態(tài)的業(yè)務(wù)數(shù)據(jù)和/或處于未完成狀態(tài)的業(yè)務(wù)數(shù)據(jù); 查詢模塊,用于分別 查詢每個(gè)增量數(shù)據(jù)的狀態(tài);第一添加模塊,用于若所述增量數(shù)據(jù)的狀態(tài)為完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行完畢的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的結(jié)束表的末尾添加所述增量數(shù)據(jù)的記錄; 第二添加模塊,用于若所述增量數(shù)據(jù)的狀態(tài)為未完成,則識別所述增量數(shù)據(jù)為業(yè)務(wù)執(zhí)行中的業(yè)務(wù)數(shù)據(jù),在全量數(shù)據(jù)表的未結(jié)束表中添加所述增量數(shù)據(jù)的記錄。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,按照業(yè)務(wù)數(shù)據(jù)的接收時(shí)間劃分增量數(shù)據(jù)表和全量數(shù)據(jù)表的存儲分區(qū)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述增量數(shù)據(jù)表,包括: 接收模塊,用于定時(shí)接收業(yè)務(wù)數(shù)據(jù)表發(fā)送的增量數(shù)據(jù); 獲取并建立模塊,用于獲取所述增量數(shù)據(jù)的接收時(shí)間,并在增量數(shù)據(jù)表中建立所述接收時(shí)間對應(yīng)的存儲分區(qū); 保存模塊,用于將所述增量數(shù)據(jù)存儲到增量數(shù)據(jù)表中所述接收時(shí)間對應(yīng)的存儲分區(qū)中。
【文檔編號】G06F17/30GK103577474SQ201210276188
【公開日】2014年2月12日 申請日期:2012年8月3日 優(yōu)先權(quán)日:2012年8月3日
【發(fā)明者】吳天虹 申請人:阿里巴巴集團(tuán)控股有限公司