CDR表的分库,分表机制
Ø 多话单库的支持
Ø 功能描述
话单库目前借用了BMP的用户库作为存储数据库。在大容量的情况下,简单分表的机制不能满足性能的要求,目前还需要支持多库的机制,保证话单导入和查询导出的性能要求。
目前数据库中保存的信息包括话单、失败日志、Portal接入日志等。这里按照话单的处理方式进行描述,涉及到其他日志的入库和查询,采用相同的机制。
Ø 实现方案
n 物理部署方式
在多库的情况下,话单库的部署方式如下:
其中:
1、 多套CDRDB分别独立部署;
2、 每套CDRDB中独立部署一个billload数据库入库工具;
3、 独立部署一套RBI,从SER模块中获取话单;
4、 RBI根据话单文件中的序列号根据数据库的数量进行文件数量的分割,每一部分分别发送到对应的billload模块中;
5、 BIllload模块根据用户NAI生成HASH,然后根据时间因素选择对应的数据库后入库处理。
6、 BUS模块通过SQL直接访问多个CDRDB,不同的原则选择不同的访问策略;
7、 Portal、BOSS等其他模块通过SOAP/HTTP接口和BUS交互访问话单库。
对于话单库的部署方式:存在如下几种场景:
1)如果只有单库,默认的部署方式下,只考虑RBI、BIllload、BIllconvert工具和BMP合设,工具都为单机部署方式;
2)在容量扩展时,根据实际配置的需要,独立部署RBI、Billload、BillConvert。工具都为单机部署方式
3)在一些定制局点,RBI、BIllConvert独立部署,BMP的userdb(话单库)独立部署。其中RBI是双机部署,BillConvert为单机方式;Billload和BMPDB合设,为单机部署方式。
n RBI的话单分发机制
在存在多个billload入库工具的场景下,需要RBI能够保证每个工具的处理负荷基本均衡,需要要把从SER获取的话单文件记录能够实现基本的均分。
RBI在配置传送规则时,根据获取的文件数量以及存在的billload节点数分配。例如,对于3个节点的场景分为:目录output1、目录output2、目录output3。每一个目录对应一个billload节点。RBI获取到所有的话单文件后,依次平均分配文件到每一个目录中,保持每个目录下文件的基本均衡。
RBI把每个对应目录的文件传送到对应的billload中去处理入库。在任何条件下,都要求能够修改RBI中分发的目录数量,而不对当前的文件处理产生影响。
n 话单的入库
Billload支持多库能力,且Billload一般和CDRDB合设。在针对一个话单记录进行库的选择的策略如下:
1、 billload支持根据时间进行入库策略的选择;其中时间信息的来源为话单记录中的“EndTime”
2、 根据不同的时间段对应不同的策略,每一个具体的策略方式为:
根据“ DEKHASH(NAI) %N”的取值分别选择对应的CDRDB节点。其中“N”为当前CDR的节点数量。
3、 Billload需要支持多个规则的配置。
在扩容或者减容的情况下,需要设置对应当前节点数量的入库策略,以及其对应策略的生效时间。
一般来说,策略的生效时间为话单库的分月点,例如20130701000000。
n 话单的查询
多话单库的情况下,直接使用平台BMP的多库访问机制,不涉及BUS的额外开发能力。
BUS在查询话单时,不支持跨月查询的场景,只能支持单月纪录的查询。查询的前提:CDRinfo在BUS和billload中的配置顺序要相同。
1)根据用户名的查询方式
首先根据用户的查询时间月份从AAA_CDRDBRule查询生效的RuleID(可能存在多个,需要根据时间选择合适的那一个),然后使用“DEKHASH(NAI) %N”算法获得对应的CDRDB节点。
其中:
l 如果在AAA_CDRDBRule中没有记录,则节点的数量使用当前BMP用户库的数量。
l 如果获取的数据库数量等1,则使用基线版本的查询能力直接执行。
l AAA_CDRDBRule不提供界面的维护手段,保持在系统库中作为全局参数后台配置。
2)根据IP地的查询方式
在多库的情况下,直接同时查询多个数据库,然后根据查询的获取的多份结果按照BeginTime进行的倒叙排序。为了提升查询效率,每个查询操作需要采用一个独立的线程处理。
3)根据时间段的查询
移动规范中的根据时间进行上报接入日志的记录特性,直接采用多个线程在多个数据同时执行。在执行后获得每个节点上的临时文件,然后把所有的临时文件合并后作为最终的结果文件上报到网管。
Ø 数据分布
AAA_CDRDBRule
话单库
Ø DFX
性能要求:
一般用户的数据库中单表的数量为:
按照每天8千万CDR计算(从山东移动参考,大约4千万话单数据)那么每个月每张表有0.8亿*30天/ 10张话单表 = 2.4亿话单/每张表
1)查询性能
在单库单表查询的条件下,在3秒以内获得响应信息;
在跨库查询时,在5秒内获得响应信息;
在多库导出文件时,则在15秒中响应并完成数据导出为文件则满足要求。
2)billload入库
同基线版本,至少6000条CDR/秒以上的并发入库能力。
Ø 子系统分解
n BUS
支持多库情况下的按照用户名、IP地址、时间段进行CDR信息的查询、失败日志查询、Portal接入日志查询。
n SER
NA
n Portal
NA
n 工具
RBI支持按照随机的方式分发CDR文件。
Billload支持根据CDR中的时间信息选择对应的数据库选择策略。
n 资料
完善话单入库的调测指南、多话单库的安装指南。
posted on 2014-05-22 13:58 zhourui151 阅读(266) 评论(0) 收藏 举报
浙公网安备 33010602011771号