一種帳戶餘額數據的並行處理方法和系統的製作方法
2023-05-05 00:41:31 1
一種帳戶餘額數據的並行處理方法和系統的製作方法
【專利摘要】本發明公開了一種帳戶餘額數據的並行處理方法,該方法包括:一個或多個執行第一任務的Map節點讀取帳戶餘額明細數據的不同分片數據,生成所讀取的分片數據中每一條餘額記錄的第一輸出參數和第二輸出參數;其中,所述第一輸出參數至少包括帳戶ID,所述第二輸出參數設定為帳戶狀態信息,所述帳戶狀態信息至少包括:餘額值、交易日期和當天交易序號;一個或多個執行第一任務的Reduce節點讀取所述執行第一任務的Map節點處理完畢的不同餘額記錄,根據所述餘額記錄的第一輸出參數和第二輸出參數分別生成各帳戶的日均餘額值記錄;其中,第一輸出參數相同的餘額記錄由同一個Reduce節點讀取。本發明能夠快速獲取大數據量下的帳戶日均餘額的統計結果。本發明還公開了一種帳戶餘額數據的並行處理系統。
【專利說明】一種帳戶餘額數據的並行處理方法和系統
【技術領域】
[0001] 本發明涉及大數據處理【技術領域】,尤其涉及的是一種大數據量下的帳戶餘額數據 的並行處理方法和系統。
【背景技術】
[0002] 數據是企業生產、經營、戰略等幾乎所有經營活動所依賴的、不可或缺的信息。數 據就猶如企業經營者的眼睛一樣,通過數據可以反映出經營的問題,就猶如舵手依賴導航 一樣。隨著人類社會全面進入資訊時代,數據更是成為與水、石油同等重要的戰略資源。目 前企業面臨著數據量的大規模增長。例如,IDC最近的報告預測稱,到2020年,全球數據量 將擴大50倍。目前,大數據的規模尚是一個不斷變化的指標,單一數據集的規模範圍從幾 十TB到數PB不等。此外,各種意想不到的來源都能產生數據。
[0003] 傳統業務數據隨時間演變已擁有標準的格式,能夠被標準的商務智能軟體識別。 相較傳統的業務數據,大數據具有多層結構,這意味著大數據會呈現出多變的形式和類型。 由於大數據存在不規則和模糊不清的特性,造成很難甚至無法使用傳統的應用軟體進行分 析。
[0004] 目前,企業面臨的挑戰是從各種形式的複雜數據中挖掘價值。
【發明內容】
[0005] 本發明所要解決的技術問題是提供一種帳戶餘額數據的並行處理方法和系統,快 速獲取大數據量下的帳戶日均餘額的統計結果。
[0006] 為了解決上述技術問題,本發明提供了一種帳戶餘額數據的並行處理方法,該方 法包括:
[0007] -個或多個執行第一任務的Map節點讀取帳戶餘額明細數據的不同分片數據,生 成所讀取的分片數據中每一條餘額記錄的第一輸出參數和第二輸出參數;其中,所述第一 輸出參數至少包括帳戶ID,所述第二輸出參數設定為帳戶狀態信息,所述帳戶狀態信息至 少包括:餘額值、交易日期和當天交易序號;
[0008] -個或多個執行第一任務的Reduce節點讀取所述執行第一任務的Map節點處理 完畢的不同餘額記錄,根據所述餘額記錄的第一輸出參數和第二輸出參數分別生成各帳戶 的日均餘額值記錄;其中,第一輸出參數相同的餘額記錄由同一個Reduce節點讀取。
[0009] 進一步地,該方法還包括下述特點:
[0010] 所述根據所述餘額記錄的第一輸出參數和第二輸出參數分別生成各帳戶的日均 餘額值記錄,包括:
[0011] 按照所述第一輸出參數中的帳戶ID,遍歷同一帳戶的各條餘額記錄,根據所述餘 額記錄的第二輸出參數確定該帳戶在查詢起止時間範圍內的每一天的餘額值,將每一天的 餘額值在所述查詢起止時間範圍內取平均得到該帳戶的日均餘額值,生成該帳戶的日均餘 額值記錄。
[0012] 進一步地,該方法還包括下述特點:
[0013] 在所述執行第一任務的Reduce節點根據所述餘額記錄的第一輸出參數和第二輸 出參數分別生成各帳戶的日均餘額值記錄後,還包括:
[0014] -個或多個執行第二任務的Map節點讀取不同帳戶的日均餘額值記錄,生成所讀 取的日均餘額值記錄的第一輸出參數和第二輸出參數;其中,所述日均餘額值記錄的第一 輸出參數設定為所述日均餘額值所在的區間,所述日均餘額值記錄的第二輸出參數設定為 1 ;
[0015] 一個或多個執行第二任務的Reduce節點讀取所述執行第二任務的Map節點處理 完畢的不同日均餘額值記錄,根據所述日均餘額值記錄的第一輸出參數和第二輸出參數統 計各日均餘額值區間的帳戶數,包括:按照所述第一輸出參數中的日均餘額值區間,遍歷同 一日均餘額值區間的各條日均餘額值記錄,將每一條日均餘額值記錄的第二輸出參數進行 累加,獲得該日均餘額值區間的帳戶數;其中,第一輸出參數相同的日均餘額值記錄由同一 個Reduce節點讀取。
[0016] 進一步地,該方法還包括下述特點:
[0017] 根據所述餘額記錄的第二輸出參數確定該帳戶在查詢起止時間範圍內的每一天 的餘額值,包括:
[0018] 從查詢起始時間的當日至查詢終止時間的當日,判斷每一天是否存在餘額記錄, 如存在,將當日交易序號最大的餘額記錄的餘額值作為當日的最終餘額值,如不存在,追溯 早於當日且具有餘額記錄的最近日期,將所述最近日期那一天的交易序號最大的餘額記錄 的餘額值作為當日的最終餘額值。
[0019] 進一步地,該方法還包括下述特點:
[0020] 在一個或多個執行第一任務的Reduce節點讀取所述執行第一任務的Map節點處 理完畢的不同餘額記錄之前,還包括:
[0021] 計算每一條餘額記錄的第一參數的哈希值,建立第一參數的哈希值與所述執行第 一任務的Reduce節點的映射關係;其中,所述映射關係用於供所述執行第一任務的Reduce 節點根據所述映射關係讀取對應的餘額記錄。
[0022] 進一步地,該方法還包括下述特點:
[0023] 在一個或多個執行第二任務的Reduce節點讀取所述執行第二任務的Map節點處 理完畢的不同日均餘額值記錄之前,還包括:
[0024] 計算每一條日均餘額值記錄的第一參數的哈希值,建立第一參數的哈希值與執 行第二任務的Reduce節點的映射關係;其中,所述映射關係用於供所述執行第二任務的 Reduce節點根據所述映射關係讀取對應的日均餘額值記錄。
[0025] 進一步地,該方法還包括下述特點:
[0026] 在一個或多個執行第一任務的Map節點讀取帳戶餘額明細數據的不同分片數據 之前,還包括:
[0027] 根據查詢起止時間確定帳戶餘額明細數據的讀取範圍,包括:將全量餘額明細 數據和截止到查詢終止時間當天的增量餘額明細數據確定為帳戶餘額明細數據的讀取範 圍;
[0028] 將屬於該讀取範圍內的帳戶餘額明細數據分片,建立每一個分片與執行第一任務 的Map節點的映射關係;其中,所述映射關係用於供所述執行第一任務的Map節點根據所述 映射關係讀取對應的分片數據。
[0029] 為了解決上述技術問題,本發明還提供了一種帳戶餘額數據的並行處理系統,該 系統包括:
[0030] Map處理模塊,包括一個或多個執行第一任務的Map節點;各執行第一任務的Map 節點用於讀取帳戶餘額明細數據的不同分片數據,生成所讀取的分片數據中每一條餘額記 錄的第一輸出參數和第二輸出參數;其中,所述第一輸出參數至少包括帳戶ID,所述第二 輸出參數設定為帳戶狀態信息,所述帳戶狀態信息至少包括:餘額值、交易日期和當天交易 序號;
[0031] Reduce處理模塊,包括一個或多個執行第一任務的Reduce節點;各執行第一任務 的Reduce節點用於讀取所述執行第一任務的Map節點處理完畢的不同餘額記錄,根據所述 餘額記錄的第一輸出參數和第二輸出參數分別生成各帳戶的日均餘額值記錄;其中,第一 輸出參數相同的餘額記錄由同一個Reduce節點讀取。
[0032] 進一步地,該系統還包括下述特點:
[0033] 所述執行第一任務的Reduce節點用於根據所述餘額記錄的第一輸出參數和第二 輸出參數分別生成各帳戶的日均餘額值記錄,包括:按照所述第一輸出參數中的帳戶ID, 遍歷同一帳戶的各條餘額記錄,根據所述餘額記錄的第二輸出參數確定該帳戶在查詢起止 時間範圍內的每一天的餘額值,將每一天的餘額值在所述查詢起止時間範圍內取平均得到 該帳戶的日均餘額值,生成該帳戶的日均餘額值記錄。
[0034] 進一步地,該系統還包括下述特點:
[0035] 所述Map處理模塊還包括一個或多個執行第二任務的Map節點,所述Reduce處理 模塊還包括一個或多個執行第二任務的Reduce節點;
[0036] 各執行第二任務的Map節點用於讀取不同帳戶的日均餘額值記錄,生成所讀取的 日均餘額值記錄的第一輸出參數和第二輸出參數;其中,所述日均餘額值記錄的第一輸出 參數設定為所述日均餘額值所在的區間,所述日均餘額值記錄的第二輸出參數設定為1 ;
[0037] 各執行第二任務的Reduce節點用於讀取所述執行第二任務的Map節點處理完畢 的不同日均餘額值記錄,根據所述日均餘額值記錄的第一輸出參數和第二輸出參數統計各 日均餘額值區間的帳戶數,包括:按照所述第一輸出參數中的日均餘額值區間,遍歷同一 日均餘額值區間的各條日均餘額值記錄,將每一條日均餘額值記錄的第二輸出參數進行累 力口,獲得該日均餘額值區間的帳戶數;其中,第一輸出參數相同的日均餘額值記錄由同一個 Reduce節點讀取。
[0038] 進一步地,該系統還包括下述特點:
[0039] 所述執行第一任務的Reduce節點用於根據所述餘額記錄的第二輸出參數確定該 帳戶在查詢起止時間範圍內的每一天的餘額值,包括:從查詢起始時間的當日至查詢終止 時間的當日,判斷每一天是否存在餘額記錄,如存在,將當日交易序號最大的餘額記錄的餘 額值作為當日的最終餘額值,如不存在,追溯早於當日且具有餘額記錄的最近日期,將所述 最近日期那一天的交易序號最大的餘額記錄的餘額值作為當日的最終餘額值。
[0040] 進一步地,該系統還包括下述特點:
[0041] 所述Reduce處理模塊還包括第一任務路由模塊:
[0042] 所述第一任務路由模塊,用於在一個或多個執行第一任務的Reduce節點讀取所 述執行第一任務的Map節點處理完畢的不同餘額記錄之前,計算每一條餘額記錄的第一參 數的哈希值,建立第一參數的哈希值與所述執行第一任務的Reduce節點的映射關係;其 中,所述映射關係用於供所述執行第一任務的Reduce節點根據所述映射關係讀取對應的 餘額記錄。
[0043] 進一步地,該系統還包括下述特點:
[0044] 所述Reduce處理模塊還包括第二任務路由模塊:
[0045] 所述第二任務路由模塊,用於在一個或多個執行第二任務的Reduce節點讀取所 述執行第二任務的Map節點處理完畢的不同日均餘額值記錄之前,計算每一條日均餘額值 記錄的第一參數的哈希值,建立第一參數的哈希值與執行第二任務的Reduce節點的映射 關係;其中,所述映射關係用於供所述執行第二任務的Reduce節點根據所述映射關係讀取 對應的日均餘額值記錄。
[0046] 進一步地,該系統還包括下述特點:所述Map處理模塊還包括分片模塊:
[0047] 所述分片模塊,用於在一個或多個執行第一任務的Map節點讀取帳戶餘額明細數 據的不同分片數據之前,根據查詢起止時間確定帳戶餘額明細數據的讀取範圍,包括:將全 量餘額明細數據和截止到查詢終止時間當天的增量餘額明細數據確定為帳戶餘額明細數 據的讀取範圍;將屬於該讀取範圍內的帳戶餘額明細數據分片,建立每一個分片與執行第 一任務的Map節點的映射關係;其中,所述映射關係用於供所述執行第一任務的Map節點根 據所述映射關係讀取對應的分片數據。
[0048] 與現有技術相比,本發明提供的一種帳戶餘額數據的並行處理方法和系統,基於 MapReduce將大規模的帳戶餘額明細數據分成若干份交給Map節點並行處理,Map階段對數 據按照帳戶進行了分類,處理完成後根據帳戶id分組並路由給多個Reduce節點並行處理, 從而快速獲取大數據量下的帳戶日均餘額的統計結果,處理效率高、可擴展性強。
【專利附圖】
【附圖說明】
[0049] 圖1為本發明實施例的一種帳戶餘額數據的並行處理方法中獲取各用戶的日均 餘額值的流程圖。
[0050] 圖2為本發明實施例的一種帳戶餘額數據的並行處理方法中統計各日均餘額值 區間的帳戶數的流程圖。
[0051] 圖3為本發明實施例的一種帳戶餘額數據的並行處理系統的結構示意圖。
[0052] 圖4為本發明應用示例的基於MapReduce的帳戶餘額數據的處理架構示意圖。
【具體實施方式】
[0053] 為使本發明的目的、技術方案和優點更加清楚明白,下文中將結合附圖對本發明 的實施例進行詳細說明。需要說明的是,在不衝突的情況下,本申請中的實施例及實施例中 的特徵可以相互任意組合。
[0054] 如圖1所示,本發明實施例提供了一種帳戶餘額數據的並行處理方法,該方法包 括:
[0055] S10, 一個或多個執行第一任務的Map節點讀取帳戶餘額明細數據的不同分片數 據,生成所讀取的分片數據中每一條餘額記錄的第一輸出參數和第二輸出參數;其中,所述 第一輸出參數至少包括帳戶ID,所述第二輸出參數設定為帳戶狀態信息,所述帳戶狀態信 息至少包括:餘額值、交易日期和當天交易序號;
[0056] S20, 一個或多個執行第一任務的Reduce節點讀取所述執行第一任務的Map節點 處理完畢的不同餘額記錄,根據所述餘額記錄的第一輸出參數和第二輸出參數分別生成各 帳戶的日均餘額值記錄;其中,第一輸出參數相同的餘額記錄由同一個Reduce節點讀取;
[0057] 該方法還可以包括下述特點:
[0058] 優選地,在一個或多個執行第一任務的Map節點讀取帳戶餘額明細數據的不同分 片數據之前,還包括:
[0059] 根據查詢起止時間確定帳戶餘額明細數據的讀取範圍,包括:將全量餘額明細 數據和截止到查詢終止時間當天的增量餘額明細數據確定為帳戶餘額明細數據的讀取範 圍;
[0060] 將屬於該讀取範圍內的帳戶餘額明細數據分片,建立每一個分片與執行第一任務 的Map節點的映射關係;其中,所述映射關係用於供所述執行第一任務的Map節點根據所述 映射關係讀取對應的分片數據。
[0061] 優選地,所述根據所述餘額記錄的第一輸出參數和第二輸出參數分別生成各帳戶 的日均餘額值記錄,包括:
[0062] 按照所述第一輸出參數中的帳戶ID,遍歷同一帳戶的各條餘額記錄,根據所述餘 額記錄的第二輸出參數確定該帳戶在查詢起止時間範圍內的每一天的餘額值,將每一天的 餘額值在所述查詢起止時間範圍內取平均得到該帳戶的日均餘額值,生成該帳戶的日均餘 額值記錄。
[0063] 優選地,根據所述餘額記錄的第二輸出參數確定該帳戶在查詢起止時間範圍內的 每一天的餘額值,包括:
[0064] 從查詢起始時間的當日至查詢終止時間的當日,判斷每一天是否存在餘額記錄, 如存在,將當日交易序號最大的餘額記錄的餘額值作為當日的最終餘額值,如不存在,追溯 早於當日且具有餘額記錄的最近日期,將所述最近日期那一天的交易序號最大的餘額記錄 的餘額值作為當日的最終餘額值。
[0065] 優選地,在一個或多個執行第一任務的Reduce節點讀取所述執行第一任務的Map 節點處理完畢的不同餘額記錄之前,還包括:
[0066] 計算每一條餘額記錄的第一參數的哈希值,建立第一參數的哈希值與所述執行第 一任務的Reduce節點的映射關係;其中,所述映射關係用於供所述執行第一任務的Reduce 節點根據所述映射關係讀取對應的餘額記錄。
[0067] 優選地,每一條餘額記錄的第一參數的哈希值為將所述第一參數對執行第一任務 的Reduce節點總個數取模;
[0068] 優選地,如圖2所示,步驟S20後還包括:
[0069] S30,確定每個帳戶的日均餘額值所在的區間,統計每個區間內的帳戶數;
[0070] 優選地,確定每個帳戶的日均餘額值所在的區間,統計每個區間內的帳戶數,包 括:
[0071] S301,一個或多個執行第二任務的Map節點讀取不同帳戶的日均餘額值記錄,生 成所讀取的日均餘額值記錄的第一輸出參數和第二輸出參數;其中,所述日均餘額值記錄 的第一輸出參數設定為所述日均餘額值所在的區間,所述日均餘額值記錄的第二輸出參數 設定為1;
[0072] S302, 一個或多個執行第二任務的Reduce節點讀取所述執行第二任務的Map節點 處理完畢的不同日均餘額值記錄,根據所述日均餘額值記錄的第一輸出參數和第二輸出參 數統計各日均餘額值區間的帳戶數,包括:按照所述第一輸出參數中的日均餘額值區間,遍 歷同一日均餘額值區間的各條日均餘額值記錄,將每一條日均餘額值記錄的第二輸出參數 進行累加,獲得該日均餘額值區間的帳戶數;其中,第一輸出參數相同的日均餘額值記錄由 同一個Reduce節點讀取。
[0073] 優選地,在一個或多個執行第二任務的Reduce節點讀取所述執行第二任務的Map 節點處理完畢的不同日均餘額值記錄之前,還包括:
[0074] 計算每一條日均餘額值記錄的第一參數的哈希值,建立第一參數的哈希值與執 行第二任務的Reduce節點的映射關係;其中,所述映射關係用於供所述執行第二任務的 Reduce節點根據所述映射關係讀取對應的日均餘額值記錄。
[0075] 優選地,每一條日均餘額值記錄的第一參數的哈希值為將所述第一參數對執行第 二任務的Reduce節點總個數取模;
[0076] 其中,所述執行第二任務的Map節點與執行第一任務的Map節點是同一批節點或 不同批的節點,也即,Map節點在執行完第一任務後,才可以執行第二任務。同理,所述執行 第二任務的Reduce節點與執行第一任務的Reduce節點是同一批節點或不同批的節點,也 艮P,Reduce節點在執行完第一任務後,才可以執行第二任務。
[0077] 如圖3所示,本發明實施例提供了一種帳戶餘額數據的並行處理系統,該系統包 括:
[0078] Map處理模塊,包括一個或多個執行第一任務的Map節點;各執行第一任務的Map 節點用於讀取帳戶餘額明細數據的不同分片數據,生成所讀取的分片數據中每一條餘額記 錄的第一輸出參數和第二輸出參數;其中,所述第一輸出參數至少包括帳戶ID,所述第二 輸出參數設定為帳戶狀態信息,所述帳戶狀態信息至少包括:餘額值、交易日期和當天交易 序號;
[0079] Reduce處理模塊,包括一個或多個執行第一任務的Reduce節點;各執行第一任務 的Reduce節點用於讀取所述執行第一任務的Map節點處理完畢的不同餘額記錄,根據所述 餘額記錄的第一輸出參數和第二輸出參數分別生成各帳戶的日均餘額值記錄;其中,第一 輸出參數相同的餘額記錄由同一個Reduce節點讀取。
[0080] 該系統還可以包括下述特點:
[0081] 優選地,所述執行第一任務的Reduce節點用於根據所述餘額記錄的第一輸出參 數和第二輸出參數分別生成各帳戶的日均餘額值記錄,包括:按照所述第一輸出參數中的 帳戶ID,遍歷同一帳戶的各條餘額記錄,根據所述餘額記錄的第二輸出參數確定該帳戶在 查詢起止時間範圍內的每一天的餘額值,將每一天的餘額值在所述查詢起止時間範圍內取 平均得到該帳戶的日均餘額值,生成該帳戶的日均餘額值記錄。
[0082] 優選地,所述Map處理模塊還包括一個或多個執行第二任務的Map節點,所述 Reduce處理模塊還包括一個或多個執行第二任務的Reduce節點;
[0083] 各執行第二任務的Map節點用於讀取不同帳戶的日均餘額值記錄,生成所讀取的 日均餘額值記錄的第一輸出參數和第二輸出參數;其中,所述日均餘額值記錄的第一輸出 參數設定為所述日均餘額值所在的區間,所述日均餘額值記錄的第二輸出參數設定為1 ;
[0084] 各執行第二任務的Reduce節點用於讀取所述執行第二任務的Map節點處理完畢 的不同日均餘額值記錄,根據所述日均餘額值記錄的第一輸出參數和第二輸出參數統計各 日均餘額值區間的帳戶數,包括:按照所述第一輸出參數中的日均餘額值區間,遍歷同一 日均餘額值區間的各條日均餘額值記錄,將每一條日均餘額值記錄的第二輸出參數進行累 力口,獲得該日均餘額值區間的帳戶數;其中,第一輸出參數相同的日均餘額值記錄由同一個 Reduce節點讀取。
[0085] 優選地,所述執行第一任務的Reduce節點用於根據所述餘額記錄的第二輸出參 數確定該帳戶在查詢起止時間範圍內的每一天的餘額值,包括:從查詢起始時間的當日至 查詢終止時間的當日,判斷每一天是否存在餘額記錄,如存在,將當日交易序號最大的餘額 記錄的餘額值作為當日的最終餘額值,如不存在,追溯早於當日且具有餘額記錄的最近日 期,將所述最近日期那一天的交易序號最大的餘額記錄的餘額值作為當日的最終餘額值。
[0086] 優選地,所述Reduce處理模塊還包括第一任務路由模塊:
[0087] 所述第一任務路由模塊,用於在一個或多個執行第一任務的Reduce節點讀取所 述執行第一任務的Map節點處理完畢的不同餘額記錄之前,計算每一條餘額記錄的第一參 數的哈希值,建立第一參數的哈希值與所述執行第一任務的Reduce節點的映射關係;其 中,所述映射關係用於供所述執行第一任務的Reduce節點根據所述映射關係讀取對應的 餘額記錄。
[0088] 優選地,所述Reduce處理模塊還包括第二任務路由模塊:
[0089] 所述第二任務路由模塊,用於在一個或多個執行第二任務的Reduce節點讀取所 述執行第二任務的Map節點處理完畢的不同日均餘額值記錄之前,計算每一條日均餘額值 記錄的第一參數的哈希值,建立第一參數的哈希值與執行第二任務的Reduce節點的映射 關係;其中,所述映射關係用於供所述執行第二任務的Reduce節點根據所述映射關係讀取 對應的日均餘額值記錄。
[0090] 優選地,所述Map處理模塊還包括分片模塊:
[0091] 所述分片模塊,用於在一個或多個執行第一任務的Map節點讀取帳戶餘額明細數 據的不同分片數據之前,根據查詢起止時間確定帳戶餘額明細數據的讀取範圍,包括:將全 量餘額明細數據和截止到查詢終止時間當天的增量餘額明細數據確定為帳戶餘額明細數 據的讀取範圍;將屬於該讀取範圍內的帳戶餘額明細數據分片,建立每一個分片與執行第 一任務的Map節點的映射關係;其中,所述映射關係用於供所述執行第一任務的Map節點根 據所述映射關係讀取對應的分片數據。
[0092] 應用示例
[0093] 下面給出一個應用例子:統計各帳戶今年1月1日到1月8日的日均餘額,以及各 帳戶日均餘額的分布區間。(假設有兩個帳戶:分別是idOOl和id002)
[0094] 兩個帳戶的原始明細數據如表1所示,包括去年(2013年)的部分全量數據以及 今年(2014年)1月1日至1月8日的增量數據。
[0095]
【權利要求】
1. 一種帳戶餘額數據的並行處理方法,該方法包括: 一個或多個執行第一任務的Map節點讀取帳戶餘額明細數據的不同分片數據,生成所 讀取的分片數據中每一條餘額記錄的第一輸出參數和第二輸出參數;其中,所述第一輸出 參數至少包括帳戶ID,所述第二輸出參數設定為帳戶狀態信息,所述帳戶狀態信息至少包 括:餘額值、交易日期和當天交易序號; 一個或多個執行第一任務的Reduce節點讀取所述執行第一任務的Map節點處理完畢 的不同餘額記錄,根據所述餘額記錄的第一輸出參數和第二輸出參數分別生成各帳戶的日 均餘額值記錄;其中,第一輸出參數相同的餘額記錄由同一個Reduce節點讀取。
2. 如權利要求1所述的方法,其特徵在於: 所述根據所述餘額記錄的第一輸出參數和第二輸出參數分別生成各帳戶的日均餘額 值記錄,包括: 按照所述第一輸出參數中的帳戶ID,遍歷同一帳戶的各條餘額記錄,根據所述餘額記 錄的第二輸出參數確定該帳戶在查詢起止時間範圍內的每一天的餘額值,將每一天的餘額 值在所述查詢起止時間範圍內取平均得到該帳戶的日均餘額值,生成該帳戶的日均餘額值 記錄。
3. 如權利要求1所述的方法,其特徵在於,在所述執行第一任務的Reduce節點根據 所述餘額記錄的第一輸出參數和第二輸出參數分別生成各帳戶的日均餘額值記錄後,還包 括: 一個或多個執行第二任務的Map節點讀取不同帳戶的日均餘額值記錄,生成所讀取的 日均餘額值記錄的第一輸出參數和第二輸出參數;其中,所述日均餘額值記錄的第一輸出 參數設定為所述日均餘額值所在的區間,所述日均餘額值記錄的第二輸出參數設定為1 ; 一個或多個執行第二任務的Reduce節點讀取所述執行第二任務的Map節點處理完畢 的不同日均餘額值記錄,根據所述日均餘額值記錄的第一輸出參數和第二輸出參數統計各 日均餘額值區間的帳戶數,包括:按照所述第一輸出參數中的日均餘額值區間,遍歷同一 日均餘額值區間的各條日均餘額值記錄,將每一條日均餘額值記錄的第二輸出參數進行累 力口,獲得該日均餘額值區間的帳戶數;其中,第一輸出參數相同的日均餘額值記錄由同一個 Reduce節點讀取。
4. 如權利要求2所述的方法,其特徵在於: 根據所述餘額記錄的第二輸出參數確定該帳戶在查詢起止時間範圍內的每一天的餘 額值,包括: 從查詢起始時間的當日至查詢終止時間的當日,判斷每一天是否存在餘額記錄,如存 在,將當日交易序號最大的餘額記錄的餘額值作為當日的最終餘額值,如不存在,追溯早於 當日且具有餘額記錄的最近日期,將所述最近日期那一天的交易序號最大的餘額記錄的餘 額值作為當日的最終餘額值。
5. 如權利要求1所述的方法,其特徵在於: 在一個或多個執行第一任務的Reduce節點讀取所述執行第一任務的Map節點處理完 畢的不同餘額記錄之前,還包括: 計算每一條餘額記錄的第一參數的哈希值,建立第一參數的哈希值與所述執行第一任 務的Reduce節點的映射關係;其中,所述映射關係用於供所述執行第一任務的Reduce節點 根據所述映射關係讀取對應的餘額記錄。
6. 如權利要求3所述的方法,其特徵在於: 在一個或多個執行第二任務的Reduce節點讀取所述執行第二任務的Map節點處理完 畢的不同日均餘額值記錄之前,還包括: 計算每一條日均餘額值記錄的第一參數的哈希值,建立第一參數的哈希值與執行第二 任務的Reduce節點的映射關係;其中,所述映射關係用於供所述執行第二任務的Reduce節 點根據所述映射關係讀取對應的日均餘額值記錄。
7. 如權利要求1所述的方法,其特徵在於: 在一個或多個執行第一任務的Map節點讀取帳戶餘額明細數據的不同分片數據之前, 還包括: 根據查詢起止時間確定帳戶餘額明細數據的讀取範圍,包括:將全量餘額明細數據和 截止到查詢終止時間當天的增量餘額明細數據確定為帳戶餘額明細數據的讀取範圍; 將屬於該讀取範圍內的帳戶餘額明細數據分片,建立每一個分片與執行第一任務的 Map節點的映射關係;其中,所述映射關係用於供所述執行第一任務的Map節點根據所述映 射關係讀取對應的分片數據。
8. -種帳戶餘額數據的並行處理系統,該系統包括: Map處理模塊,包括一個或多個執行第一任務的Map節點;各執行第一任務的Map節 點用於讀取帳戶餘額明細數據的不同分片數據,生成所讀取的分片數據中每一條餘額記錄 的第一輸出參數和第二輸出參數;其中,所述第一輸出參數至少包括帳戶ID,所述第二輸 出參數設定為帳戶狀態信息,所述帳戶狀態信息至少包括:餘額值、交易日期和當天交易序 號; Reduce處理模塊,包括一個或多個執行第一任務的Reduce節點;各執行第一任務的 Reduce節點用於讀取所述執行第一任務的Map節點處理完畢的不同餘額記錄,根據所述餘 額記錄的第一輸出參數和第二輸出參數分別生成各帳戶的日均餘額值記錄;其中,第一輸 出參數相同的餘額記錄由同一個Reduce節點讀取。
9. 如權利要求8所述的系統,其特徵在於: 所述執行第一任務的Reduce節點用於根據所述餘額記錄的第一輸出參數和第二輸出 參數分別生成各帳戶的日均餘額值記錄,包括:按照所述第一輸出參數中的帳戶ID,遍歷 同一帳戶的各條餘額記錄,根據所述餘額記錄的第二輸出參數確定該帳戶在查詢起止時間 範圍內的每一天的餘額值,將每一天的餘額值在所述查詢起止時間範圍內取平均得到該帳 戶的日均餘額值,生成該帳戶的日均餘額值記錄。
10. 如權利要求8所述的系統,其特徵在於,所述Map處理模塊還包括一個或多個執行 第二任務的Map節點,所述Reduce處理模塊還包括一個或多個執行第二任務的Reduce節 佔 . 各執行第二任務的Map節點用於讀取不同帳戶的日均餘額值記錄,生成所讀取的日均 餘額值記錄的第一輸出參數和第二輸出參數;其中,所述日均餘額值記錄的第一輸出參數 設定為所述日均餘額值所在的區間,所述日均餘額值記錄的第二輸出參數設定為1 ; 各執行第二任務的Reduce節點用於讀取所述執行第二任務的Map節點處理完畢的 不同日均餘額值記錄,根據所述日均餘額值記錄的第一輸出參數和第二輸出參數統計各日 均餘額值區間的帳戶數,包括:按照所述第一輸出參數中的日均餘額值區間,遍歷同一日 均餘額值區間的各條日均餘額值記錄,將每一條日均餘額值記錄的第二輸出參數進行累 力口,獲得該日均餘額值區間的帳戶數;其中,第一輸出參數相同的日均餘額值記錄由同一個 Reduce節點讀取。
11. 如權利要求9所述的系統,其特徵在於: 所述執行第一任務的Reduce節點用於根據所述餘額記錄的第二輸出參數確定該帳戶 在查詢起止時間範圍內的每一天的餘額值,包括:從查詢起始時間的當日至查詢終止時間 的當日,判斷每一天是否存在餘額記錄,如存在,將當日交易序號最大的餘額記錄的餘額值 作為當日的最終餘額值,如不存在,追溯早於當日且具有餘額記錄的最近日期,將所述最近 日期那一天的交易序號最大的餘額記錄的餘額值作為當日的最終餘額值。
12. 如權利要求8所述的系統,其特徵在於,所述Reduce處理模塊還包括第一任務路由 模塊: 所述第一任務路由模塊,用於在一個或多個執行第一任務的Reduce節點讀取所述執 行第一任務的Map節點處理完畢的不同餘額記錄之前,計算每一條餘額記錄的第一參數的 哈希值,建立第一參數的哈希值與所述執行第一任務的Reduce節點的映射關係;其中,所 述映射關係用於供所述執行第一任務的Reduce節點根據所述映射關係讀取對應的餘額記 錄。
13. 如權利要求10所述的系統,其特徵在於,所述Reduce處理模塊還包括第二任務路 由模塊: 所述第二任務路由模塊,用於在一個或多個執行第二任務的Reduce節點讀取所述執 行第二任務的Map節點處理完畢的不同日均餘額值記錄之前,計算每一條日均餘額值記錄 的第一參數的哈希值,建立第一參數的哈希值與執行第二任務的Reduce節點的映射關係; 其中,所述映射關係用於供所述執行第二任務的Reduce節點根據所述映射關係讀取對應 的日均餘額值記錄。
14. 如權利要求8所述的系統,其特徵在於,所述Map處理模塊還包括分片模塊: 所述分片模塊,用於在一個或多個執行第一任務的Map節點讀取帳戶餘額明細數據的 不同分片數據之前,根據查詢起止時間確定帳戶餘額明細數據的讀取範圍,包括:將全量餘 額明細數據和截止到查詢終止時間當天的增量餘額明細數據確定為帳戶餘額明細數據的 讀取範圍;將屬於該讀取範圍內的帳戶餘額明細數據分片,建立每一個分片與執行第一任 務的Map節點的映射關係;其中,所述映射關係用於供所述執行第一任務的Map節點根據所 述映射關係讀取對應的分片數據。
【文檔編號】G06F17/30GK104050291SQ201410306448
【公開日】2014年9月17日 申請日期:2014年6月30日 優先權日:2014年6月30日
【發明者】趙仁明, 辛國茂, 亓開元, 房體盈 申請人:浪潮(北京)電子信息產業有限公司