一种内存话单剔重方法技术

技术编号:6146498 阅读:188 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种内存话单剔重方法,包括:步骤1:将话单文件读入内存;步骤2:从所述话单文件中读取一条话单记录;步骤3:根据所述话单记录中的关键信息,找到内存中与所述话单记录相对应的索引表;步骤4:对所述话单记录中的字段内容拼成一个字符串,并求MD5值作为该话单记录的索引;步骤5:将所述MD5值插入到所述索引表中,若插入成功,则将所述话单记录写入正常话单文件中,若插入失败,则将所述话单记录写入重单文件;步骤6:重复步骤2至步骤5,直到遍历完所述话单文件中的所有话单记录。本发明专利技术的方法利用内存索引表并采用MD5值进行剔重,实现了利用较小的内存空间进行较快的话单剔重处理,使得话单的剔重处理性能与话单的数据量无关。

【技术实现步骤摘要】

本专利技术涉及一种话单记录的剔重方式,特别是在电信系统内部解决海量级文件的内存级排重的方法。
技术介绍
随着电信运营商不断的发展,业务扩展越来越广,各种新业务层出不穷;随着资费的越来越便宜,用户不断的增长,同时用户的通话量也逐年递增,用户的详单量越来越大。 原有的剔重针越来越海量的数据话单,压力越来越大,系统升级势在必行。当前大多的电信运营商都采用以下几种方式数据库方式、内存方式和文件系统方式,现有这些方法实现的剔重产品,在海量数据处理进或多或少在性能和IO方面有缺陷。数据库方式数据库剔重一般做法就是建一系列表,使用唯一索引或者主键进行唯一性的判定。这种策略最大的优点就是开发比较容易,因为很多工作交给数据库做了 ;缺点非常明显,浪费空间,效率低下。因为数据库中表数据和索引数据要占用双份空间,就算表数据只有关键字段,也要浪费一倍的空间,因为写双份数据,因此效率也就要低一倍。传统文件系统方式在话单预处理过程中,每天建立一个重单检查比较文件。对每条经过预处理后生成的标准话单,取出字段(字符串),根据条件打开相应的重单检查文件, 利用HASH算法和匹配函数在重单检查文件中进行快速查找,如果匹配成功,该话单属于重单,则进行相应的重单处理。如果匹配不成功,该活单不是重单,该话单中上述三个字符率添加到对应的重单检查文件中,用于对后续话单的重单检查。为了减少HASH算法的匹配查找的时间,重单检查文件也应该越小越好。这种方法要在全文件中查找和性能和文件的大小相关,话单量不大性能还可能,量大了 IO操作会加大对性能会有影响。纯内存方式将重单检查文件放在内存中运行,该方法不依赖数据库所提供的功能,处理速度快,但是重单检查文件数量较多,除了要占用一部分硬盘存储资源以外,还需要系统有较大的内存资源,在处理海量话单对主机内存有比较严格要求。
技术实现思路
本专利技术所要解决的技术问题是提供一种新的话单剔重方法,实现使用相对较小的内存空间较快的进行话单剔重处理,并使得话单的剔重处理性能与话单的数据量无关。本专利技术解决上述技术问题的技术方案如下,包括如下步骤步骤1 将话单文件读入内存;步骤2 从所述话单文件中读取一条话单记录;步骤3:根据所述话单记录中的关键信息,找到内存中与所述话单记录相对应的索引表;步骤4:对所述话单记录中的字段内容拼成一个字符串,并求MD5值作为该话单记录的索引;步骤5 将所述MD5值插入到所述索引表中,若插入成功,则将所述话单记录写入正常话单文件中,若插入失败,则将所述话单记录写入重单文件;步骤6 重复步骤2至步骤5,直到遍历完所述话单文件中的所有话单记录。本专利技术的有益效果是在内存中利用索引表并采用MD5值进行剔重,相比于传统的数据库方式和文件系统方式,本专利技术的速度更快;相比于传统的纯内存方式,由于本专利技术采用了 MD5值的方式,无需对话单记录中的每个字段内容进行比较排重,节省了时间;采用直接将MD5值插入索引表中的方式进行剔重,比查询比较的速度更快;本专利技术的方法,仅需要在内存中与所述话单记录相对应的索引表进行操作,因此不必将所有的索引表全部载入内存,对内存的需求也比传统的方式更低;本专利技术实现了使用相对较小的内存空间较快的进行话单剔重处理,并使得话单的剔重处理性能与话单的数据量无关。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述索引表采用T-tree索引。采用上述进一步方案的有益效果是,遍历查找的速度快,该T-tree索引也是内存数据库中最主要的一种索引方式。进一步,所述话单记录中的关键信息为号段和/或日期。采用上述进一步方案的有益效果是,采用号段和/或日期作为关键信息,可以对话单进行较好的分类,比如将某个号段的所有话单在某天的某个小时所有记录放在一张表中,每天这个号段就有M张表,对应的索引表也有M张,这样将便于对记录的管理、查找和剔重等。进一步,所述索引表中仅有一个char (3 型字段,记录有话单文件中的所有非重单记录的MD5值。采用上述进一步方案的有益效果是,使得索引表的占用空间小,查询速度快,加载卸载速度快,操作灵活。进一步,步骤3中,若内存中不存在与所述话单记录相对应的索引表,则将所述索引表从其所保存的存储器中加载到内存中;若所述内存和存储器中均不存在与所述话单记录相对应的索引表,则在内存中新建索引表作为与所述话单记录相对应的索引表。采用上述进一步方案的有益效果是,根据需要加载索引表,实现了对内存占用的更好的控制,不必同时加载全部的索引表进行剔重,避免不必要的内存空间的浪费。进一步,所述方法设有关于话单记录处理条数或者话单记录时间的限定值,当处理的话单记录达到所述限定值时,对内存中不常用的索引表进行卸载,并保存在指定的存储器中。采用上述进一步方案的有益效果是,当处理了一批话单记录之后,相应会加载到内存中一定数量的索引表,根据预设的条件进行定期的卸载,将不再使用或者使用很少的索引表进行卸载,仅保留热数据的索引表(常用的索引表),卸载之后的索引表待需要时再加载到内存中,保证了内存使用的持续性,和使用的灵活性。附图说明图1为本专利技术的内存话单剔重方法中索引表的管理方式示意框图; 图2为本专利技术内存话单剔重方法的一种具体实施方式流程图;图3为图2所示流程采用的系统图。 具体实施例方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。本专利技术的内存话单剔重方法,包括如下步骤 步骤1 将话单文件读入内存;步骤2 从所述话单文件中读取一条话单记录;步骤3 根据所述话单记录中的关键信息,找到内存中与所述话单记录相对应的索引表;步骤4:对所述话单记录中的字段内容拼成一个字符串,并求MD5值作为该话单记录的索引;步骤5:将所述MD5值插入到所述索引表中,若插入成功,则将所述话单记录写入正常话单文件中,若插入失败,则将所述话单记录写入重单文件;步骤6 重复步骤2至步骤5,直到遍历完所述话单文件中的所有话单记录。其中的索引表采用T-tree索引,索引表中仅有一个char (3 型字段,记录有话单文件中的所有非重单记录的MD5值。话单记录中的关键信息可以采用号段、日期相结合的方式,将不同的号段不同日期、时间产生的话单进行分类,以便于查找,当然根据需要也可以采用其他的话单内容作为关键信息进行分类。本专利技术的内存话单剔重方法设有关于话单记录处理条数或者话单记录时间的限定值,当处理的话单记录达到所述限定值时,对内存中不常用的索引表进行卸载,并保存在指定的存储器中。在步骤3中,若内存中不存在与所述话单记录相对应的索引表,则将所述索引表从其所保存的存储器中加载到内存中;若所述内存和存储器中均不存在与所述话单记录相对应的索引表,则在内存中新建索引表作为与所述话单记录相对应的索引表。根据如上所述,本专利技术中对于索引表的管理采用如图1的方式。图1中,在内存中设置加载区,在其他存储器上,如硬盘等,设置卸载区,不使用的索引表放置于卸载区中, 当需要使用时,将所要使用的索引表加载到内存中的加载区中进行使用。因为索引表采用下-廿扰索引,其中仅有一个保存1 5值的(^虹(3幻字段,并且根据号段以及日期进行了分类,因此每个索引表占用的空间都很小,这样便于对索引表的加载和卸载,仅将与当前话单记录相应的索引表本文档来自技高网
...

【技术保护点】
1.一种内存话单剔重方法,包括:步骤1:将话单文件读入内存;步骤2:从所述话单文件中读取一条话单记录;步骤3:根据所述话单记录中的关键信息,找到内存中与所述话单记录相对应的索引表;步骤4:对所述话单记录中的字段内容拼成一个字符串,并求MD5值作为该话单记录的索引;步骤5:将所述MD5值插入到所述索引表中,若插入成功,则将所述话单记录写入正常话单文件中,若插入失败,则将所述话单记录写入重单文件;步骤6:重复步骤2至步骤5,直到遍历完所述话单文件中的所有话单记录。

【技术特征摘要】

【专利技术属性】
技术研发人员:卓才华
申请(专利权)人:北京神州数码思特奇信息技术股份有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1