广东电信公话200专用话机话务动态分析系统的构建

<wbr><wbr><wbr><wbr> 本文发表于中文核心刊物《电信科学》2003年11期。</wbr></wbr></wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr>

<wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="font-size:24px"> 广东电信公话200专用话机话务动态分析系统的构建</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

马根峰<wbr><wbr></wbr></wbr>

(广东电信公用电话管理中心<wbr> 广州 510635)</wbr>

摘要<wbr><wbr><wbr> 在电信市场尤其是公话市场竞争激烈的今天,广东电信公话中心的有关经营分析人员比较迫切的想进行一百多万部200专用话机话务的动态分析,但目前话机资料及细节级话务数据分散于操作型数据环境的组织方式确不能提供这样的支撑,所以必须对数据进行重新组织,并且要按照不同的分析需要对数据按照不同的综合程度来组织。不仅如此,话务的动态分析还要求对话机资料进行更新、对话务表按照时间维度进行转换,通常的OLAP分析工具在对几十万条记录的数据表进行维度转换时效率就极为低下。在这种前提下笔者编写了”话务动态分析系统”,利用数据仓库技术对操作型环境中的数据进行挖掘、按照不同的粒度来组织;在数据仓库设计时兼顾动态分析的需要,在数据仓库数据生成时自已编写程序实现话务按照时间维度转换,轻松地实现了话务的动态分析。</wbr></wbr></wbr>

关键词<wbr><wbr><wbr> 数据仓库;OLAP;维度;分布式数据库访问技术;事务<wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

The system dynamic analyse of charge of pay phone for 200 service in Public Payphone Center, Guangdong Telecom Corporation based on Data Warehousing & dimension conversion

MA Gen-feng

(Public Payphone Center, Guangdong Telecom Corporation, Guangzhou 510635)

ABSTRACT: Today, the competition becomes more severe in telecom market, especially in public pay phone market. The analyst in Public Payphone Center, Guangdong Telecom Corporation want to analyze the change of charge of more than one million pay phone for 200 service in different time as well as the influence on the change of the charge of all or part areas, all or part user types of pay phone, part areas and part user types of pay phone. If they do this they can find the reason for those change or the rule hide in those change so that they can support the decision-maker to make decision well. But the data of pay phone for 200 service and the charge of them every month is distributed in many tables in database in On-Line operating environment now, it result in the huge difficulty to supply the analyst with sufficient proof to analyze the change of those charge above. So it is necessary to organize these data and store them in different integration level. What is more, it is necessary to update the information of pay phone and convert the time dimensionality because of the analysis above. While the OLAP tools for Data Warehousing shows quite low efficient in the process of this conversion of table with millions records well. So I develop a system to process the analysis of the change of the charge of millions pay phone for 200 service easily. In the system, it is the first step to dig the detail data of phones and those charge to the Data Warehousing, followed by the high efficient time dimensionality conversion of phones and those charge to a table, then data in different integration level is created.

KEY WORDS: Data Warehousing; OLAP; Dimensionality; Access to distributed Database; Transaction

<wbr></wbr>

<wbr></wbr>

1<wbr><wbr> 引言</wbr></wbr>

200业务是广东电信的一项重要业务,因而对于众多200专用话机的话务分析显得非常必要。即电信经营分析人员不但要能从较高层面上分析全省或部分地区、所有或部分用户类型话机、某些地区某些用户类型话机及某些市县、支局的某些用户类型的话机话务在某些时间段的变化,而且要能从细节上跟踪每一部200专用话机话务在不同时期的变化。从而了解200专用话机话务变化的原因或找出其中的规律,为管理者决策提供依据。但目前只能分析层面比较高的地区级话务的变化以及某一计费月200专用话机的话务情况,经营分析人员即使知道了全省或部分地区的话务变化,却不能找出其中的原因或规律。这是因为200业务的数据分散于操作型环境之中,并且都是细节性的数据(如每个月的200话务表fee_200_yymm、200专用话机资料表G200_yymm,yymm表示年月)。在这种操作型的环境中要想进行”先高层后低层”的话务动态分析,即按照地区→市县→支局→话机的层次,结合200专用话机的用户类型来一级一级地找出200话费变化原因或规律,显然是不现实的。

<wbr></wbr>

要想解决上面的问题,就必须建立一个分析型的数据环境。首先利用数据仓库技术对话机资料数据及话务数据重新组织,并且按照不同的细节程度来设置不同的粒度,形成一个综合的、面向分析的环境,然后利用OLAP工具(如Brio)去掉各粒度表中的时间维度,来满足不同层次上话务动态分析目标的需要。

<wbr></wbr>

但这些OLAP工具通常用于处理记录较少的表的维度转换,对于处理电信运营商中存在的每个月都是几十万、几百万乃至几千万条记录的表的维度转换时从执行时间上讲是不可行的(在处理百万级数据表的维度转换时运行几百个小时也得不到结果),所以笔者首先利用数据仓库技术将数据进行挖掘,在数据仓库设计时兼顾动态分析的需要,在数据生成时自已编写程序实现维度转换,然后基于维度转换后的数据表来生成不同粒度的综合级表。最终在PC机上仅用了一个小时就完成了一百多万部200专用话机资料的更新及近一百万条记录话费表的处理并生成了数据仓库中的不同粒度的数据,从而轻松地实现了话务的动态分析。

<wbr></wbr>

<wbr></wbr>

<wbr></wbr>

2 数据仓库与OLAP

2.1 数据仓库的特点

数据仓库技术是用以更好地支持企业或组织的决策分析处理的,面向主题的,集成的,不可更新的、随时间不断变化的数据集合。它通过将数据按照不同的综合程度(即粒度)来组织,以满足不同分析的需要。

<wbr></wbr>

<wbr><wbr><strong>2.2 联机分析处理OLAP</strong></wbr></wbr>

OLAP是针对特定问题的联机数据访问与分析。通过对信息(这里的信息已经从原始的数据进行了转换,以反映用户所能理解的企业的真实的”维”)的很多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察。

维是OLAP中的一个基本概念,它反映了人们观察数据的特定角度,如电信业务分析中从不同的计费月来观察话机的话务,这里的时间(计费月)就是一个维。

一个维往往具有多个层次,如时间维可以从日期、月份、季度、年等不同的层次来描述。但在广东电信公话管理中心,对200专用话机话务的动态话务分析主要从月份这个层次来进行。

<wbr></wbr>

2.3 数据仓库中的星型模式

2.3.1 数据仓库中的星型模式

星型模式是用关系数据库系统来实现的数据仓库中最常见的模式,在这种模式下,数据仓库由事实表和维表构成。事实表中包含着用于分析的指标和链接维表的主键。如下面细节级话机话务和话机资料的关系模式

话机话务(电话号码,时间代码,话费)

话机(电话号码, 地区代码,市县代码,支局代码,用户类型代码,话机安装地址,)

地区(地区代码,地区名,市县代码,市县名,支局代码,支局名)

用户类型(用户类型代码,用户类型)

时间(时间代码,时间)

在这种模型下,可以很轻松地分析出某个维(如时间维中各月份、地区维中的地区)的话务总体情况,这就是在事实表中增加维度的好处;对于事实表中记录不多的情况下,可以用OLAP的一些工具(如Brio)将时间维从事实表去掉,在事实表中增加时间维表的各个取值来作为事实表中的几个字段,这样就可以轻松地分析几个时间的某个或某些维(如地区、市县、支局及用户类型话机)的话费、某些话机的话费的变化这类问题了。

<wbr></wbr>

2.3.2 本系统中对于传统星型模式的改进

对于广东电信来说,每个月的200专用话机话务数据都在百万条记录以上,n个月累加起来就是n百万,这样庞大的表用OLAP工具来进行维度转换显然是不现实,也是不可行的;并且它还无法处理每个月一百多万部200专用话机的资料更新。笔者在系统中的解决方法是,直接在数据仓库各级粒度的话务表中去掉时间维度,增加时间维表中的值(各个月)作为各级粒度话务表的字段;又将话机资料和话务表合为一个表,这样不但在进行维度转换时同时更新话机资料,而且能够提高以后用户查询的响应速度。最后在系统中用自己编写的程序在PC机上仅运行了不到一个小时的时间就完成了一个月一百多万条记录的话机资料表的更新和话务表的维度转换、并且生成了各级粒度的综合表。数据仓库采取这种设计方案的另一个好处理就是每一次处理只需要处理一个月的数据,而不是像OLAP工具那样一次需要处理n个月的数据。

<wbr></wbr>

<wbr></wbr>

<wbr></wbr>

3 系统中的数据仓库设计

3.1<wbr> 逻辑模型设计</wbr>

3.1.1 确定粒度层次划分

粒度是数据综合级别的程度。在数据仓库中,多重粒度是必不可少的。数据仓库的主要作用是DSS(决策支持)分析,因而其绝大部分查询都基于一定程度的综合数据之上,而只有较少的查询涉及细节。在本系统中采用了五重粒度,早期细节级的200专用话机资料表G200_src和话费细节级的表Fee_200_src;维度转换后的细节级话机话费表Phone200Fee_detail;轻度综合级的各地区、市县、支局、话机类型的话务表phonefee200_littleuplvl表;较高综合级的各地区、话机类型的话务表phonefee200_midlvl;以及高度综合级的各地区话务表phonefee200_Areahighlvl、各话机类型话务表phonefee200_Userhighlvl。

<wbr></wbr>

<wbr><wbr><img src="http://my.csdn.net/uploads/201206/25/1340639395_3122.JPG" alt=""><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=4b70463f01010ubm&amp;url=http://s9.sinaimg.cn/orignal/4b70463fgc34aa5a9eae8" target="_blank"></a><br><br></wbr></wbr>

<wbr></wbr>

<wbr></wbr>

3.1.2<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 关系模式定义</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

关系的描述称为关系模式。它包括关系名,组成该关系的诸属性名等。本系统数据仓库中关系模式定义为:

G200_src(G200_xxxx表各个字段,话机资料日期)

Fee_200_src(电话号码,年月,总金额,地区)

Phone200Fee_detail(G200_xxxx表各字段,话机资料日期,200301金额,200302金额,…,200412金额) 这里及以下综合级表中的话机资料日期字段都经过了编码来反映话机的存在时间,不同于上边G200_src表中的话机资料日期字段

phonefee200_littleuplvl(地区,市县,支局,话机类型,话机资料日期, 200301金额,200302金额,…,200412金额)

phonefee200_midlvl(地区,话机类型,话机资料日期,200301金额,200302金额,…200412金额)

phonefee200_Areahighlvl(地区,话机资料日期,200301金额,200302金额,…200412金额)

phonefee200_Userhighlvl(话机类型,话机资料日期,200301金额,200302金额,…200412金额)

对于关系模式的这种设计,大家可能会一方面质疑它的扩展性,即它能用来分析其它年月的话务吗?另一方面可能会质疑如果它可以扩展来统计更多时间的话务情况,那最多可以统计几年的话务?只要向话务表Phone200Fee_detail、phonefee200_littleuplvl、phonefee200_midlvl、phonefee200_Areahighlvl和phonefee200_Userhighlvl中增加几个年月的金额字段,再对具体的维度转换程序销加修改(在程序中增加几个变量及几条赋值语句),就可以统计许多年的数据;再者,MS SQL SERVER7.0最多支持1024列的表,这可以用来统计分析80多年的数据。

<wbr></wbr>

<wbr></wbr>

<wbr><wbr><strong>3.2 选定数据库产品来建立数据仓库</strong></wbr></wbr>

目前数据仓库的实现还主要借助于关系数据库系统,再者由于本系统中数据仓库数据来自于远程数据库,因此要用到分布式访问技术。而远程数据库系统是MS SQL SERVER7.0,加上MS SQL SERVER与其它数据库系统的连接性能又比较好,更不用说与MS SQL SERVER的连接性能了,因此选用了MS SQL SERVER7.0来建立数据仓库。同时这也符合分布式数据库系统建立时尽量采用”同构同质”型局域网数据库管理系统的建议。

<wbr></wbr>

<wbr></wbr>

<wbr><wbr><strong>3.3 数据仓库中的数据生成</strong></wbr></wbr>

3.3.1 数据仓库中的数据生成

数据仓库中数据的生成包括操作型环境数据的挖掘和数据仓库中综合级数据的生成这两部分的内容。

在数据仓库设计步骤中,数据仓库中数据的生成是其中的关键部分,它为DSS系统提供了基础数据的支持。在这一步里所要做的工作是接口编程,以实现将操作型环境下的数据装载进入数据仓库环境。建立和设计这个接口,不仅要对数据进行抽取,而且还要从面向应用和操作的环境生成完整的数据。

数据挖掘的方法主要有DTS(Data Transformation Services)工具,用客户端开发语言的编程,以及DBMS(数据库管理系统)的存贮过程编程。我在进行数据仓库数据挖掘及数据生成时均采用了存贮过程,原因在于它在数据库/数据仓库中的预编译特性及在数据库访问时的高效率。

<wbr></wbr>

3.3.2 数据生成时的数据完整性控制

数据仓库中数据挖掘及综合级数据生成时都完成了大量数据的INSERT操作,如果在某一时刻发生了某种错误或系统掉电,那么加载到数据仓库中的数据的完整性就会遭到破坏,因此必须采取一定的措施来保障数据的完整性。MS SQL SERVER提供了事务,使得一个事务内的所有语句被作为一个整体来执行,遇到错误时,可以回滚事务,取消事务内所做的所有改变,从而保证数据的完整性、一致性。<wbr></wbr>

在数据仓库数据挖掘时,由于用到了分布式数据访问技术,所以要使用分布式事务;而在进行维度转换时只需使用本地事务即可。

<wbr></wbr>

3.3.3<wbr> 系统中的分布式数据库访问技术</wbr>

在数据仓库数据挖掘时,由于用到了远程数据库的访问,所以必须使用分布式数据访问技术。MS SQL SERVER提供了远程数据库访问技术,具体访问远程数据表的方法为

SELECT [Column1,…,Column] FROM Remote_Server.DbName.Owner.TableName

<wbr></wbr>

3.3.4<wbr> 数据挖掘的具体流程</wbr>

<wbr></wbr>

广东电信公话200专用话机话务动态分析系统的构建

<wbr></wbr>


广东电信公话200专用话机话务动态分析系统的构建

<wbr></wbr>

4结束语

在广东电信公话业务的经营分析中,目前使用的静态话务分析在电信市场竞争日益加剧的今天,越来越不能满足决策者的需要,只有使用话务的动态分析方法,才能使经营分析人员不但能从高层面上发现话务的变化,而且又能低层面乃至具体每一部新增、拆除或一直都存在的200专用话机的话务上找出这种变化的原因或规律性,从而帮助决策者制定对应的决策来更加有效地阻止坏的因素的影响,利用规律来制定决策进一步促进广东电信公话业务的发展。为了能够实现话务的动态分析,笔者编写了自己的维度转换程序为话务的动态分析提供目前OLAP工具所缺乏的大型数据库表维度转换的支持以及每月都要进行的一百多万部200专用话机资料的更新问题,在实际中也显示出了相当高的效率。在数据库/数据仓库进行关系模式设计时采取对数据按照不同的粒度来组织,充分满足了不同分析的需要。这种数据仓库+用户的OLAP维度转换的做法,同样会给电信企业已有或将来的CRM系统在客户价值分析时提供有力的支撑,同时它便于查询每个客户在不同时期的话务,从而为CRM系统中开展”一对一”的销售模式提供了更有力的支持。

<wbr></wbr>

<wbr></wbr>

<wbr></wbr>

参考文献:

[1]<wbr> 王珊 · 数据仓库技术与联机分析处理 · 北京:科学出版社,1998.6</wbr>

[2]<wbr> Michael Corey(美),Michael Abbey(美) · SQL SERVER 7 Data<wbr> Warehousing · 北京:希望电子出版社,2000.1</wbr></wbr>

[3]<wbr> 邵佩英 · 分布式数据库系统及其应用 · 北京:科学出版社,2000.6</wbr>

[4]<wbr> 张龙祥,黄正端,陶影<wbr> · 数据库原理与设计 · 成都:西南交通大学出版社,1995.4</wbr></wbr>

[5]<wbr> 王珊,陈红 · 数据库系统原理教程 · 北京:清华大学出版社,1998.7</wbr>

[6]<wbr> 袁鹏飞 · SQL Server 7.0数据库系统管理与应用开发 · 北京:人民邮电出版社,1999.5</wbr>

你可能感兴趣的:(电信)