您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于数据仓库和维度转换技术的广东电信公话200专用话机话务动态分析系统电信科学
本文收录于电信科学2003年11期基于数据仓库和维度转换技术的广东电信公话200专用话机话务动态分析系统马根峰(广东电信公用电话管理中心广州510635)摘要在电信市场尤其是公话市场竞争激烈的今天,广东电信公话中心的有关经营分析人员比较迫切的想进行一百多万部200专用话机话务的动态分析,但目前话机资料及细节级话务数据分散于操作型数据环境的组织方式确不能提供这样的支撑,所以必须对数据进行重新组织,并且要按照不同的分析需要对数据按照不同的综合程度来组织。不仅如此,话务的动态分析还要求对话机资料进行更新、对话务表按照时间维度进行转换,通常的OLAP分析工具在对几十万条记录的数据表进行维度转换时效率就极为低下。在这种前提下笔者编写了”话务动态分析系统”,利用数据仓库技术对操作型环境中的数据进行挖掘、按照不同的粒度来组织;在数据仓库设计时兼顾动态分析的需要,在数据仓库数据生成时自已编写程序实现话务按照时间维度转换,轻松地实现了话务的动态分析。关键词数据仓库;OLAP;维度;分布式数据库访问技术;事务1引言200业务是广东电信的一项重要业务,因而对于众多200专用话机的话务分析显得非常必要。即电信经营分析人员不但要能从较高层面上分析全省或部分地区、所有或部分用户类型话机、某些地区某些用户类型话机及某些市县、支局的某些用户类型的话机话务在某些时间段的变化,而且要能从细节上跟踪每一部200专用话机话务在不同时期的变化。从而了解200专用话机话务变化的原因或找出其中的规律,为管理者决策提供依据。但目前只能分析层面比较高的地区级话务的变化以及某一计费月200专用话机的话务情况,经营分析人员即使知道了全省或部分地区的话务变化,却不能找出其中的原因或规律。这是因为200业务的数据分散于操作型环境之中,并且都是细节性的数据(如每个月的200话务表fee_200_yymm、200专用话机资料表G200_yymm,yymm表示年月)。在这种操作型的环境中要想进行”先高层后低层”的话务动态分析,即按照地区→市县→支局→话机的层次,结合200专用话机的用户类型来一级一级地找出200话费变化原因或规律,显然是不现实的。要想解决上面的问题,就必须建立一个分析型的数据环境。首先利用数据仓库技术对话机资料数据及话务数据重新组织,并且按照不同的细节程度来设置不同的粒度,形成一个综合的、面向分析的环境,然后利用OLAP工具(如Brio)去掉各粒度表中的时间维度,来满足不同层次上话务动态分析目标的需要。但这些OLAP工具通常用于处理记录较少的表的维度转换,对于处理电信运营商中存在的每个月都是几十万、几百万乃至几千万条记录的表的维度转换时从执行时间上讲是不可行的(在处理百万级数据表的维度转换时运行几百个小时也得不到结果),所以笔者首先利用数据仓库技术将数据进行挖掘,在数据仓库设计时兼顾动态分析的需要,在数据生成时自已编写程序实现维度转换,然后基于维度转换后的数据表来生成不同粒度的综合级表。最终在PC机上仅用了一个小时就完成了一百多万部200专用话机资料的更新及近一百万条记录话费表的处理并生成了数据仓库中的不同粒度的数据,从而轻松地实现了话务的动态分析。2数据仓库与OLAP2.1数据仓库的特点数据仓库技术是用以更好地支持企业或组织的决策分析处理的,面向主题的,集成的,不可更新的、随时间不断变化的数据集合。它通过将数据按照不同的综合程度(即粒度)来组织,以满足不同分析的需要。2.2联机分析处理OLAPOLAP是针对特定问题的联机数据访问与分析。通过对信息(这里的信息已经从原始的数据进行了转换,以反映用户所能理解的企业的真实的”维”)的很多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察。维是OLAP中的一个基本概念,它反映了人们观察数据的特定角度,如电信业务分析中从不同的计费月来观察话机的话务,这里的时间(计费月)就是一个维。一个维往往具有多个层次,如时间维可以从日期、月份、季度、年等不同的层次来描述。但在广东电信公话管理中心,对200专用话机话务的动态话务分析主要从月份这个层次来进行。2.3数据仓库中的星型模式2.3.1数据仓库中的星型模式星型模式是用关系数据库系统来实现的数据仓库中最常见的模式,在这种模式下,数据仓库由事实表和维表构成。事实表中包含着用于分析的指标和链接维表的主键。如下面细节级话机话务和话机资料的关系模式话机话务(电话号码,时间代码,话费)话机(电话号码,地区代码,市县代码,支局代码,用户类型代码,话机安装地址,…)地区(地区代码,地区名,市县代码,市县名,支局代码,支局名)用户类型(用户类型代码,用户类型)时间(时间代码,时间)在这种模型下,可以很轻松地分析出某个维(如时间维中各月份、地区维中的地区)的话务总体情况,这就是在事实表中增加维度的好处;对于事实表中记录不多的情况下,可以用OLAP的一些工具(如Brio)将时间维从事实表去掉,在事实表中增加时间维表的各个取值来作为事实表中的几个字段,这样就可以轻松地分析几个时间的某个或某些维(如地区、市县、支局及用户类型话机)的话费、某些话机的话费的变化这类问题了。2.3.2本系统中对于传统星型模式的改进对于广东电信来说,每个月的200专用话机话务数据都在百万条记录以上,n个月累加起来就是n百万,这样庞大的表用OLAP工具来进行维度转换显然是不现实,也是不可行的;并且它还无法处理每个月一百多万部200专用话机的资料更新。笔者在系统中的解决方法是,直接在数据仓库各级粒度的话务表中去掉时间维度,增加时间维表中的值(各个月)作为各级粒度话务表的字段;又将话机资料和话务表合为一个表,这样不但在进行维度转换时同时更新话机资料,而且能够提高以后用户查询的响应速度。最后在系统中用自己编写的程序在PC机上仅运行了不到一个小时的时间就完成了一个月一百多万条记录的话机资料表的更新和话务表的维度转换、并且生成了各级粒度的综合表。数据仓库采取这种设计方案的另一个好处理就是每一次处理只需要处理一个月的数据,而不是像OLAP工具那样一次需要处理n个月的数据。3系统中的数据仓库设计3.1逻辑模型设计3.1.1确定粒度层次划分粒度是数据综合级别的程度。在数据仓库中,多重粒度是必不可少的。数据仓库的主要作用是DSS(决策支持)分析,因而其绝大部分查询都基于一定程度的综合数据之上,而只有较少的查询涉及细节。在本系统中采用了五重粒度,早期细节级的200专用话机资料表G200_src和话费细节级的表Fee_200_src;维度转换后的细节级话机话费表Phone200Fee_detail;轻度综合级的各地区、市县、支局、话机类型的话务表phonefee200_littleuplvl表;较高综合级的各地区、话机类型的话务表phonefee200_midlvl;以及高度综合级的各地区话务表phonefee200_Areahighlvl、各话机类型话务表phonefee200_Userhighlvl。高度综合级较高综合级维度转换后的细节级级早期细节级轻度综合级图1话务动态分析系统中数据仓库数据组织结构3.1.2关系模式定义关系的描述称为关系模式。它包括关系名,组成该关系的诸属性名等。本系统数据仓库中关系模式定义为: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中增加几个年月的金额字段,再对具体的维度转换程序销加修改(在程序中增加几个变量及几条赋值语句),就可以统计许多年的数据;再者,MSSQLSERVER7.0最多支持1024列的表,这可以用来统计分析80多年的数据。3.2选定数据库产品来建立数据仓库目前数据仓库的实现还主要借助于关系数据库系统,再者由于本系统中数据仓库数据来自于远程数据库,因此要用到分布式访问技术。而远程数据库系统是MSSQLSERVER7.0,加上MSSQLSERVER与其它数据库系统的连接性能又比较好,更不用说与MSSQLSERVER的连接性能了,因此选用了MSSQLSERVER7.0来建立数据仓库。同时这也符合分布式数据库系统建立时尽量采用”同构同质”型局域网数据库管理系统的建议。3.3数据仓库中的数据生成3.3.1数据仓库中的数据生成数据仓库中数据的生成包括操作型环境数据的挖掘和数据仓库中综合级数据的生成这两部分的内容。在数据仓库设计步骤中,数据仓库中数据的生成是其中的关键部分,它为DSS系统提供了基础数据的支持。在这一步里所要做的工作是接口编程,以实现将操作型环境下的数据装载进入数据仓库环境。建立和设计这个接口,不仅要对数据进行抽取,而且还要从面向应用和操作的环境生成完整的数据。数据挖掘的方法主要有DTS(DataTransformationServices)工具,用客户端开发语言的编程,以及DBMS(数据库管理系统)的存贮过程编程。我在进行数据仓库数据挖掘及数据生成时均采用了存贮过程,原因在于它在数据库/数据仓库中的预编译特性及在数据库访问时的高效率。3.3.2数据生成时的数据完整性控制数据仓库中数据挖掘及综合级数据生成时都完成了大量数据的INSERT操作,如果在某一时刻发生了某种错误或系统掉电,那么加载到数据仓库中的数据的完整性就会遭到破坏,因此必须采取一定的措施来保障数据的完整性。MSSQLSERVER提供了事务,使得一个事务内的所有语句被作为一个整体来执行,遇到错误时,可以回滚事务,取消事务内所做的所有改变,从而保证数据的完整性、一致性。在数据仓库数据挖掘时,由于用到了分布式数据访问技术,所以要使用分布式事务;而在进行维度转换时只需使用本地事务即可。3.3.3系统中的分布式数据库访问技术在数据仓库数据挖掘时,由于用到了远程数据库的访问,所以必须使用分布式数据访问技术。MSSQLSERVER提供了远程数据库访问技术,具体访问远程数据表的方法为SELECT[Column1,…,Column]FROMRemote_Server.DbName.Owner.TableName3.3.4数据挖掘的具体流程检查G200_xxxx是否包含了所有分公司的200专用话机的话机资料检查G200_xxxx中每个分公司的200专用话机的话机数量是否异常检查本月200专用话机资料表G200_xxxx是否存在开始成功处理返回0检查fee_200_xxxx是否包含了所的分公司的200专用话机的话费检查fee_200_xxxx中每个分公司的200专用话机的话费记录数是否异常检查本月200业务的话费表fee_200_xxxx是否存在图2数据仓库数据挖掘流程挖掘本月200专
本文标题:基于数据仓库和维度转换技术的广东电信公话200专用话机话务动态分析系统电信科学
链接地址:https://www.777doc.com/doc-2575266 .html