一種交易文件勾對系統(tǒng)和方法
【技術領域】
[0001]本發(fā)明涉及交易文件勾對系統(tǒng)和方法。
【背景技術】
[0002]目前,金融、電信、互聯(lián)網等行業(yè)都會按筆核對已發(fā)生的交易明細(例如,包括交易金額、手續(xù)費、用戶名、帳號、交易發(fā)生時間等),此類過程統(tǒng)稱為交易勾對。交易勾對用于驗證不同系統(tǒng)間對交易接收以及處理的一致性,從而提升數(shù)據(jù)處理結果的可靠性。
[0003]隨著各行業(yè)的發(fā)展,業(yè)務量激增,每日發(fā)生的交易數(shù)量已經達到千萬甚至億級別,系統(tǒng)在進行自動化交易勾兌時,生產耗時越來越長。目前對兩個交易文件(例如,文件A和文件B)的明細勾對的方案包括以下幾種:
一、對A和B兩個文件中的交易記錄(流水記錄)分別排序,然后順序讀取進行記錄比對。
[0004]這種方案的缺點如下:
O文件排序比較耗時;
2)數(shù)據(jù)量極大的文件(比如100G)無法加載入內存,還需要考慮外部排序;
3)排序過程中需要較高的內存空間;
4)單進程耗時較大;
二、遍歷一個文件,并對每一條交易記錄在另一個文件中進行查找。
[0005]這種方案的缺點如下:
O雖然不需要進行排序,但是每一筆交易都要在大數(shù)據(jù)量中進行查找,耗時嚴重;
2)數(shù)據(jù)量極大的文件無法直接加載入內存,查找比較復雜;
3)如果要勾對兩個文件的全量不一致數(shù)據(jù),不僅要做A文件交易在B文件查找,還需要再做B文件記錄在A文件查找,仍然耗時;
4)單進程耗時較大
三、文件A和文件B都被裝載到數(shù)據(jù)庫表中,然后用數(shù)據(jù)庫表記錄關聯(lián)進行勾對。
[0006]這種方案的缺點如下:
O需要做文件裝載,數(shù)據(jù)量大時耗時較多;
2)需要使用數(shù)據(jù)庫,不易復用和遷移;
3)耗費存儲空間;
【發(fā)明內容】
為克服一個或多個缺點,本發(fā)明提供交易文件勾對系統(tǒng)和方法。
[0007]根據(jù)本發(fā)明的一個方面,所述交易文件包括源文件和目標文件,該系統(tǒng)包括文件分割裝置和文件勾對裝置,其中,所述文件分割裝置用于對源文件和目標文件分別進行分害I],得到由N個源子文件組成的源文件分割集合和由N個目標子文件組成的目標文件分割集合,N為大于I的自然數(shù),所述文件勾對裝置用于勾對相對應的第一源子文件和第一目標子文件,其中將該第一源子文件和第一目標子文件中的交易記錄映射到預先配置的存儲空間來進行比對。
[0008]根據(jù)本發(fā)明的一個方面,所述交易文件包括源文件和目標文件,該方法包括:對源文件和目標文件分別進行分割,得到由N個源子文件組成的源文件分割集合和由N個目標子文件組成的目標文件分割集合,N為大于I的自然數(shù),勾對相對應的第一源子文件和第一目標子文件,其中將該第一源子文件和第一目標子文件中的交易記錄映射到預先配置的存儲空間來進行比對。
[0009]本發(fā)明的一些優(yōu)勢包括以下至少一個:
本提案對不同系統(tǒng)或模塊生成的不同大數(shù)據(jù)量明細流水文件使用哈希手段拆分為多個子文件,再多進程并發(fā)處理同一哈希結果的子文件交易勾對。勾對過程中不使用數(shù)據(jù)庫,并且無需排序,僅遍歷文件交易記錄一次。
[0010]使用本系統(tǒng),與傳統(tǒng)系統(tǒng)對比,有以下優(yōu)勢:輕量級的結構,易于復用;無需使用數(shù)據(jù)庫,易于遷移;內存使用較少;勾對過程無需排序,系統(tǒng)處理性能得到高。
【附圖說明】
[0011]在參照附圖閱讀了本發(fā)明的【具體實施方式】以后,本領域技術人員將會更清楚地了解本發(fā)明的各個方面。本領域技術人員應當理解的是,這些附圖僅僅用于配合【具體實施方式】說明本發(fā)明的技術方案,而并非意在對本發(fā)明的保護范圍構成限制。
[0012]圖1是根據(jù)本發(fā)明的一個方面的交易文件勾對系統(tǒng)的示意圖。
[0013]圖2是根據(jù)本發(fā)明的一個示例的交易文件勾對操作示意圖。
[0014]圖3是根據(jù)本發(fā)明的一個方面的交易文件勾對方法的示意圖。
【具體實施方式】
[0015]下面參照附圖,對本發(fā)明的【具體實施方式】作進一步的詳細描述。在下面的描述中,為了解釋的目的,陳述許多具體細節(jié)以便提供對實施例的一個或多個方面的透徹理解。然而,對于本領域技術人員可以顯而易見的是,可以這些具體細節(jié)的較少程度來實踐各實施例的一個或多個方面。因此下面的描述不被視為局限性的,而是通過所附權利要求來限定保護范圍。
[0016]圖1是根據(jù)本發(fā)明的一個方面的交易文件勾對系統(tǒng)的示意圖。如圖1所示,交易文件勾對系統(tǒng)可以包括文件分割裝置和文件勾對裝置。文件分割裝置用于對源文件和目標文件分別進行分割,得到由N個源子文件組成的源文件分割集合和由N個目標子文件組成的目標文件分割集合,N為大于I的自然數(shù)。文件勾對裝置用于勾對相對應的第一源子文件和第一目標子文件,其中將該第一源子文件和第一目標子文件中的交易記錄映射到預先配置的存儲空間來進行比對。
[0017]圖2是根據(jù)本發(fā)明的一個示例的交易文件勾對操作示意圖。在該示例中,文件分割裝置分別對源文件和目標文件進行分割,其中將源文件分割為N個源子文件,將目標文件分割為N個目標子文件,形成源子文件集合和目標子文件集合。另一方面,針對源子文件集合和目標子文件集合,文件勾對裝置例如將源子文件I和目標子文件I進行勾對比較,將源子文件2和目標子文件2進行勾對比較,將源子文件N和目標子文件N進行勾對比較。如上所述,被進行勾對的兩個子文件中的交易記錄可以被映射到預先配置的存儲空間來進行比對,最后根據(jù)比對結果產生反饋文件。
[0018]在一個示例中,文件分割裝置根據(jù)交易記錄流水號對源文件和目標文件分別進行分割,其中源文件和目標文件中的相同的交易記錄流水號被分別映射到對應的源子文件和目標子文件。
[0019]例如,一個源文件可以包括交易記錄如下:
流水號交易時間交易金額
010123 20130515 780
029140 20130515 1290
005910 20130515 90
781311 20130515 400190
035910 20130515 5000
000911 20130515 120
117000 20130515 2980
200100 20130515 12000
600143 20130515 200
002409 20130515 10
011901 20130515 3800
430007 20130515 9100
經過文件分割后,可以生成如下源文件分割集合:
文件F_01
029140 20130515 1290 000911 20130515 120 200100 20130515 12000 002409 20130515 10 文件F_02
010123 20130515 780 035910 20130515 5000 600143 20130515 200 011901 20130515 3800 文件F_03
005910 20130515 90 781311 20130515 400190 117000 20130515 2980 430007 20130515 9100
對于目標文件也使用相同的過程??梢岳斫獾氖?,源文件和目標文件中的相同的交易記錄流水號被分別映射到對應的源子文件和目標子文件,然而在分割之后,源子文件可能包括沒有與目標子文件中的交易記錄流水號相同的交易記錄。
[0020]在一個示例中,文件分割裝置使用HASH算法將源文件和目標文件中的交易記錄分別映射到相應的源子文件和目標子文件。這里,HASH算法可以以交易記錄流水號作為映射源,以子文件作為映射結果。
[0021]在一個示例中,預先配置的存儲空間的存儲空間元素為交易記錄,文件勾對裝置被配置成:將具有相同交易記錄流水號的第一源子文件的第一交易記錄和第一目標子文件的第一交易記錄映射到存儲空間的相同的位置來進行比對。這里,文件勾對裝置也可以使用HASH算法將具有相同交易記錄流水號的第一源子文件的第一交易記錄和第一目標子文件的第一交易記錄映射到存儲空間的相同的位置。
[0022]在另一個示例中,文件勾對裝置被配置成:
讀取第一源子文件中的交易記錄,根據(jù)交易記錄流水號將交易記錄映射到存儲空間的相應的位置,在該位置存儲交易記錄,
讀取第一目標子文件中的交易記錄,根據(jù)交易記錄流水號將交易記錄映射到存儲空間的相應的位置,將交易記錄的值取反后累加到該相應的位置。
[0023]如上所述,具有相同交易記錄流水號的第一源子文件的第一交易記錄和第一目標子文件的第一交易記錄將具有相同的位置,因此將該相同位置的源子文件中的交易記錄的值和目標子文件中的交易記錄的值相加后,將得到的結果存儲在該相同位置,作為該相同位置所指示的交易記錄流水號的勾對結果。
[0024]根據(jù)本發(fā)明的一些方面的交易文件勾對系統(tǒng)還可以包括反饋裝置,反饋裝置判斷文件勾對裝置完成勾對后的存儲空間的存儲空間元素的值是否為0,其中將存儲空間元素的值不為O的交易記錄寫入反饋文件,作為勾對不成功的交易記錄。例如,源子文件中的交易記錄交易金額的值為100,目標子文件中的交易記錄的交易金額的值為120,則根據(jù)上述的示例,特定存儲位置存儲的初始值為100,將目標子文件中的交易記錄的交易金額的值120取反后為-120,最后該特定存儲位置的值為-20,其表示交易勾對失敗。
[0025]為增加勾對效率,文件勾對裝置可以使用M個進程分別處理N個源子文件和N個目標子文件中的相對應的源子文件和目標子文件的勾對,M為大于I的自然數(shù)。在一個示例中,M可以等于N。
[0026]上述的存儲空間可以例如是內存,優(yōu)選的為存儲空間是內存中的數(shù)組