一种数据比对的方法及装置的制作方法

文档序号:6576354阅读:185来源:国知局
专利名称:一种数据比对的方法及装置的制作方法
技术领域
本发明涉及电信技术领域,特别涉及一种数据的比对方法及装置。
背景技术
当前,随着通讯业的不断发展,相关软件系统也越来越复杂。软件系 统一般都包含许多的子系统和外围系统,为了保证这些系统数据的 一致性, 我们经常需要比较各系统间的同类数据,做相应的处理,使其保持一致, 以保证整个系统的正常运4亍。
在通讯行业内,需要比较的这类数据量通常十分庞大,采用一般的文
本比较工具来比对很容易出错,目前业内也有很多其他比对方法
采用第三方工具,诸如ue、 merge等工具软件结合使用来比对;在数 据库中通过存储过程采用游标的方式来比对;采用hash表存储数据的方式 来比对。
下面首先对几个术语进行说明
Hash表 一种常用的数据存储结构,又叫哈希表或散列表。
线性表 一种常用的数据存储结构,其逻辑结构简单,便于实现和操作。
Merge —种文本比4交工具。
上述方法1用来比较小数据量的文件数据时还可以胜任,但如果用来 处理大量数据的时候,往往操作者会顾此失彼,产生很多错误,导致比对 效率十分低下;方法2所采用的方式是借助数据库的特性来处理、完成比 对工作,这不失为一个简便的处理方式,但是其缺点正是数据库本身固有 且无法克服的对系统软、硬件环境的依赖性高,处理速度也很慢;方法 3是当前被普遍采用的一种比对方法,相对于前面的两种方式,其拥有处 理效率较高的优势,但是经过测试发现其在处理海量数据的时候,对计算 机的软、硬件的要求很高,对内存的占用率特别大。可见,现有技术中的数据比对方法,或是比对效率低下,或是虽然效 率较高,但对系统软、硬件环境的依赖性高,仍有待改进。

发明内容
本发明提供了 一种数据比对的方法与装置,能够在数据比对时提高数 据比对的效率。
为了解决上述技术问题,本发明采用了如下技术方案 一种数据的比对方法,包含以下处理步骤
1、 采集原始数据,生成比对数据和被比对数据;
2、 将比对数据读入内存;
3、 逐条读取被比对数据,与内存中的比对数据比较,输出比较结果。
在上述数据比对方法的一种实施例中,对内存中所述比对数据进行快 速排序。
在上述数据比对方法的一种实施例中,在内存中采用紧凑的线性表结 构存储所述比对数据。
在上述数据比对方法的一种实施例中,所述原始数据的数据格式包括 文本数据格式、或数据库表数据格式。
在上述数据比对方法的一种实施例中,所述的比对数据和被对比数据 的数据格式是文本数据格式。
在上述数据比对方法的一种实施例中,还包含以下处理步骤采用读 取配置文件的方式对来比对结果做出相应的处理。
在上述数据比对方法的一种实施例中,还包含以下处理步骤设置用 于记录数据比对过程中信息的日志文件。
本发明还公开了 一种数据比对装置,包含数据提取模块和数据比对模 块,其中
数据提取模块采集原始数据,生成比对数据和被比对数据; 数据比对模块将比对数据读入内存;
数据比对模块逐条读取被比对数据,与内存中的比对数据比较,输出 比较结果。与现有技术相比,本发明的有益效果在于
本发明首先采集原始数据,生成比对和被比对的两部分数据。进行比 对时先将比对数据读入内存,然后逐条读取被比对数据,与内存中的比对 数据比较,输出比较结果。如此,原始数据经过处理生成比对和被比对数 据,将比对数据读入内存,逐条读取被比对数据,与内存中的比对数据比 较,可以提高数据比对效率。


图1示例性的描述了本发明的比对流程图2示例性的描述了一般数据存储结构和紧凑lt据存储结构的对比, 其中图2A为 一般数据存储结构,图2B为紧凑数据存储结构;
图3示例性的描述了本发明的结构图4示例性的描述了本发明的数据存储链表图5示例性的描述了本发明的尾号线性具体实施例方式
下面结合附图对本发明的具体实施方式
进行详细说明
本发明 一个实施例的数据比对方法,其比对的总体流程可以按如下处 理步骤进行
1、 采集原始数据,生成比对数据和被比对数据;
2、 将比对凄t据读入内存;
3、 逐条读取被比对数据,与内存中的比对数据比较,输出比较结果。
下面对上述步骤进行详细说明。如图l所示,在步骤S1中,首先采集 原始数据,生成比对数据和被比对数据。在本例中,比对数据和被对比数 据的数据格式设置为文本数据,可以将比对数据和被比对数据置入到文本 文件中,每条数据在该文本文件中占 一行,其存储格式为"数据I比对参数,,, 其中'T,为分隔符,比对参数由用户根据自己的需求自行定义。将比对数据和被比对数据格式设置为文本数据,可以提高数据读入内存的速度,提 高比对效率。原始数据的数据格式可以包括文本数据才各式、或数据库表数 据格式,其中,数据库格式不受数据库类型的限制,当然,也可以是其他 格式的数据。
在步骤S2中,进行配置文件的读耳又和日志文件的初始化。其中,配置 文件由用户进行配置,以根据比对结果执行一些相应的处理,可以根据用 户的需要随时修改。配置文件中可以包含一个或多个配置项,每一个配置 项的一般格式为比对结果l动作,即在满足某种比对结果时,则执行该比 对结果对应的动作。通过配置文件可以快速地修改对比对结果的要求和相 应的执行处理,实现了比较复杂的逻辑,令操作简便、快捷。
曰志文件用来记录整个数据比对过程中的信息,包括系统错误曰志、 操作错误日志、操作日志等,用户可以方便快捷地在日志文件找到自己所 需要的信息,以便对各种错误信息、操作及对比结果进行跟踪。
另一方面,读取配置文件时出现错误,则将失败结果记录在系统错误 曰志中,结束比对程序。
在步骤S3中,将比对数据读入内存,若在读取某一个比对数据时出 现错误,则将错误记录在操作错误日志中,转而读取下一个比对数据。
在本例中,将比对数据读入内存后,对比对数据在内存中进行快速排 序,以提高查找速度。
此外,在内存中,可以采用紧凑的线性表结构来存储比对数据。紧凑 的线性表存储结构如图2B所示,图中,示例了三个数据"13311111234"、 "13311111235"、 "13311111236",每个数据分成若干数据小段存储,即由 图示的两个箭头分成的3个数据小段,从左至右称为头段、中段、尾段。 上述3个数据的头段和中段相同,而只有尾段不同,因此,这些数据在存 储时仅需要将前面相同的数据小段(头段和中段)存储一次,不同的尾段 数据存储在尾段线性表中。和一般数据存储结构如图2A相比,紧凑线性表 结构减少了数据冗余,节约了内存空间,减少了对系统资源的占用。
在步骤S4中,逐条读取被比对数据,若读取某一个被比对数据时出 现错误,则记录入操作错误日志中,转而读耳又下一个浮皮比对数据。
逐条读取被比对数据,与内存中的比对数据做比较,若在内存中找不到该被比对数据,则记录入操作错误日志中,继续读取下一个被比对数据。
若在内存中找到该一皮比对数据,则进行被比对教:据中和比对数据中比对参 数的比较,并将比对结果与配置文件中的比对结果做比较,如果与配置文 件的某条比对结果相符,则按照配置文件中该条比对结果相对应的动作对 此被对比数据进行处理,将此被对比数据与处理结果记录在操作日志中。 做比较时按上述紧凑线性表格式逐段比较,先比对头段,头段一致,再比 对中段,中段一致,再继续比较尾段,直到比较完尾段数据。若前一比对 不一致,则不需要再比较后面的数据段,直接读取下一个被比对数据。 在步骤S5中,被对比数据读取完毕,比对程序结束。
在以上所述任意步骤中,若用户选择退出,则直接结束比对程序。 本发明示例的一种数据比对装置,如图3所示,包含数据提取模块和 数据比对模块,其中数据提取模块采集原始数据,生成比对数据和被比 对数据;数据比对模块将比对数据读入内存;数据比对模块逐条读取被比 对数据,与内存中的比对数据比较,输出比较结果。该数据比对装置的工
作方式类似于前述的凄t据比对方法,不再赘述。
下面以联通用户号码处理为实例具体说明比对流程
步骤101:从数据库A中提取数据,生成比对数据,以文本形式输出, 格式为"号码l状态",即比对数据是联通用户号码,比对参数是各号码的 状态。在该输出的文本中,每条记录占一行,其中'T,为分隔符;状态以 0、 l表示,O表示用户处于正常状态,l表示用户处于停机状态。
步骤102,重复上述操作从另一数据库B中提取数据,生成的被比对 数据以文本形式输出,格式同上;
步骤201:读取配置文件,初始化日志文件;若读取配置文件出现4昔 误,则将失败结果记录在系统错误日志中,结束比对程序。
在此实施例中,针对联通用户号码状态作如下配置1:0:90001,其 中比对结果为1:0,表示此号码用户在比对数据中处于正常状态,在被比 对数据中处于停机状态,90001表示注销此号码用户的动作。此配置文件 对比对结果的具体要求是,如果一个用户号码在比对数据中为正常状态, 在被比对数据中处于停机状态,则注销该用户号码。
步骤202:将比对数据读入内存,若在读取某一个比对数据时出现错误,则记录入操作错误日志中,转而读取下一个比对数据。
步骤203:将比对数据读入内存后进行快速排序,以提高查找速度; 步骤204:数据读入内存后,按照紧凑的线性表结构储存数据;数据 存储链表如图4所示先将手机号码分3位的前缀数、4位号段数、4位尾 号,存储时前缀数組以数据前缀为下标,用于存储号段数组的首地址,号 段数组以号段数为下标,用于存放尾号链表的首地址,尾号线性列表用于 存放尾号及比对参数。紧凑的线性表结构如图2B所示,以手机号码为例, 13311111234、 13311111235、 13311111236这三个手才几号码在存J渚时,相 同的前3位和中间4位只需要存储一次,分别存储在前缀数组和号段数组 中,不同的后4位则存储在尾号线性表中。尾号线性列表说明如图5所示 USERINFO-T是一个存放4位号码和1位状态的结构。
步骤301:读取被比对数据,若读取某一个被比对数据时出现错误, 则记录入操作错误日志中,继续读取下一个被比对数据。
读取被比对数据,分离用户号码,与内存中的比对数据做比对,如果 找不到该用户号码,则记录入搡作错误日志中,继续读if又下一个被比对数 据;如果在内存中找到该用户号码,则查看被比对数据中和比对数据中的 状态数据,并与配置文件中的比对结果参数做比较,如果符合比对结果的 要求,即此用户号码在比对数据中处于正常状态,在被比对数据中处于停 机状态,则对该用户号码做注销该用户号码的处理,并将该用户号码和处 理结果记录入操作日志中,然后继续读取下一个被比对数据。被比对数据 中的用户号码与比对数据的用户号码进行比对时,先比对手机号码前三位, 前三位一致,再比对手才几号码中间四位,中间四位一致,再继续比对后四 位及状态。如果前一比对不一致,则不需要再比较后面的数据段了,直接 读取下一个被比对的用户号码。
步骤302,被比对数据读取完毕,结束程序。 在以上任一步骤中,若用户选择退出,则直接结束比对程序。 本发明的数据比对方法和装置,针对数据的比较,采用了先采集原始 数据,生成比对数据与被比对数据,然后将比对数据读入内存,采用紧凑 的线性表结构存储数据并快速排序,逐条读取被比对数据,与内存中的比 对数据比较,输出比较结果,因而解决了现有比对技术中比对时间、比对 效率和比对依赖软、硬件环境的相互矛盾,减少了数据比对时对软、硬件 环境的依赖,节约了内存空间,减少对系统资源的占用,提高了比对效率。明,但这只是为便于理解而举的实例,不应认为本发明的具体实施只局限 于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本 发明构思的前提下,可以做出各种可能的等同改变或替换,这些改变或替 换都应属于本发明的保护范围。
权利要求
1、一种数据的比对方法,其特征在于,包含以下处理步骤(1)采集原始数据,生成比对数据和被比对数据;(2)将比对数据读入内存;(3)逐条读取被比对数据,与内存中的比对数据比较,输出比较结果。
2、 如权利要求l所述的数扭比对方法,其特征在于,在所述步骤(2)之后对内存中所述比对数据进行快速排序。
3、 如权利要求1所述的数据比对方法,其特征在于,在内存中采用紧凑的线性表结构存储所述比对数据。
4、 如权利要求1所述的数据比对方法,其特征在于,所述原始数据的数据格式包括文本数据格式、或数据库表数据格式。
5、 如权利要求1所述的数据比对方法,其特征在于,所述比对数据和被对比数据的数据格式是文本数据格式。
6、 如权利要求1所述的数据比对方法,其特征在于,还包含以下处理步骤采用读取配置文件的方式来对比对结果做出相应的处理。
7、 如权利要求1所述的数据比对方法,其特征在于,还包含以下处理步骤设置用于记录翁:据比对过程中信息的日志文件。
8、 一种数据的比对装置,其特征在于,包含数据提取模块和数据比对模块,其中数据提取模块采集原始数据,生成比对数据和被比对数据;数据比对模块将比对数据读入内存;数据比对模块逐条读取被比对数据,与内存中的比对数据比较,输出比较结果。
9、 一种数据的比对装置,其特征在于,数据比对模块对内存中的所述比对数据进行快速排序。
10、 一种数据的比对装置,其特征在于,数据比对模块在内存中采用紧凑的线性表结构存储所述比对数据。
全文摘要
本发明公开了一种数据比对的方法和装置,所述方法包括以下处理步骤1.采集原始数据,生成比对和被比对数据;2.将比对数据读入内存;3.逐条读取被比对数据,与内存中的比对数据比较,输出比较结果。所述装置包括包含数据提取模块和数据比对模块,其中数据提取模块采集原始数据,生成比对和被比对数据;数据比对模块将比对数据读入内存,逐条读取被比对数据,与内存中的比对数据比较,输出比较结果。本发明减少了数据比对对软、硬件环境的依赖,提高了比对效率。
文档编号G06F17/30GK101582081SQ20091010774
公开日2009年11月18日 申请日期2009年5月25日 优先权日2009年5月25日
发明者华国栋, 飞 杨, 林科锵 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1