一種多通道高速數據比對方法
2023-06-12 01:59:31 3
專利名稱:一種多通道高速數據比對方法
技術領域:
本發明涉及數據比對,特別涉及一種多通道的高速數據比對方法及裝置,屬於信息技術領域。
背景技術:
隨著信息技術的飛速發展,海量信息的分析和處理成為企業的重要需求,相關的各類軟體系統開始普遍應用於各行業當中。但實際中由於社會信息的急速膨脹,以及大量無關數據的出現,使得用戶如何在龐大的信息群中快速發現有價值情報,完成海量信息的數據比對成為方案中一個不可缺少的環節。為了解決上述問題,現有的數據比對技術主要有以下幾種方法一種方法是採用資料庫比對方法,先將需要比對的原始數據和被比對的業務數據保存到資料庫當中,然後執行SQL腳本,進行表與表之間的連結操作,再將得到的結果集進行分析,這種方法的優點是比較邏輯由資料庫完成,正確性不用擔心,程序實現簡單,缺點是操作繁瑣,實時性差,優化餘地小,需要將所有數據導入到資料庫中,如果數據量很大的話,導入數據和比較都需要花費很長的時間並且多了不必要的磁碟IO過程,浪費系統資源。另一種方法是基於內存技術的比對方法,將原始數據和業務數據讀入內存,然後利用各類查找算法進行逐一比對,這種方法的優點是比對速度快,比對算法可優化,但缺點是過分強調算法優化,沒有充分使用各類硬體資源,使得總體效率提升較為艱難,不符合當今企業資源條件。在面對當前動輒千萬上億的海量信息處理需求中,上述兩種比對方法都不容樂觀。因此,現有技術有待於完善和發展。
發明內容
本發明的目的在於克服現有技術中存在的問題,提供了一種新的多通道高速數據比對方法和裝置,本發明能夠在數據比對時充分利用硬體資源並提高數據比對的效率。為了解決上述技術問題,本發明採用了如下技術方案一種多通道高速數據比對方法,包含以下處理步驟a)讀取業務數據,在內存中生成全局被比對數據結構,並根據配置文件初始化比對通道;b)持續讀取原始數據,在內存中形成比對數據塊,並將比對數據塊分發至各個比對通道的塊隊列中;c)在每個比對通道中,逐個讀取塊隊列中的比對數據塊,進行數據比對,輸出比對結果。在上述數據比對方法的一種實施例中,對內存中的全局被比對數據進行散列。在上述數據比對方法的一種實施例中,根據硬體資源情況,可通過調整步驟a)所述配置文件實現比對通道數量的調整。在上述數據比對方法的一種實施例中,所述業務數據和原始數據的數據格式包括文本數據格式、資料庫表數據格式、或來源於網絡接口的結構化數據格式;其中,優選文本數據格式。在上述數據比對方法的一種實施例中,還包含以下處理步驟在步驟b)中,監測各個比對通道中的塊隊列長度,以判斷比對通道壓力,然後在分發數據塊時平衡各個通道的負荷。在上述數據比對方法的一種實施例中,還包含以下處理步驟各個比對通道緩存最近中標的設定量的被比對數據,實施比對時,優先對緩存中的數據進行比對,未中標時再與全局被比對數據進行數據比對。此外,還可以為比對通道中緩存的被比對數據進行生命周期維護,所述維護包括i.為每個新緩存的被比對數據設定超時時間; 在每次命中緩存的被比對數據時更新其超時時間;
iii.採用獨立線程定期檢查並清理超時的被比對數據。在上述數據比對方法的一種實施例中,還包含以下處理步驟根據業務數據源情況對全局被比對數據結構進行定時或不定時的更新。本發明還公開了一種多通道高速數據比對裝置,包含全局數據管理模塊、比對數據管理模塊和比對通道管理模塊,其中全局數據管理模塊讀取業務數據,生成全局被比對數據;比對數據管理模塊持續將原始數據讀入內存,並分發到各個比對通道;比對通道管理模塊逐條讀取被比對數據,與高速緩存和全局被比對數據比對,輸出比對結果。與現有技術相比,本發明的有益效果在於本發明首先讀取業務數據,生成全局被比對數據,初始化比對通道。進行比對時, 持續將原始數據讀入內存,分發到各個通道,然後在每個通道逐條讀取比對數據,完成包括高速緩存和全局被比對數據的兩級比對過程,輸出比對結果。如此,將業務數據經過處理生成全局被比對數據,根據硬體資源情況初始化多個比對通道,持續將原始數據讀入內存形成比對數據,根據通道壓力狀況分發,比對通道逐條讀取比對數據,與高速緩存和全局被比對數據進行數據比對,可以充分利用硬體資源,並提高數據比對效率。
圖1是實施例的比對方法流程圖;圖2是實施例的比對裝置示意圖。
具體實施例方式下面通過實施例結合附圖對本發明進行詳細說明。本實施例提供一種多通道高速數據比對裝置,如圖2所示,包含全局數據管理模塊、比對數據管理模塊和比對通道管理模塊,其中全局數據管理模塊讀取業務數據,生成全局被比對數據;比對數據管理模塊持續將原始數據讀入內存,並分發到各個比對通道; 比對通道管理模塊逐條讀取被比對數據,與高速緩存和全局被比對數據比對,輸出比對結^ ο該比對裝置對應的比對方法可以按如下處理步驟進行a)讀取業務數據,在內存中生成全局被比對數據結構,並根據配置文件初始化比對通道;b)持續讀取原始數據,在內存中形成比對數據塊,並將比對數據塊分發至各個比對通道的塊隊列中;c)在每個比對通道中,逐個讀取塊隊列中的比對數據塊,進行數據比對,輸出比對結果。下面對上述步驟進行詳細說明。如圖1所示,在步驟Sl中,首先讀取業務數據,在內存中生成全局被比對數據結構。在本例中,全局被比對數據結構設置為資料庫表數據結構並進行散列,根據具體業務不同定義各自的業務數據結構和全局被比對數據結構。將業務數據設置為資料庫表數據結構,可以提高數據訪問的易操作性和讀入內存的速度,提高方法兼容性和比對效率。資料庫格式不受資料庫類型的限制,當然,也可以是文本格式或其他格式的數據。在步驟S2中,讀取配置文件,初始化比對通道管理模塊,並初始化比對通道1至N。 其中,配置文件由用戶根據硬體資源情況配置,以適應不同硬體環境的比對需要,可以根據實際情況隨時修改。另一方面,如果讀取配置文件及初始化過程出現錯誤,則記錄在系統錯誤日誌中, 結束比對程序。在步驟S3中,讀取原始數據,在內存中形成比對數據塊,若原始數據源發生錯誤或讀取原始數據反覆出現錯誤,則記錄在系統錯誤日誌中,結束比對程序。在步驟S4中,根據各通道壓力狀態,將數據塊分發到通道1至N。在本例中,通過監測各通道隊列長度的方法來判斷比對通道壓力狀況,以在實施被比對數據分發時實現多通道的壓力均衡,並提高整體比對速度。
在步驟S5中,每個通道逐條讀取隊列中的比對數據,首先與高速緩存中的被比對數據繼續比對,若比對成功,則直接輸出比對結果。若在高速緩存中無匹配的被比對數據, 則再與全局被比對數據結構進行比對,比對成功則輸出比對結果,並將匹配的被比對數據加入本通道的高速緩存。若仍不成功則讀取隊列中的下一條比對數據,在隊列中無比對數據時暫時掛起等待,新比對數據進入時重新激活。在本例中,需要維護高速緩存中被比對數據的生命周期,包括以下處理i.為每個新加入高速緩衝的被比對數據設定超時時間;ii.每次命中高速緩存的被比對數據時更新其超時時間;iii.採用獨立線程定期檢查、清理超時的被比對數據。在步驟S6中,被比對數據讀取完畢,比對程序結束。在上述任意步驟中,若用戶選擇退出,或接收到外部合法結束命令,則直接結束比對程序。應當理解的是,對於本發明所屬技術領域的普通技術人員來說,在不脫離本發明構思的前提下,可以做出各種可能的等同或替換,而所有這些改變或替換都應屬於本發明的保護範圍。
權利要求
1.一種多通道高速數據比對方法,其包括下列步驟a)讀取業務數據,在內存中生成全局被比對數據結構,並根據配置文件初始化比對通道;b)持續讀取原始數據,在內存中形成比對數據塊,並將比對數據塊分發至各個比對通道的塊隊列中;c)在每個比對通道中,逐個讀取塊隊列中的比對數據塊,進行數據比對,輸出比對結: O
2.如權利要求1所述的多通道高速數據比對方法,其特徵在於,各個比對通道緩存最近中標的設定量的被比對數據,實施比對時,優先對緩存中的數據進行比對,未中標時再與全局被比對數據進行數據比對。
3.如權利要求2所述的多通道高速數據比對方法,其特徵在於,為比對通道中緩存的被比對數據進行生命周期維護,所述維護包括i.為每個新緩存的被比對數據設定超時時間; .在每次命中緩存的被比對數據時更新其超時時間; iii.採用獨立線程定期檢查並清理超時的被比對數據。
4.如權利要求1所述的多通道高速數據比對方法,其特徵在於,在步驟a)中,對所述全局被比對數據進行散列。
5.如權利要求1所述的多通道高速數據比對方法,其特徵在於,通過調整步驟a)所述配置文件實現比對通道數量的調整。
6.如權利要求1所述的多通道高速數據比對方法,其特徵在於,所述業務數據和所述原始數據的數據格式包括文本格式、資料庫表格式、或來源於網絡接口的結構化數據格式。
7.如權利要求1所述的多通道高速數據比對方法,其特徵在於,在步驟b)中,監測各個比對通道中的塊隊列長度,在分發數據塊時平衡各個通道的負荷。
8.如權利要求1所述的多通道高速數據比對方法,其特徵在於,根據業務數據源情況對全局被比對數據結構進行定時或不定時的更新。
9.一種多通道高速數據比對裝置,其特徵在於,所述裝置包括全局數據管理模塊、比對數據管理模塊和比對通道管理模塊,其中全局數據管理模塊讀取業務數據,生成全局被比對數據;比對數據管理模塊持續將原始數據讀入內存,並分發到各個比對通道;比對通道管理模塊逐條讀取被比對數據,與高速緩存和全局被比對數據比對,輸出比對結果。
全文摘要
本發明涉及一種多通道的高速數據比對方法及其裝置,屬於信息技術領域。一種多通道高速數據比對方法,其包括下列步驟a)讀取業務數據,在內存中生成全局被比對數據結構,並根據配置文件初始化比對通道;b)持續讀取原始數據,在內存中形成比對數據塊,並將比對數據塊分發至各個比對通道的塊隊列中;c)在每個比對通道中,逐個讀取塊隊列中的比對數據塊,進行數據比對,輸出比對結果。比對通道逐條讀取比對數據,與高速緩存和全局被比對數據進行數據比對,可以充分利用硬體資源,並提高數據比對效率。
文檔編號G06F17/30GK102375886SQ201110324830
公開日2012年3月14日 申請日期2011年10月21日 優先權日2011年10月21日
發明者廉喆, 翁越龍 申請人:北京銳安科技有限公司