一種數(shù)據(jù)并行處理方法
【技術領域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理領域,尤其是涉及一種數(shù)據(jù)并行處理方法。
【背景技術】
[0002] 數(shù)據(jù)使用要求在數(shù)據(jù)使用期間保持數(shù)據(jù)正在開始時間點上是一致的,在數(shù)據(jù)開始 使用后,數(shù)據(jù)就不能被增刪改,同時為提高數(shù)據(jù)加載的效率往往對時間表采用表鎖。因此數(shù) 據(jù)處理過程與數(shù)據(jù)使用間存在沖突,使得在數(shù)據(jù)使用期間無法做數(shù)據(jù)加載,數(shù)據(jù)加載期間 無法使用數(shù)據(jù)。系統(tǒng)的利用率不高,難以適應高強度,長時間的分析使用。而采用通常的兩 份鏡像數(shù)據(jù)方法對大數(shù)據(jù)量存儲(使用的數(shù)據(jù)環(huán)境達到IOT以上容量)和同步帶來了困難 (常用的數(shù)據(jù)庫級日志同步技術難以采用)。
【發(fā)明內容】
[0003] 本發(fā)明的目的就是為了克服上述現(xiàn)有技術存在的缺陷而提供一種數(shù)據(jù)并行處理 方法。
[0004] 本發(fā)明的目的可以通過以下技術方案來實現(xiàn):
[0005] -種數(shù)據(jù)并行處理方法,該方法包括相互獨立的數(shù)據(jù)處理階段、數(shù)據(jù)使用階段和 數(shù)據(jù)合并階段,所述數(shù)據(jù)處理階段與數(shù)據(jù)使用階段并行,所述數(shù)據(jù)使用階段與數(shù)據(jù)合并階 段互斥,其中,所述數(shù)據(jù)合并階段是對數(shù)據(jù)歷史區(qū)進行替換和添加操作,所述數(shù)據(jù)歷史區(qū)分 為當前分區(qū)和歷史分區(qū),所述當前分區(qū)存儲無結束時間的數(shù)據(jù),所述歷史分區(qū)存儲有結束 時間的數(shù)據(jù)。
[0006] 所述數(shù)據(jù)使用階段與數(shù)據(jù)合并階段互斥的機制包括數(shù)據(jù)使用優(yōu)先機制和數(shù)據(jù)合 并優(yōu)先機制。
[0007] 所述數(shù)據(jù)使用優(yōu)先機制具體為:
[0008] 當存在數(shù)據(jù)使用任務命令時,數(shù)據(jù)合并無限期等待。
[0009] 所述數(shù)據(jù)合并優(yōu)先機制具體為:
[0010] 當數(shù)據(jù)使用任務的當前步驟運行完后,判斷下一步驟需使用的數(shù)據(jù)表是否存在數(shù) 據(jù)合并命令,若是,則等待數(shù)據(jù)合并完成后執(zhí)行下一步驟,若否,則直接執(zhí)行下一步驟。
[0011] 所述數(shù)據(jù)處理階段和數(shù)據(jù)合并階段的運行模式包括:
[0012] a) -天處理,一天合并;或
[0013] b)多天處理,一次合并。
[0014] 與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點:
[0015] 1)數(shù)據(jù)處理階段與數(shù)據(jù)使用階段通過數(shù)據(jù)合并階段實現(xiàn)完全獨立且并行;
[0016] 2)合并階段與數(shù)據(jù)處理互斥,可以通過選擇處理的優(yōu)先級提高數(shù)據(jù)處理效率;
[0017] 3)由于數(shù)據(jù)歷史特點只對當前數(shù)據(jù)作update,歷史數(shù)據(jù)是不變化的,因此將整個 數(shù)據(jù)歷史區(qū)分為當前數(shù)據(jù)和歷史數(shù)據(jù),作為兩個分區(qū)存儲,方便對當前數(shù)據(jù)作整體替換和 歷史數(shù)據(jù)作添加;
[0018] 4)數(shù)據(jù)采用替換和添加相結合的方法平衡了性能和存儲容量,在增加少量存儲基 礎上大幅度縮短了合并時間。
【具體實施方式】
[0019] 下面結合具體實施例對本發(fā)明進行詳細說明。本實施例以本發(fā)明技術方案為前提 進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的 實施例。
[0020] 本實施例提供一種數(shù)據(jù)并行處理方法,該方法包括相互獨立的數(shù)據(jù)處理階段、數(shù) 據(jù)使用階段和數(shù)據(jù)合并階段,所述數(shù)據(jù)處理階段與數(shù)據(jù)使用階段并行,所述數(shù)據(jù)使用階段 與數(shù)據(jù)合并階段互斥。數(shù)據(jù)處理、數(shù)據(jù)合并、數(shù)據(jù)使用三者是各自獨立運行,通過狀態(tài)控制 達到數(shù)據(jù)一致性。
[0021] 所述數(shù)據(jù)合并階段是對數(shù)據(jù)歷史區(qū)進行替換和添加操作,所述數(shù)據(jù)歷史區(qū)分為 當前分區(qū)和歷史分區(qū),所述當前分區(qū)存儲無結束時間的數(shù)據(jù),所述歷史分區(qū)存儲有結束時 間的數(shù)據(jù)。一般當前數(shù)據(jù)量要遠大于當天的歷史數(shù)據(jù)量(按10%的變化量測算可達到10 倍)。因此當前數(shù)據(jù)采用替換的方法,先導入影子表,在合并階段與正式表切換,達到快速合 并效果。雖然一天的歷史數(shù)據(jù)要遠小于當前數(shù)據(jù),但是三年的歷史數(shù)據(jù)積累又遠大于當天 的歷史數(shù)據(jù),不能采用影子表替換的方法,而采用實時添加的方法,完成歷史數(shù)據(jù)合并。
[0022] 數(shù)據(jù)處理階段和數(shù)據(jù)合并階段是相互獨立的兩個過程支持:
[0023] a) -天處理,一天合并;或
[0024] b)多天處理,一次合并。
[0025] 在對數(shù)據(jù)實時性要求不高時,建議每周合并一次可以簡化合并與數(shù)據(jù)使用間沖突 處理。
[0026] 上述數(shù)據(jù)并行處理方法的具體流程如下:
[0027] 1、利用數(shù)據(jù)歷史的特點,只針對變化的數(shù)據(jù)(狀態(tài)類數(shù)據(jù))建立整體的影子表。
[0028] 2、將當天的全量數(shù)據(jù)(全量更新表和時間拉鏈表的當前分區(qū))和前一天的歷史增 量數(shù)據(jù)(增量表和時間拉鏈表的歷史分區(qū))文件處理完成后導入數(shù)據(jù)庫作為影子數(shù)據(jù)。
[0029] 3、針對不同類型的表設定不同的影子表:
[0030] ?全量更新表:表結構和數(shù)據(jù)完全一致
[0031] ?增量表:表結構完全和增量數(shù)據(jù)一致
[0032] 魯數(shù)據(jù)歷史表:明確區(qū)分的當前數(shù)據(jù)和歷史數(shù)據(jù)。將數(shù)據(jù)存儲上定義結束時間為 無的為當前數(shù)據(jù),有結束時間的為歷史數(shù)據(jù)??梢砸暈槿扛卤砗驮隽勘淼慕M合。
[0033] 4、在數(shù)據(jù)使用的間隙,將當天數(shù)據(jù)與數(shù)據(jù)庫中當前數(shù)據(jù)作整體切換(全量更新表 和時間拉鏈表的當前分區(qū)),將當天的歷史數(shù)據(jù)以增量方式合并到歷史數(shù)據(jù)(增量表和時 間拉鏈表的歷史分區(qū))。
[0034] 5、循環(huán)第2步開始新一天的數(shù)據(jù)處理。
[0035] 6、在長時間使用數(shù)據(jù)的情形下,可以重復第2累計多天的數(shù)據(jù)處理,在其后的適 當時機在第3步一次性完成數(shù)據(jù)合并。
[0036] 上述過程中,處理階段與數(shù)據(jù)使用完全并行,合并階段與數(shù)據(jù)使用有沖突。
[0037] 所述數(shù)據(jù)使用階段與數(shù)據(jù)合并階段互斥的機制包括數(shù)據(jù)使用優(yōu)先機制和數(shù)據(jù)合 并優(yōu)先機制。
[0038] 處理階段是指對原始的數(shù)據(jù)源進行加工成與實際的數(shù)據(jù)一致,給后續(xù)的合并階段 (整體切換)提供基礎,例如:為全量更新表構建當天的影子表,在合并階段做一次表名切 換,以提高切換效率。
[0039] 數(shù)據(jù)使用(模型)是指對正式表的一連串查詢,涉及的表數(shù)量,步驟,查詢時間在 原則上沒有限制。在合并階段需要處理正式表,此時正式表是不能被使用的,因此需要在合 并處理和模型使用之間建立互斥機制。在一方使用時,另一方等待,已經(jīng)在運行的不能自動 取消。
[0040] 數(shù)據(jù)使用優(yōu)先機制(模型優(yōu)先)具體為:當存在數(shù)據(jù)使用時,數(shù)據(jù)合并無限期等 待。
[0041] 數(shù)據(jù)合并優(yōu)先機制(合并優(yōu)先)具體為:當數(shù)據(jù)使用的當前步驟運行完后,判斷下 一步驟需使用的數(shù)據(jù)表是否存在數(shù)據(jù)合并命令,若是,則等待數(shù)據(jù)合并完成后執(zhí)行下一步 驟,若否,則執(zhí)行下一步驟。
[0042] 合并處理與模型使用互斥案例:
[0043] 有兩個任務同時運行,每個任務下以串行的方式運行兩個模型(這里的模型是指 在審計系統(tǒng)中對數(shù)據(jù)使用的一致方式),相同的模型使用相同的數(shù)據(jù)表。每個模型的實際使 用時間不同,如表1所示。
[0044] 數(shù)據(jù)處理時間限定在18h-22h,數(shù)據(jù)合并時間限定在23時開始,每天只檢測一次 (可以根據(jù)實際情況調整以上時間點和頻次,設定以上時間僅為舉例說明)。
[0045] 表 1
[0047] 1)模型優(yōu)先模式如表2所示。
[0048] 表 2
[0049]
[0051 ] 2)合并優(yōu)先模式如表3所示。
[0052] 表 3
[0053]
[0055] 采用上述數(shù)據(jù)處理方法進行數(shù)據(jù)合并的具體實例如下。
[0056] 當前系統(tǒng)已更新到20150101,以下示例處理20150102數(shù)據(jù)的處理流程和合并流 程。其中,灰色表頭是數(shù)據(jù)文件,保存在數(shù)據(jù)處理服務器中,黑色表頭是數(shù)據(jù)庫表,保存在數(shù) 據(jù)庫服務器中。
[0057] 1、表狀態(tài)
[0058] 當前數(shù)據(jù)表
[0070] 合并后歷史數(shù)據(jù)表(添加)
[0071]
【主權項】
1. 一種數(shù)據(jù)并行處理方法,其特征在于,該方法包括相互獨立的數(shù)據(jù)處理階段、數(shù)據(jù)使 用階段和數(shù)據(jù)合并階段,所述數(shù)據(jù)處理階段與數(shù)據(jù)使用階段并行,所述數(shù)據(jù)使用階段與數(shù) 據(jù)合并階段互斥,其中,所述數(shù)據(jù)合并階段是對數(shù)據(jù)歷史區(qū)進行替換和添加操作,所述數(shù)據(jù) 歷史區(qū)分為當前分區(qū)和歷史分區(qū),所述當前分區(qū)存儲無結束時間的數(shù)據(jù),所述歷史分區(qū)存 儲有結束時間的數(shù)據(jù)。2. 根據(jù)權利要求1所述的數(shù)據(jù)并行處理方法,其特征在于,所述數(shù)據(jù)使用階段與數(shù)據(jù) 合并階段互斥的機制包括數(shù)據(jù)使用優(yōu)先機制和數(shù)據(jù)合并優(yōu)先機制。3. 根據(jù)權利要求2所述的數(shù)據(jù)并行處理方法,其特征在于,所述數(shù)據(jù)使用優(yōu)先機制具 體為: 當存在數(shù)據(jù)使用任務命令時,數(shù)據(jù)合并無限期等待。4. 根據(jù)權利要求2所述的數(shù)據(jù)并行處理方法,其特征在于,所述數(shù)據(jù)合并優(yōu)先機制具 體為: 當數(shù)據(jù)使用任務的當前步驟運行完后,判斷下一步驟需使用的數(shù)據(jù)表是否存在數(shù)據(jù)合 并命令,若是,則等待數(shù)據(jù)合并完成后執(zhí)行下一步驟,若否,則直接執(zhí)行下一步驟。5. 根據(jù)權利要求1所述的數(shù)據(jù)并行處理方法,其特征在于,所述數(shù)據(jù)處理階段和數(shù)據(jù) 合并階段的運行模式包括: a) -天處理,一天合并;或 b) 多天處理,一次合并。
【專利摘要】本發(fā)明涉及一種數(shù)據(jù)并行處理方法,該方法包括相互獨立的數(shù)據(jù)處理階段、數(shù)據(jù)使用階段和數(shù)據(jù)合并階段,所述數(shù)據(jù)處理階段與數(shù)據(jù)使用階段并行,所述數(shù)據(jù)使用階段與數(shù)據(jù)合并階段互斥,其中,所述數(shù)據(jù)合并階段是對數(shù)據(jù)歷史區(qū)進行替換和添加操作,所述數(shù)據(jù)歷史區(qū)分為當前分區(qū)和歷史分區(qū),所述當前分區(qū)存儲無結束時間的數(shù)據(jù),所述歷史分區(qū)存儲有結束時間的數(shù)據(jù)。與現(xiàn)有技術相比,本發(fā)明具有實現(xiàn)數(shù)據(jù)使用與加載并行、提高數(shù)據(jù)同步性等優(yōu)點。
【IPC分類】G06F17/30
【公開號】CN105045879
【申請?zhí)枴緾N201510430266
【發(fā)明人】吳衛(wèi)軍, 范磊
【申請人】上海融甸信息科技有限公司
【公開日】2015年11月11日
【申請日】2015年7月21日