一种话单剔重方法技术

技术编号:6145120 阅读:286 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种话单剔重方法,包括:步骤1:读取当前话单信息并获取当前话单的业务类型;步骤2:根据业务类型,选定当前话单的剔重业务组;步骤3:根据当前话单的通话时间,在剔重业务组中定位到与当前话单对应的时间段;步骤4:根据当前话单的通话时间,在所述时间段中继续定位到与当前话单对应的时间分区;步骤5:将所述时间分区中的已有话单写入内存,并与当前话单进行比较,若已有话单与当前话单相同,则当前话单为重单;若不同,则将当前话单与已有话单进行合并,生成新的已有话单。该方法按业务分组、按时间分段、按时间分区,占用内存小,IO操作针对传统剔重程序小,具有大容量、高性能的处理能力,实现了处理性能与数据量无关。

【技术实现步骤摘要】

本专利技术涉及一种相同话单记录的剔重方式,特别是在电信系统内部解决海量级文件的文件级排重的方法。
技术介绍
随着电信运营商业务开展的广泛性,各种新业务层出不穷,各种业务话单层出不穷;随着电信资费的下降,客户群的增长,用户的通话量也逐年递增,用户的详单日数量级往往突破亿。对海量数据的剔重已经成为运行商必须解决的问题。目前,各大运营商大都采用数据库方式、内存方式和文件系统方式,这些方法在海量数据处理进或多或少在性能和IO 方面有缺陷。数据库方式利用数据库唯一索引技术进行剔重的具体方法是,在详细话单表中对字段建立唯一索引,在详细话单进行入库操作时,唯一索引机制对每一条插入的话单记录进行检查,从而保证重单不会入库。在表中的话单记录较少时,该方法的入库效率还可以。但是,当表中记录数较多时(如在每个出账周期的后几天),入库速度将严重下降以致于该方法失去了实用意义。数据的存储和检索严重的依赖于数据的性能。对后台数据的I/O 要求较高,往往采用分库、分区、数据压缩、增加硬件配置的提升来提高数据的吞吐能力。其投资成本大,系统后期维护要求高,造成维护费用的居高不下。传统文件系统方式在话单预处理过程中,每天建立一个重单检查比较文件。对每条经过预处理后生成的标准话单,取出字段(字符串),根据条件打开相应的重单检查文件, 利用HASH算法和匹配函数在重单检查文件中进行快速查找,如果匹配成功,该话单属于重单,则进行相应的重单处理。如果匹配不成功,该活单不是重单,该话单中上述三个字符率添加到对应的重单检查文件中,用于对后续话单的重单检查。为了减少HASH算法的匹配查找的时间,重单检查文件也应该越小越好。这种方法要在全文件中查找和性能和文件的大小相关,话单量不大性能还可能,量大了可能会有影响。纯内存方式将重单检查文件放在内存中运行,该方法不依赖数据库所提供的功能,处理速度快,但是重单检查文件数量较多,除了要占用一部分硬盘存储资源以外,还需要系统有较大的内存资源,在处理海量话单对主机内存有比较严格要求。
技术实现思路
本专利技术所要解决的技术问题是提供,以减小话单剔重过程的内存占用,提高话单剔重的处理能力,使得话单剔重处理过程中性能与数据量无关。本专利技术解决上述技术问题的技术方案如下,包括如下步骤 步骤1 读取当前话单信息,并获取当前话单的业务类型;步骤2 根据获取的业务类型,选定当前话单的剔重业务组;步骤3 根据当前话单的通话时间,在所述剔重业务组中定位到与当前话单对应的时间段;步骤4:根据当前话单的通话时间,在步骤3定位到的时间段中继续定位到与当前话单对应的时间分区;步骤5 将步骤4中定位到的时间分区中的已有话单写入内存,并与当前话单进行比较;若已有话单与当前话单相同,则当前话单为重单,将当前话单写入重单文件中;若已有话单与当前话单不同,则将当前话单与所述已有话单进行合并,生成新的已有话单。本专利技术的有益效果是根据话单信息,将换单按照剔重业务组、时间段和时间分区进行分门别类,在最小的类别(时间分区)里进行话单的剔重操作,本专利技术的方法不必将所有的已有话单的信息全部写入内存,仅将与当前话单相对应的时间分区内的话单信息写入内存即可,剔重过程的内存占用空间小,剔重速度快,节省系统资源,并使得话单剔重处理过程中性能与数据量无关。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述业务类型包括语音话单和短信话单,所述剔重业务组为语音话单业务组或者短信话单业务组。采用上述进一步方案的有益效果是,将话单按照语音话单和短信话单进行分门归类,避免了某一类话单在其他类话单业务组中进行剔重,免去了不必要的时间浪费,节省了剔重时间。进一步,所述时间段以小时为单位。进一步,所述时间分区以秒为单位。采用上述进一步方案的有益效果是,对每天的话单信息可以快速的定位到相关的时间段和时间分区。进一步,对所述时间段内的已有话单进行索引,生成索引文件;所述时间分区为在所述索引文件中的索引块;步骤3和步骤4中,通过所述索引文件对当前话单所对应的时间段和时间分区进行定位;所述步骤5中,将当前话单与所述已有话单进行合并的同时,在所述索引块中记录下当前话单的索引信息。采用上述进一步方案的有益效果是,利用索引文件提高了查找和剔重速度。进一步,若所述索引块中记录已满,则新开一块索引块,并在已满的索引块头信息中保存新开索引块的地址。采用上述进一步方案的有益效果是,保证了索引文件的可持续使用。 附图说明图1为本专利技术提供的话单剔重方法流程图2为本专利技术提供的一种剔重索引组织结构图; 图3为本专利技术中扩展索引块的示意图。具体实施例方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,本专利技术的话单剔重方法包括如下步骤4步骤1 读取当前话单信息,并获取当前话单的业务类型; 步骤2 根据获取的业务类型,选定当前话单的剔重业务组;步骤3 根据当前话单的通话时间,在所述剔重业务组中定位到与当前话单对应的时间段;步骤4:根据当前话单的通话时间,在步骤3定位到的时间段中继续定位到与当前话单对应的时间分区;步骤5:将步骤4中定位到的时间分区中的已有话单写入内存,并于当前话单进行比较;若已有话单与当前话单相同,则当前话单为重单,将当前话单写入重单文件中;若已有话单与当前话单不同,则将当前话单与所述已有话单进行合并,生成新的已有话单。其中,业务类型包括了语音话单和短信话单等,相应的剔重业务组包括了语音话单业务组和短信话单业务组等;按照每天所生成的的话单量,时间段可以设置以小时为单位,其中的时间分区可以设置到以秒为单位。对于查询和剔重来说,对话单进行索引,利用索引文件可以极大的提高查询和剔重效率。因此,采用索引手段,对时间段内的已有话单进行索引,生成索引文件;所述时间分区为在所述索引文件中的索引块;步骤3和步骤4中,通过所述索引文件对当前话单所对应的时间段和时间分区进行定位;步骤5中,将当前话单与所述已有话单进行合并的同时,在所述索引块中记录下当前话单的索引信息。当建立索引文件进行查询和剔重操作时,索引文件的大小会随着数据量信息的增加而不断增加,此时难免索引块中因记录已满,导致新的记录无法写入,而新的记录恰恰是应该记录在该块索引块中的记录,因此若索引块中记录已满,则新开一块索引块(如在该索引文件的最后新开索引块),并在已满的索引块头信息中保存新开索引块的地址,使得新的记录可以加载新增的索引块中,从而保证了索引文件的可持续使用,待新的话单进行剔重操作时,通过在已满的索引块头信息中保存新开索引块的地址便可对新开的索引块中的话单记录进行查询。以下,结合具体实践,对本专利技术的话单剔重方法进行进一步阐述。图2是本专利技术中所提供的一种剔重索引组织结构图。根据配置信息程序初始化, 形成按配置生成的索引信息存储的空文件,索引文件按业务分组、索引按时间分段、索引按时间分区。一次性为所需的剔重索引预先申请好磁盘空间,减少在运行过程中申请所占用时间,为以后的话单剔重做好准备工作,加快剔重速度。此处按业务分组是指可以将不同类型的话单入在一起剔重,也可以分开剔重,任意结合。例如可以将所有语音的话单分成一个组即所有语音话单共用一类索引文件剔重, 将短信话单单独分成一组所有短信话单按一类本文档来自技高网
...

【技术保护点】
单不同,则将当前话单与所述已有话单进行合并,生成新的已有话单。单的通话时间,在步骤3定位到的时间段中继续定位到与当前话单对应的时间分区;步骤5:将步骤4中定位到的时间分区中的已有话单写入内存,并与当前话单进行比较;若已有话单与当前话单相同,则当前话单为重单,将当前话单写入重单文件中;若已有话单与当前话1.一种话单剔重方法,包括如下步骤:步骤1:读取当前话单信息,并获取当前话单的业务类型;步骤2:根据获取的业务类型,选定当前话单的剔重业务组;步骤3:根据当前话单的通话时间,在所述剔重业务组中定位到与当前话单对应的时间段;步骤4:根据当前话

【技术特征摘要】

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

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

1