專利名稱:一種數(shù)據(jù)比對的方法及裝置的制作方法
技術領域:
本發(fā)明涉及電信技術領域,特別涉及一種數(shù)據(jù)的比對方法及裝置。
背景技術:
當前,隨著通訊業(yè)的不斷發(fā)展,相關軟件系統(tǒng)也越來越復雜。軟件系 統(tǒng)一般都包含許多的子系統(tǒng)和外圍系統(tǒng),為了保證這些系統(tǒng)數(shù)據(jù)的 一致性, 我們經(jīng)常需要比較各系統(tǒng)間的同類數(shù)據(jù),做相應的處理,使其保持一致, 以保證整個系統(tǒng)的正常運4亍。
在通訊行業(yè)內(nèi),需要比較的這類數(shù)據(jù)量通常十分龐大,采用一般的文
本比較工具來比對很容易出錯,目前業(yè)內(nèi)也有很多其他比對方法
采用第三方工具,諸如ue、 merge等工具軟件結(jié)合使用來比對;在數(shù) 據(jù)庫中通過存儲過程采用游標的方式來比對;采用hash表存儲數(shù)據(jù)的方式 來比對。
下面首先對幾個術語進行說明
Hash表 一種常用的數(shù)據(jù)存儲結(jié)構(gòu),又叫哈希表或散列表。
線性表 一種常用的數(shù)據(jù)存儲結(jié)構(gòu),其邏輯結(jié)構(gòu)簡單,便于實現(xiàn)和操作。
Merge —種文本比4交工具。
上述方法1用來比較小數(shù)據(jù)量的文件數(shù)據(jù)時還可以勝任,但如果用來 處理大量數(shù)據(jù)的時候,往往操作者會顧此失彼,產(chǎn)生很多錯誤,導致比對 效率十分低下;方法2所采用的方式是借助數(shù)據(jù)庫的特性來處理、完成比 對工作,這不失為一個簡便的處理方式,但是其缺點正是數(shù)據(jù)庫本身固有 且無法克服的對系統(tǒng)軟、硬件環(huán)境的依賴性高,處理速度也很慢;方法 3是當前被普遍采用的一種比對方法,相對于前面的兩種方式,其擁有處 理效率較高的優(yōu)勢,但是經(jīng)過測試發(fā)現(xiàn)其在處理海量數(shù)據(jù)的時候,對計算 機的軟、硬件的要求很高,對內(nèi)存的占用率特別大??梢?,現(xiàn)有技術中的數(shù)據(jù)比對方法,或是比對效率低下,或是雖然效 率較高,但對系統(tǒng)軟、硬件環(huán)境的依賴性高,仍有待改進。
發(fā)明內(nèi)容
本發(fā)明提供了 一種數(shù)據(jù)比對的方法與裝置,能夠在數(shù)據(jù)比對時提高數(shù) 據(jù)比對的效率。
為了解決上述技術問題,本發(fā)明采用了如下技術方案 一種數(shù)據(jù)的比對方法,包含以下處理步驟
1、 采集原始數(shù)據(jù),生成比對數(shù)據(jù)和被比對數(shù)據(jù);
2、 將比對數(shù)據(jù)讀入內(nèi)存;
3、 逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)比較,輸出比較結(jié)果。
在上述數(shù)據(jù)比對方法的一種實施例中,對內(nèi)存中所述比對數(shù)據(jù)進行快 速排序。
在上述數(shù)據(jù)比對方法的一種實施例中,在內(nèi)存中采用緊湊的線性表結(jié) 構(gòu)存儲所述比對數(shù)據(jù)。
在上述數(shù)據(jù)比對方法的一種實施例中,所述原始數(shù)據(jù)的數(shù)據(jù)格式包括 文本數(shù)據(jù)格式、或數(shù)據(jù)庫表數(shù)據(jù)格式。
在上述數(shù)據(jù)比對方法的一種實施例中,所述的比對數(shù)據(jù)和被對比數(shù)據(jù) 的數(shù)據(jù)格式是文本數(shù)據(jù)格式。
在上述數(shù)據(jù)比對方法的一種實施例中,還包含以下處理步驟采用讀 取配置文件的方式對來比對結(jié)果做出相應的處理。
在上述數(shù)據(jù)比對方法的一種實施例中,還包含以下處理步驟設置用 于記錄數(shù)據(jù)比對過程中信息的日志文件。
本發(fā)明還公開了 一種數(shù)據(jù)比對裝置,包含數(shù)據(jù)提取模塊和數(shù)據(jù)比對模 塊,其中
數(shù)據(jù)提取模塊采集原始數(shù)據(jù),生成比對數(shù)據(jù)和被比對數(shù)據(jù); 數(shù)據(jù)比對模塊將比對數(shù)據(jù)讀入內(nèi)存;
數(shù)據(jù)比對模塊逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)比較,輸出 比較結(jié)果。與現(xiàn)有技術相比,本發(fā)明的有益效果在于
本發(fā)明首先采集原始數(shù)據(jù),生成比對和被比對的兩部分數(shù)據(jù)。進行比 對時先將比對數(shù)據(jù)讀入內(nèi)存,然后逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對 數(shù)據(jù)比較,輸出比較結(jié)果。如此,原始數(shù)據(jù)經(jīng)過處理生成比對和被比對數(shù) 據(jù),將比對數(shù)據(jù)讀入內(nèi)存,逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)比 較,可以提高數(shù)據(jù)比對效率。
圖1示例性的描述了本發(fā)明的比對流程圖2示例性的描述了一般數(shù)據(jù)存儲結(jié)構(gòu)和緊湊lt據(jù)存儲結(jié)構(gòu)的對比, 其中圖2A為 一般數(shù)據(jù)存儲結(jié)構(gòu),圖2B為緊湊數(shù)據(jù)存儲結(jié)構(gòu);
圖3示例性的描述了本發(fā)明的結(jié)構(gòu)圖4示例性的描述了本發(fā)明的數(shù)據(jù)存儲鏈表圖5示例性的描述了本發(fā)明的尾號線性具體實施例方式
下面結(jié)合附圖對本發(fā)明的具體實施方式
進行詳細說明
本發(fā)明 一個實施例的數(shù)據(jù)比對方法,其比對的總體流程可以按如下處 理步驟進行
1、 采集原始數(shù)據(jù),生成比對數(shù)據(jù)和被比對數(shù)據(jù);
2、 將比對凄t據(jù)讀入內(nèi)存;
3、 逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)比較,輸出比較結(jié)果。
下面對上述步驟進行詳細說明。如圖l所示,在步驟S1中,首先采集 原始數(shù)據(jù),生成比對數(shù)據(jù)和被比對數(shù)據(jù)。在本例中,比對數(shù)據(jù)和被對比數(shù) 據(jù)的數(shù)據(jù)格式設置為文本數(shù)據(jù),可以將比對數(shù)據(jù)和被比對數(shù)據(jù)置入到文本 文件中,每條數(shù)據(jù)在該文本文件中占 一行,其存儲格式為"數(shù)據(jù)I比對參數(shù),,, 其中'T,為分隔符,比對參數(shù)由用戶根據(jù)自己的需求自行定義。將比對數(shù)據(jù)和被比對數(shù)據(jù)格式設置為文本數(shù)據(jù),可以提高數(shù)據(jù)讀入內(nèi)存的速度,提 高比對效率。原始數(shù)據(jù)的數(shù)據(jù)格式可以包括文本數(shù)據(jù)才各式、或數(shù)據(jù)庫表數(shù) 據(jù)格式,其中,數(shù)據(jù)庫格式不受數(shù)據(jù)庫類型的限制,當然,也可以是其他 格式的數(shù)據(jù)。
在步驟S2中,進行配置文件的讀耳又和日志文件的初始化。其中,配置 文件由用戶進行配置,以根據(jù)比對結(jié)果執(zhí)行一些相應的處理,可以根據(jù)用 戶的需要隨時修改。配置文件中可以包含一個或多個配置項,每一個配置 項的一般格式為比對結(jié)果l動作,即在滿足某種比對結(jié)果時,則執(zhí)行該比 對結(jié)果對應的動作。通過配置文件可以快速地修改對比對結(jié)果的要求和相 應的執(zhí)行處理,實現(xiàn)了比較復雜的邏輯,令操作簡便、快捷。
曰志文件用來記錄整個數(shù)據(jù)比對過程中的信息,包括系統(tǒng)錯誤曰志、 操作錯誤日志、操作日志等,用戶可以方便快捷地在日志文件找到自己所 需要的信息,以便對各種錯誤信息、操作及對比結(jié)果進行跟蹤。
另一方面,讀取配置文件時出現(xiàn)錯誤,則將失敗結(jié)果記錄在系統(tǒng)錯誤 曰志中,結(jié)束比對程序。
在步驟S3中,將比對數(shù)據(jù)讀入內(nèi)存,若在讀取某一個比對數(shù)據(jù)時出 現(xiàn)錯誤,則將錯誤記錄在操作錯誤日志中,轉(zhuǎn)而讀取下一個比對數(shù)據(jù)。
在本例中,將比對數(shù)據(jù)讀入內(nèi)存后,對比對數(shù)據(jù)在內(nèi)存中進行快速排 序,以提高查找速度。
此外,在內(nèi)存中,可以采用緊湊的線性表結(jié)構(gòu)來存儲比對數(shù)據(jù)。緊湊 的線性表存儲結(jié)構(gòu)如圖2B所示,圖中,示例了三個數(shù)據(jù)"13311111234"、 "13311111235"、 "13311111236",每個數(shù)據(jù)分成若干數(shù)據(jù)小段存儲,即由 圖示的兩個箭頭分成的3個數(shù)據(jù)小段,從左至右稱為頭段、中段、尾段。 上述3個數(shù)據(jù)的頭段和中段相同,而只有尾段不同,因此,這些數(shù)據(jù)在存 儲時僅需要將前面相同的數(shù)據(jù)小段(頭段和中段)存儲一次,不同的尾段 數(shù)據(jù)存儲在尾段線性表中。和一般數(shù)據(jù)存儲結(jié)構(gòu)如圖2A相比,緊湊線性表 結(jié)構(gòu)減少了數(shù)據(jù)冗余,節(jié)約了內(nèi)存空間,減少了對系統(tǒng)資源的占用。
在步驟S4中,逐條讀取被比對數(shù)據(jù),若讀取某一個被比對數(shù)據(jù)時出 現(xiàn)錯誤,則記錄入操作錯誤日志中,轉(zhuǎn)而讀耳又下一個浮皮比對數(shù)據(jù)。
逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)做比較,若在內(nèi)存中找不到該被比對數(shù)據(jù),則記錄入操作錯誤日志中,繼續(xù)讀取下一個被比對數(shù)據(jù)。
若在內(nèi)存中找到該一皮比對數(shù)據(jù),則進行被比對教:據(jù)中和比對數(shù)據(jù)中比對參 數(shù)的比較,并將比對結(jié)果與配置文件中的比對結(jié)果做比較,如果與配置文 件的某條比對結(jié)果相符,則按照配置文件中該條比對結(jié)果相對應的動作對 此被對比數(shù)據(jù)進行處理,將此被對比數(shù)據(jù)與處理結(jié)果記錄在操作日志中。 做比較時按上述緊湊線性表格式逐段比較,先比對頭段,頭段一致,再比 對中段,中段一致,再繼續(xù)比較尾段,直到比較完尾段數(shù)據(jù)。若前一比對 不一致,則不需要再比較后面的數(shù)據(jù)段,直接讀取下一個被比對數(shù)據(jù)。 在步驟S5中,被對比數(shù)據(jù)讀取完畢,比對程序結(jié)束。
在以上所述任意步驟中,若用戶選擇退出,則直接結(jié)束比對程序。 本發(fā)明示例的一種數(shù)據(jù)比對裝置,如圖3所示,包含數(shù)據(jù)提取模塊和 數(shù)據(jù)比對模塊,其中數(shù)據(jù)提取模塊采集原始數(shù)據(jù),生成比對數(shù)據(jù)和被比 對數(shù)據(jù);數(shù)據(jù)比對模塊將比對數(shù)據(jù)讀入內(nèi)存;數(shù)據(jù)比對模塊逐條讀取被比 對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)比較,輸出比較結(jié)果。該數(shù)據(jù)比對裝置的工
作方式類似于前述的凄t據(jù)比對方法,不再贅述。
下面以聯(lián)通用戶號碼處理為實例具體說明比對流程
步驟101:從數(shù)據(jù)庫A中提取數(shù)據(jù),生成比對數(shù)據(jù),以文本形式輸出, 格式為"號碼l狀態(tài)",即比對數(shù)據(jù)是聯(lián)通用戶號碼,比對參數(shù)是各號碼的 狀態(tài)。在該輸出的文本中,每條記錄占一行,其中'T,為分隔符;狀態(tài)以 0、 l表示,O表示用戶處于正常狀態(tài),l表示用戶處于停機狀態(tài)。
步驟102,重復上述操作從另一數(shù)據(jù)庫B中提取數(shù)據(jù),生成的被比對 數(shù)據(jù)以文本形式輸出,格式同上;
步驟201:讀取配置文件,初始化日志文件;若讀取配置文件出現(xiàn)4昔 誤,則將失敗結(jié)果記錄在系統(tǒng)錯誤日志中,結(jié)束比對程序。
在此實施例中,針對聯(lián)通用戶號碼狀態(tài)作如下配置1:0:90001,其 中比對結(jié)果為1:0,表示此號碼用戶在比對數(shù)據(jù)中處于正常狀態(tài),在被比 對數(shù)據(jù)中處于停機狀態(tài),90001表示注銷此號碼用戶的動作。此配置文件 對比對結(jié)果的具體要求是,如果一個用戶號碼在比對數(shù)據(jù)中為正常狀態(tài), 在被比對數(shù)據(jù)中處于停機狀態(tài),則注銷該用戶號碼。
步驟202:將比對數(shù)據(jù)讀入內(nèi)存,若在讀取某一個比對數(shù)據(jù)時出現(xiàn)錯誤,則記錄入操作錯誤日志中,轉(zhuǎn)而讀取下一個比對數(shù)據(jù)。
步驟203:將比對數(shù)據(jù)讀入內(nèi)存后進行快速排序,以提高查找速度; 步驟204:數(shù)據(jù)讀入內(nèi)存后,按照緊湊的線性表結(jié)構(gòu)儲存數(shù)據(jù);數(shù)據(jù) 存儲鏈表如圖4所示先將手機號碼分3位的前綴數(shù)、4位號段數(shù)、4位尾 號,存儲時前綴數(shù)組以數(shù)據(jù)前綴為下標,用于存儲號段數(shù)組的首地址,號 段數(shù)組以號段數(shù)為下標,用于存放尾號鏈表的首地址,尾號線性列表用于 存放尾號及比對參數(shù)。緊湊的線性表結(jié)構(gòu)如圖2B所示,以手機號碼為例, 13311111234、 13311111235、 13311111236這三個手才幾號碼在存J渚時,相 同的前3位和中間4位只需要存儲一次,分別存儲在前綴數(shù)組和號段數(shù)組 中,不同的后4位則存儲在尾號線性表中。尾號線性列表說明如圖5所示 USERINFO-T是一個存放4位號碼和1位狀態(tài)的結(jié)構(gòu)。
步驟301:讀取被比對數(shù)據(jù),若讀取某一個被比對數(shù)據(jù)時出現(xiàn)錯誤, 則記錄入操作錯誤日志中,繼續(xù)讀取下一個被比對數(shù)據(jù)。
讀取被比對數(shù)據(jù),分離用戶號碼,與內(nèi)存中的比對數(shù)據(jù)做比對,如果 找不到該用戶號碼,則記錄入搡作錯誤日志中,繼續(xù)讀if又下一個被比對數(shù) 據(jù);如果在內(nèi)存中找到該用戶號碼,則查看被比對數(shù)據(jù)中和比對數(shù)據(jù)中的 狀態(tài)數(shù)據(jù),并與配置文件中的比對結(jié)果參數(shù)做比較,如果符合比對結(jié)果的 要求,即此用戶號碼在比對數(shù)據(jù)中處于正常狀態(tài),在被比對數(shù)據(jù)中處于停 機狀態(tài),則對該用戶號碼做注銷該用戶號碼的處理,并將該用戶號碼和處 理結(jié)果記錄入操作日志中,然后繼續(xù)讀取下一個被比對數(shù)據(jù)。被比對數(shù)據(jù) 中的用戶號碼與比對數(shù)據(jù)的用戶號碼進行比對時,先比對手機號碼前三位, 前三位一致,再比對手才幾號碼中間四位,中間四位一致,再繼續(xù)比對后四 位及狀態(tài)。如果前一比對不一致,則不需要再比較后面的數(shù)據(jù)段了,直接 讀取下一個被比對的用戶號碼。
步驟302,被比對數(shù)據(jù)讀取完畢,結(jié)束程序。 在以上任一步驟中,若用戶選擇退出,則直接結(jié)束比對程序。 本發(fā)明的數(shù)據(jù)比對方法和裝置,針對數(shù)據(jù)的比較,采用了先采集原始 數(shù)據(jù),生成比對數(shù)據(jù)與被比對數(shù)據(jù),然后將比對數(shù)據(jù)讀入內(nèi)存,采用緊湊 的線性表結(jié)構(gòu)存儲數(shù)據(jù)并快速排序,逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比 對數(shù)據(jù)比較,輸出比較結(jié)果,因而解決了現(xiàn)有比對技術中比對時間、比對 效率和比對依賴軟、硬件環(huán)境的相互矛盾,減少了數(shù)據(jù)比對時對軟、硬件 環(huán)境的依賴,節(jié)約了內(nèi)存空間,減少對系統(tǒng)資源的占用,提高了比對效率。明,但這只是為便于理解而舉的實例,不應認為本發(fā)明的具體實施只局限 于這些說明。對于本發(fā)明所屬技術領域的普通技術人員來說,在不脫離本 發(fā)明構(gòu)思的前提下,可以做出各種可能的等同改變或替換,這些改變或替 換都應屬于本發(fā)明的保護范圍。
權利要求
1、一種數(shù)據(jù)的比對方法,其特征在于,包含以下處理步驟(1)采集原始數(shù)據(jù),生成比對數(shù)據(jù)和被比對數(shù)據(jù);(2)將比對數(shù)據(jù)讀入內(nèi)存;(3)逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)比較,輸出比較結(jié)果。
2、 如權利要求l所述的數(shù)扭比對方法,其特征在于,在所述步驟(2)之后對內(nèi)存中所述比對數(shù)據(jù)進行快速排序。
3、 如權利要求1所述的數(shù)據(jù)比對方法,其特征在于,在內(nèi)存中采用緊湊的線性表結(jié)構(gòu)存儲所述比對數(shù)據(jù)。
4、 如權利要求1所述的數(shù)據(jù)比對方法,其特征在于,所述原始數(shù)據(jù)的數(shù)據(jù)格式包括文本數(shù)據(jù)格式、或數(shù)據(jù)庫表數(shù)據(jù)格式。
5、 如權利要求1所述的數(shù)據(jù)比對方法,其特征在于,所述比對數(shù)據(jù)和被對比數(shù)據(jù)的數(shù)據(jù)格式是文本數(shù)據(jù)格式。
6、 如權利要求1所述的數(shù)據(jù)比對方法,其特征在于,還包含以下處理步驟采用讀取配置文件的方式來對比對結(jié)果做出相應的處理。
7、 如權利要求1所述的數(shù)據(jù)比對方法,其特征在于,還包含以下處理步驟設置用于記錄翁:據(jù)比對過程中信息的日志文件。
8、 一種數(shù)據(jù)的比對裝置,其特征在于,包含數(shù)據(jù)提取模塊和數(shù)據(jù)比對模塊,其中數(shù)據(jù)提取模塊采集原始數(shù)據(jù),生成比對數(shù)據(jù)和被比對數(shù)據(jù);數(shù)據(jù)比對模塊將比對數(shù)據(jù)讀入內(nèi)存;數(shù)據(jù)比對模塊逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)比較,輸出比較結(jié)果。
9、 一種數(shù)據(jù)的比對裝置,其特征在于,數(shù)據(jù)比對模塊對內(nèi)存中的所述比對數(shù)據(jù)進行快速排序。
10、 一種數(shù)據(jù)的比對裝置,其特征在于,數(shù)據(jù)比對模塊在內(nèi)存中采用緊湊的線性表結(jié)構(gòu)存儲所述比對數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)比對的方法和裝置,所述方法包括以下處理步驟1.采集原始數(shù)據(jù),生成比對和被比對數(shù)據(jù);2.將比對數(shù)據(jù)讀入內(nèi)存;3.逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)比較,輸出比較結(jié)果。所述裝置包括包含數(shù)據(jù)提取模塊和數(shù)據(jù)比對模塊,其中數(shù)據(jù)提取模塊采集原始數(shù)據(jù),生成比對和被比對數(shù)據(jù);數(shù)據(jù)比對模塊將比對數(shù)據(jù)讀入內(nèi)存,逐條讀取被比對數(shù)據(jù),與內(nèi)存中的比對數(shù)據(jù)比較,輸出比較結(jié)果。本發(fā)明減少了數(shù)據(jù)比對對軟、硬件環(huán)境的依賴,提高了比對效率。
文檔編號G06F17/30GK101582081SQ20091010774
公開日2009年11月18日 申請日期2009年5月25日 優(yōu)先權日2009年5月25日
發(fā)明者華國棟, 飛 楊, 林科鏘 申請人:中興通訊股份有限公司