一种基于Hbase的海量话单分布式去重方法及系统技术方案

技术编号:37400614 阅读:26 留言:0更新日期:2023-04-30 09:28
本发明专利技术公开了一种基于Hbase的海量话单分布式去重方法及系统,涉及分布式海量数据去重技术。针对现有技术中去重工作在分布式系统中性能和实时性均有缺陷的问题提出本方案,将去重表向Hbase提交批量话单的get请求,有返回结果的话单判定为重单;将没有返回结果的话单对应的去重key向Hbase提交批量put请求;再次将去重表向Hbase提交批量话单的get请求,调取所有历史版本记录对比话单是否最早入库的版本,若不是最早入库版本则将该话单判定为重单。采用批量读、写、读的三段检查法来提高吞吐。能满足电信日益增长的业务需求,对海量实时话单的去重处理,保证去重模块不成为整个系统的瓶颈,并为承接预付费业务预留处理能力。并为承接预付费业务预留处理能力。并为承接预付费业务预留处理能力。

【技术实现步骤摘要】
一种基于Hbase的海量话单分布式去重方法及系统


[0001]本专利技术涉及分布式海量数据去重技术,尤其涉及一种基于Hbase的海量话单分布式去重方法及系统。

技术介绍

[0002]在通讯计费系统中,从各类网元采集来的话单由于各种不可控原因总是会出现重复话单,因此计费系统的一个重要模块就是去掉重单以保证计费的准确性。
[0003]在现有技术中,通常采取以下策略进行去重:
[0004]1、内存去重:所有话单的去重key写入本地内存进行对比,虽然效率高但只能单机模式运行,无法满足分布式海量话单的应用;
[0005]2、数据库去重:所有话单的去重key写入关系数据库,这样虽然能满足集群访问,但传统关系数据库面对海量读写及加锁请求的时候,无法满足性能要求;
[0006]3、Hbase的checkAndPut方法去重:利用Hbase的表级方法checkAndPut的原子性,虽然能满足海量数据的处理,但实时性能还是达不到商用结算需求。

技术实现思路

[0007]本专利技术目的在于提供一种基于Hbase的海量话单分布式去重方法及系统,以解决上述现有技术存在的问题。
[0008]本专利技术所述一种基于Hbase的海量话单分布式去重方法,包括以下步骤:
[0009]去重表的生成步骤:在各分布式网点中获取话单,组成批量话单;计算各话单的去重key,生成该批量话单对应的去重表;
[0010]三段式查重步骤:将去重表向Hbase提交批量话单的get请求,有返回结果的话单判定为重单;将没有返回结果的话单对应的去重key向Hbase提交批量put请求;再次将去重表向Hbase提交批量话单的get请求,调取所有历史版本记录对比话单是否最早入库的版本,若不是最早入库版本则将该话单判定为重单;
[0011]去重步骤:根据所述三段式查重步骤的判定结果去除重复的话单。
[0012]再次将去重表向Hbase提交批量话单的get请求前,先将已判定为重单的话单剔除在去重表之外。
[0013]Hbase接收去重key批量put请求的时候,会同时一一对应记录去重key入库的时间戳;调取所有历史版本记录对比话单是否最早入库的版本时,同时对比去重key及其对应的时间戳。
[0014]记录去重key及其时间戳的时候,时间戳后拼接一个sequence。
[0015]利用Hbase的协处理器机制,在regionserver上部署一个observer;所述observer用于拦截去重key的批量put请求;拦截后再对时间戳拼接所述的sequence。
[0016]本专利技术所述的一种基于Hbase的海量话单分布式去重系统,利用所述海量话单分布式去重方法的步骤完成话单去重处理。
[0017]本专利技术所述一种基于Hbase的海量话单分布式去重方法及系统,其优点在于,采用批量读、写、读的三段检查法来提高吞吐。能满足电信日益增长的业务需求,对海量实时话单的去重处理,保证去重模块不成为整个系统的瓶颈,并为承接预付费业务预留处理能力。
附图说明
[0018]图1是本专利技术所述一种基于Hbase的海量话单分布式去重方法的流程示意图。
具体实施方式
[0019]如图1所示,本专利技术所述一种基于Hbase的海量话单分布式去重方法通过批量读、写、读的三段检查法来提高吞吐,使得去重工作不再是海量话单处理中的技术瓶颈。
[0020]首先在各分布式网点中获取话单,组成批量话单;计算各话单的去重key,生成该批量话单对应的去重表。一个去重key是与一张话单唯一对应的识别信息,去重key可以通过多种现有的特定码算法获取,例如哈希值。一份去重表里面包括了海量的话单去重key。
[0021]然后利用三段式查重的步骤完成重复话单(即重单)的快速精准检索。读



读的三段式步骤是本专利技术的核心之处,可以满足了对海量数据实时去重的性能要求。
[0022]第一段

读:将去重表向Hbase提交批量话单的get请求,有返回结果的话单将被判为重单,因为Hbase中已存在相应的去重key。剔除了去重表中的重单后再将去重表应用至下一段操作。
[0023]第二段

写:对第一段中没有返回结果的话单对应的去重key向Hbase提交批量put请求;
[0024]第三段

读:再对第二段中的批量话单提交get请求,取出所有历史版本记录。对比话单唯一标识和入库时间戳,判断本话单是否为最早入库的话单,否的话判为重单。
[0025]最后根据所述三段式查重步骤的判定结果去除重复的话单。
[0026]该方法满足了系统高性能的目标,但在工程上还有个漏洞:由于Hbase的入库时间戳精度只到毫秒级,多条去重key相同的话单在同一毫秒入库将只能读出一条记录。因此还需一个辅助补丁:利用Hbase的协处理器机制,在regionserver上部署一个observer用于拦截去重表的put操作。将每条记录的时间戳后面拼接一个4位的sequnence,以保证每条记录入库时间戳的唯一性。
[0027]本专利技术所述的一种基于Hbase的海量话单分布式去重系统,利用所述海量话单分布式去重方法的步骤完成话单去重处理。
[0028]本专利技术相对现有技术而言,所具有的优点和效果。
[0029]1、满足了对海量数据实时去重的性能要求(性能达标);
[0030]2、充分利用了强大的分布式开源组件Hbase做基础存储层;
[0031]3、开发、部署工作量小:只需实现一个相对简单的批量去重算法,及在Hbase上部署一个自定义协处理器即可。
[0032]对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本专利技术权利要求的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Hbase的海量话单分布式去重方法,其特征在于,包括以下步骤:去重表的生成步骤:在各分布式网点中获取话单,组成批量话单;计算各话单的去重key,生成该批量话单对应的去重表;三段式查重步骤:将去重表向Hbase提交批量话单的get请求,有返回结果的话单判定为重单;将没有返回结果的话单对应的去重key向Hbase提交批量put请求;再次将去重表向Hbase提交批量话单的get请求,调取所有历史版本记录对比话单是否最早入库的版本,若不是最早入库版本则将该话单判定为重单;去重步骤:根据所述三段式查重步骤的判定结果去除重复的话单。2.根据权利要求1所述一种基于Hbase的海量话单分布式去重方法,其特征在于,再次将去重表向Hbase提交批量话单的get请求前,先将已判定为重单的话单剔除在去重表之外。3.根据权利要求1所述一种基于Hbase的海量话单分布式去重方法,其特征在于,Hbase接收去重key批量put请求的时候,会同时一一对应记录去重key入库的时间戳;调取所有历史版本记录对比话单是否最早入库的版本时,同时对比去重key及其对应的时间戳。4.根据权利要求3所述一种基于Hbase的海量话单分布式去重方法,其特征在于,记录去重key及其时间戳的时候,时间戳后拼接一个sequence。5.根据权利要求4所述一种基于Hbase的海量话单分布式去重方法,其特征在于,利用Hbase的协处理器机制,在regionserver上部署一个observer;所述observer用于拦截去重key的批量put请求;拦截后再对时间戳拼接所述的sequence。6.一种基于Hb...

【专利技术属性】
技术研发人员:罗为利洪敏魏石张宏刘礼铭莫建安
申请(专利权)人:广东亿迅科技有限公司
类型:发明
国别省市:

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

1