基於拆分機制並行處理實現大數據量高性能處理的方法
2023-06-23 19:22:26 1
專利名稱::基於拆分機制並行處理實現大數據量高性能處理的方法
技術領域:
:本發明屬於電信運營商海量資料庫數據處理應用技術範疇,尤其是並行處理實現大數據量高性能處理的方法。
背景技術:
:一般來說,電信運營商的業務清單數據常常都是海量級的,尤其是需要進行匯總統計的清單數據,每天處理的的記錄數均達到千萬級。通常的做法是在資料庫中通過一個或多個較複雜的sql語句,並提交給資料庫完成,這樣的工作都佔用了很多時間和資料庫資源。比如,針對每天產生的日清單數據,需要先對日清單表的記錄按照指定條件進行匯總,然後更新入匯總表,更新方法是如果匯總表已經有了相同指定約束條件的,則將相關指標值累加並更新;否則直接插入,形成新的記錄。每次匯總過程都需要執行一次較複雜的sql語句。有多少種不同的匯總目標表,就需要執行多少次sql語句。其所要花費的時間完全取決於資料庫的處理性能。而通常情況下效率都非常的低。
發明內容本發明目的是提出一種基於拆分機制並行處理實現大數據量高性能處理的方法,針對每次匯總過程都需要執行一次較複雜的sql語句。有多少種不同的匯總目標表,就需要執行多少次sql語句,所要花費的時間多的不足。基於拆分機制並行處理實現大數據量高性能處理的方法,對於電信的話單海量數據通過設置拆分規則,將需要處理的海量數據,平均地拆分成多個文件,並利用文件處理系統的多線程和多CPU並行處理,快速處理海量數據在文件處理系統中並行處理的過程是模擬資料庫sql算法進行計算,充分利用文件處理系統的資源;一次性讀取所有後續海量數據匯總表所需要的信息通過先羅列出每個匯總表所需要的維度和指標欄位,再取併集的方法,制定出一個抽取海量數據源表的SQL語句,讀完所有後續海量數據匯總表所需要的信息;同步拆分為了充分利用多線程和多進程的並行處理優勢,對數據進行一定條件拆分所述拆分條件是按照電話號碼,通過合理指定電話號碼的位進行拆分,將所有抽取的記錄,比較平均地分布在抽取出的文件中;拆分的文件數和拆分位數關係是"10的冪",也就是說如果按l位進行拆分,那麼可拆分出10個文件;如果按兩位進行拆分,那麼可拆分出100個文件,如果按3位拆分,那麼可拆分出1000個文件;依次類推;根據拆分條件的規則,就形成了一些"處理文件對",處理文件對中匯總的條件不可能在別的文件中出現,這樣通過多線程或多進程的方式分別進行小範圍內的文件匯總統計,並將匯總結果文件輸出到新的文件中,模擬完成資料庫操作;組裝入庫平均地拆分成多個文件中的形成的小文件匯總工作都完成之後,將所有的結果文件按照目標表類型分別拼接成大文件,然後裝載進匯總表;這部分工作可以利用資料庫特有的快速入庫命令來完成。本發明有益效果是本發明針對完全通過資料庫來進行類似的工作所存在的多次訪問同一海量數據源、處理速度完全依賴資料庫、性能無法掌控等問題而設計的。本發明主要優勢在於1、無論有多少種匯總,只需一次性訪問海量數據源,最大限度地減少資料庫壓力。2、在文件系統中模擬資料庫sql算法進行計算,充分利用文件系統的資源。3、對資料庫的性能依賴小,投資少,且便於移植。通過一次性讀取所有匯總表所需要的內容,並根據預設的拆分規則,分成若干小文件存儲到文件系統中,然後利用多進程和多線程技術對這些文件進行資料庫仿真運算,處理的結果文件最終再拼接,統一快速入庫,從而完成模擬執行sql的過程。4、對資料庫的性能依賴小,投資少,且便於移植。一般主機資源投入比資料庫的投入要小許多,因此提升同樣的系統性能,更新資料庫要比更新主機系統更費資金,更費事,充分利用文件系統能達到低投入,高產出的最終目的。在江蘇電信經營分析系統的使用情況表明,資料庫海量數據的文件系統處理算法,能明顯提高效率2倍以上,而且當匯總表個數增加的情況下,其優勢將更為明顯,測試結果如下tableseeoriginaldocumentpage4可見通過文件系統的並行處理,性能提高了一倍,而且可以推斷出,當目標匯總表個數增加的時候,通過sql處理的時間是線性增加的,而通過文件系統模擬資料庫處理,其花費的時間是非線性、緩慢地增長的。測試結論基於拆分機制並行處理實現大數據量高性能處理的方法來模擬資料庫處理,能明顯提高其處理性能(至少2倍以上)。當匯總結果表個數為多個的時候,其性能提升尤為明顯。圖1為從源表至目標表的數據流處理過程不意圖具體實施例方式可通過指定一通用接口,供原系統進行方便調用,從而達到替換原資料庫內處理的功能,在顯著提高系統執行效率的同時,做到跟原系統無縫銜接。實施過程中的幾項關鍵技術如下一次性讀取為了達到減少訪問海量數據源表的目的,需要一次性讀取所有後續匯總表所需要的信息。可通過先羅列出每個匯總表所需要的維度和指標欄位,再取併集的方法,制定出一個抽取海量源表的SQL語句。無論有多少種匯總,只需一次性訪問海量數據源,最大限度地減少資料庫壓力。為了達到減少訪問海量數據源表的目的,需要一次性讀取所有後續匯總表所需要的信息。可通過先羅列出每個匯總表所需要的維度和指標欄位,再取併集的方法,制定出一個抽取海量源表的SQL語句。並根據實際情況進行,通常是按照電話號碼,通過合理指定電話號碼的某些位進行拆分,理論上可以將所有抽取的記錄,比較平均地分布在抽取出的文件中。通過先羅列出每個匯總表所需要的維度和指標欄位,再取併集的方法,制定出一個抽取海量數據源表的SQL語句,讀完所有後續海量數據匯總表所需要的信息。同步拆分為了接下來能充分利用多線程和多進程的並行處理優勢,需要對數據進行一定條件的拆分。拆分條件可以根據實際情況進行,通常是按照電話號碼,通過合理指定電話號碼的某些位進行拆分,理論上可以將所有抽取的記錄,比較平均地分布在抽取出的文件中。拆分的文件數和拆分位數關係是"10的冪",也就是說如果按l位進行拆分,那麼可拆分出10個文件;如果按兩位進行拆分,那麼可拆分出100個文件,如果按3位拆分,那麼可拆分出1000個文件;依次類推。並行處理因為拆分條件的限定,就形成了"處理文件對",一對文件中匯總的條件不可能在別的文件中出現,也就是說需要進行比較的條件範圍縮小了。在文件系統中模擬資料庫sql算法進行計算,充分利用文件系統的資源。這時,可以通過多線程或多進程的方式分別進行小範圍內的文件匯總統計,並將匯總結果文件輸出到新的文件中。模擬完成資料庫操作。組裝入庫當所有的小文件匯總工作都完成之後,需要將所有的結果文件按照目標表類型分別拼接成大文件,然後裝載進匯總表。這部分工作可以利用資料庫特有的快速入庫命令來完成,最大程度地減少入庫時間。可參見圖l所示。權利要求1、基於拆分機制並行處理實現大數據量高性能處理的方法,其特徵是對於電信的話單海量數據通過設置拆分規則,將需要處理的海量數據,平均地拆分成多個文件,並利用文件處理系統的多線程和多CPU並行處理,快速處理海量數據在文件處理系統中並行處理的過程是模擬資料庫sq1算法進行計算,充分利用文件處理系統的資源;一次性讀取所有後續海量數據匯總表所需要的信息通過先羅列出每個匯總表所需要的維度和指標欄位,再取併集的方法,制定出一個抽取海量數據源表的SQL語句,讀完所有後續海量數據匯總表所需要的信息;同步拆分為了充分利用多線程和多進程的並行處理優勢,對數據進行一定條件拆分所述拆分條件是按照電話號碼,通過合理指定電話號碼的位進行拆分,將所有抽取的記錄,比較平均地分布在抽取出的文件中;拆分的文件數和拆分位數關係是「10的冪」;組裝入庫平均地拆分成多個文件中的形成的小文件匯總工作都完成之後,將所有的結果文件按照目標表類型分別拼接成大文件,然後裝載進匯總表;這部分工作可以利用資料庫特有的快速入庫命令來完成。全文摘要基於拆分機制並行處理實現大數據量高性能處理的方法,對於電信的話單海量數據通過設置拆分規則,將需要處理的海量數據,平均地拆分成多個文件,並利用文件處理系統的多線程和多CPU並行處理,快速處理海量數據在文件處理系統中並行處理的過程是模擬資料庫sql算法進行計算;通過先羅列出每個匯總表所需要的維度和指標欄位,再取併集的方法,制定出一個抽取海量數據源表的SQL語句,讀完所有後續海量數據匯總表所需要的信息;組裝入庫平均地拆分成多個文件中的形成的小文件匯總工作都完成之後,將所有的結果文件按照目標表類型分別拼接成大文件,然後裝載進匯總表;這部分工作可以利用資料庫特有的快速入庫命令來完成。文檔編號H04Q3/00GK101510203SQ200910024670公開日2009年8月19日申請日期2009年2月25日優先權日2009年2月25日發明者龐海東,曹曉華,捷李,沈小軍,趙懿敏申請人:南京聯創科技股份有限公司