楼主: jxc_hn

[精华] 如何解决大容量电信详单的索引问题?做过电信的都知道这个问题

[复制链接]
论坛徽章:
0
21#
发表于 2003-5-4 09:08 | 只看该作者
我们一直在用

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
22#
 楼主| 发表于 2003-5-4 09:40 | 只看该作者
不是说不可用,只是觉得流程比较复杂.较难维护,出错可能性大.

使用道具 举报

回复
论坛徽章:
0
23#
发表于 2003-5-5 08:21 | 只看该作者
用定时器来实现,不用人为操作阿

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:08马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
24#
发表于 2003-5-5 10:05 | 只看该作者

说说我的看法

这个问题其实涉及范围很大,我一直没发言是想看看大家具体怎么想,我是这样考虑的。

1、计费详单入库之前,一般是在预处理阶段进行剔重处理,但实际情况是,因为涉及到一些迟到话单,跨文件剔重难免有遗漏,所以我们考虑在入库的时候,需要利用索引来限制重单;
2、我现在的计费库大概300多G(移动业务),保存计费详单的原则是3+1的原则,即保存三个月历史详单,一个月当前话单,同时欠费详单在库里长期保存;
3、计费详单采用按业务分表,如GSM语音、短信是为单独的表,大表采用分区,分区的原则,按月、按城市、按本地号码最后两位尾数,这样语音计费一个月近12000万条话单,约16G的数据量,
实际可能分成了 15个地市*100个尾数 =1500个分区表,每个分区表中大约6--10万条话单,这样分区表就不是很大了;
3、分区表中再建立本地号码、主叫区号、被叫区号、通话开始时间等的索引,相对来说入库速度就不会特别受索引的限制了;
4、索引和详单表在不同的表空间,同时表空间建立的时候考虑物理分开,这样提供读写效率;
5、前面有个老兄说到的“入库完毕,重新建立索引”,我觉得在我这里不现实,因为客服系统需要提供用户准实时话费的查询,基本上用户一个电话结束,1个小时以后需要查询到话费,所以如果第二天建索引,与这个业务冲突(系统优先为业务服务);
6、每天晚上定时统计当天详单有关的一些数据,将一些汇总信息插入到统计表中,这样若是临时需要统计一些数据,就不需要全从很大的详单表中全面统计了。

以上是大致想法,欢迎大家继续交流

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
25#
 楼主| 发表于 2003-5-5 13:12 | 只看该作者
按城市、按本地号码最后两位尾数,这样语音计费一个月近12000万条话单,约16G的数据量,
实际可能分成了 15个地市*100个尾数 =1500个分区表


请问: 这样分区,怎样提高清单查询速度?

一般清单查询界面要求输入号码和时间. 用号码尾数作分区条件有用吗?

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:08马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
26#
发表于 2003-5-5 13:26 | 只看该作者
速度很快啊

输入号码和是时间==》可以确定城市、号码尾数(截取一下)、帐期(月份)
以上三个条件可以确定子分区表,然后子分区表里有具体号码和时间的索引啊
实践就是最好的结果,目前我这用的很快

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
27#
 楼主| 发表于 2003-5-5 14:30 | 只看该作者
那你的详单表里应该有个'号码尾数'的字段吧?

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:08马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
28#
发表于 2003-5-5 15:16 | 只看该作者
对啊 。

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
29#
 楼主| 发表于 2003-5-5 19:41 | 只看该作者
1500个分区的表, 维护起来有什么特别的吗?
应该是建立的local 型分区索引吧?

有没有考虑过按号码最后一位分区?

使用道具 举报

回复
论坛徽章:
0
30#
发表于 2003-5-6 11:40 | 只看该作者
对移动计费来说,因为所有的话单都计详单,确实需要分很多的表,
但对固定计费来说,市话大局都计跳次,只有长途是明确计详单的
关于入库后见索引的问题,我认为是一个权衡,并且牵涉到平台的问题,oracle好一些,sybase差很多。在入库的过程中,客服系统的性能肯定要收影响,而在话单数量达到一定的程度时,单从入库来说,不删索引插入话单是非常慢的,在sybase下,经常会出现做不完的情况,也就是先删索引后插入再建索引,速度一般应该是比不删索引快的。并且建立索引速度很快,
象phonee
hulu
的那种情况 6-10万量,一秒钟建完了。不过6-10万话单确实不需要先删再插入再建索引,直接插入便可以了。所以他说不实际也有道理,不过集中到晚上10多分钟的时间应该不会对客户满意度造成很大的影响的。
根据号码的倒数第二位分表可能更好一些,因为4结束的电话号码较少,这样分布不均衡

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表