发明内容
本发明的目的是提供一种基于J2EE技术中国联通固网话务分析方案的设计方法。
本发明的目的是按以下方式实现的,为了克服常规的联通固网话务分析的弊端,本发明综合分析联通固网日常工作中话务分析、统计处理的特点,并依照这些特点设计了一套专用处理话务统计、分析的规则,实现了多数据表、多维度、多时间、多方向、多方式的千万级大数据量的统计、分析。
本发明的专用的话务统计、分析方案,具体细节包括两大部分,一部分为后台处理话务数据,一部分为前台统计、分析话务数据:
一、话务数据后台处理
1、首先由各地前置机负责实时采集交换机输出的来话、去话、目的码话务数据,生成相应的话务日志文件。为了使话务日志文件不重复和方便后台脚本解析入库。对话务日志文件命名制定了规则,具体规则是按照地市、网元编码、端口、年月日四大要素组合编码形成日志文件的命名,格式为地市_网元编码_端口ID_年月日,例如文件531_8_7889_20121215即是按照上述规则形成的日志文件;
2、对收到的话务日志进行分析、过滤、转换,完成来话、去话、目的码入库操作,形成话务统计、分析方案的基础话务数据形,统一存放在网管中心的数据库中;
3、本方案中的话务统计、分析均是基于入库后的话务数据的。为了方便来话、去话、目的码原始话务数据的入库,特设计三种话务类型的数据库表,每一种话务数据表都按照一定的规则来进行自动生成;
4、在原始话务数据的基础上,为了便于后续前台快速有效的进行统计、分析,采用ORACLE中的物化视图原理,对各个维度汇总物化视图进行设计。目前支持的维度有地理维度、话务类型维度、时间维度、网元维度;
5、以上流程3、4中具体话务数据表字段内容为时间、周期、维度和基本网管参数组成;
6、为了能够满足实时进行更新各个维度的话务数据,在操作系统平台上编写SHELL脚本,把脚本文件放在CRONTAB中,进行定时执行;
7、话务统计分析设计到的参数非常多,通常包括基本参数和运算参数。在工作中基本参数改动较小、运算参数有可能经常调整。运算参数在程序中使用静态方式,如果后续运算参数调整,那么就需要进一步修改程序、编译、发布、测试等流程。无形中增加了工程项目的维护成本,性能运算参数能够动态配置就显非常有必要了;
8、话务统计、分析业务非常复杂,需要大量的中间运算,所以需要设计多个会话级别的临时表,目前根据实际情况设计如下会话级别的临时表。临时表具体字段内容参照上述流程5中的规则建立即可。临时表在操作上比永久表要更快。因为临时表不需要往编目表中插入条目,临时表的使用也不需要访问编目表,因此也没有编目表的使用。仅有创建临时表才可以存取临时表,在处理临时表时没有锁。因为临时表的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其他Session的临时表中的数据。因此,临时表不需要DML锁。如果仅在数据库的一个会话中使用大量的临时数据,这些数据存入临时表能大大提高性能。临时表的数据不会永久存在(同永久表最大的区别),当一个会话结束或者事务结束的时候,数据库自动清除数据。
二、前台话务统计分析处理
1、话务统计、分析前台界面规则设计
1)全省交换机、中继群、目的码非常多,为了便于管理,采用多级树的方式来展现。默认情况下交换机是按照交换机类型来组织数据的。为了用户使用更加方便,特设计了厂家类型、交换机功能类型、地市、区县四个维度来组织交换机数据。上述四种维度之间根据生产需要,进行多维度组合,能够调整顺序,动态生成交换机组织树。例如选择厂家、地市,顺序也是按照厂家、地市,那么交换机生成树的展现方式就是厂家、地市、交换机。中继群、目的码因为数量较大,不能全部加载,所以交换机组织树上点击交换机再进行加载中继群和目的码。这样做的优势提高页面显示速度、方便用户快速查询数据;
2)统计维度分为地理维度(地市、区县)、交换机维度、中继群/目的码三种类型。当选择地理、交换机维度时交换机组织树就按照默认的方式显示交换机,交换机不能往下点选中继群或目的码。选择中继群/目的码维度时,并且话务类型选择来话、去话、来去话时点击交换机加载中继群,否则加载目的码;
3)话务类型分为来话、去话、来去话、目的码四种类型。点击来话、去话、来去话、目的码时分别动态加载来话、去话、来去话、目的码的基本参数和运算参数;
4)时间维度分为刻钟、小时、天、月、年。点击上述时间维度时,会加载对应的时间选择,例如选择刻钟时,加载选择刻钟时间的功能;
5)任意选择基本参数和网管参数。选中网管参数后,自动会将其相关的基本参数选中。用户使用时就能够知道此运算参数是有哪些基本参数参与运算组成的;
6)数据统计方式SUM、AVG、MAX、MIN四种类型;
7)显示方式为TOTAL、LIST两种方式;
8)灵活选择时间范围,分为三类:连续时间、连续忙时、间隔忙时。连续时间是指选择的时间段是一段连续的时间,时间段可以选择一个或多个。连续忙时是指选择的日期是连续日期,时间是一段连续时间,根据上述规则,自动分割成每一日期中不同时间段;
4、在上述界面基础上,采用STRUTS技术对界面进行业务处理。具体业务处理流程如下
1)首先对前台选择的时间段进行业务处理,因为前台传递到后台的时间是多个,每一个时间段都有可能跨月,对于跨月的时间段分割成两个时间段。把所有的时间都进行处理后保存在数组中;
2)根据前台传来的条件动态生成需要调用的话务数据表的名字。例如统计维度为中继群/目的码、话务类型为去话、时间粒度为小时、选择时间段为2012-01-01至2012-12-02时间段,那么按照第一部分话务数据后台处理中物化视图定义规则自动生成统计、分析所使用的库表名称为TPI_OG_HR_201201,因为前台选择时间可以是多个,那么就有可能自动生成多个库表名称;
3)根据上述流程1)、2)和本端/对端交换机、中继群类型等对应的过滤条件生成SQL语句,把多个表中需要的数据放到对应的临时表中。例如上述流程2)中的例子中动态生成的库表TPI_OG_HR_201201对应的临时表为TPI_OG_TMP,其他规则参照第二部分后台话务处理流程8即可;
4)对前台传来的基本参数、运算参数、数据统计方式条件动态形成统计、分析的话务参数。再参照上述流程3)中的临时表TPI_OG_TMP,动态生成运算SQL;
5)最后对前台选择的条件做处理和对应关系,运算好的数据和条件对应关系放在LIST中传到前台,然后再前台进行展示现话务数据的结果。对于条件对应关系能够展现统计分析的各个维度的值,便于用户能够知道目前统计分析的条件。用户感觉生成的结果能够满意,直接导出EXCEL,便于后续上报。
本发明的主要优点是:话务统计、分析设涉及到的业务非常复杂、数据量大、运算复杂。针对上述情况,对大数据量的话务数据采取分而治之的策略,后台对各个维度的数据提前进行汇总处理保存。这样用户在正式使用时,就会大大提高统计、分析的速度。针对话务业务复杂,特别定义了一些界面规则和后台JAVA处理规则,用户使用起来就非常方便,同时也简化了后台JAVA程序处理的复杂度,提高了后台处理的效率。实现话务多数据表、多维度、多时间、多类型、多方式的千万级大数据量的统计、分析。
本发明的有益效果是采用上述流程能够是较大的提高了话务统计分析的性能,简化了业务处理流程,大大缩减程序的代码量,实现多数据表、多维度、多时间、多类型、多方式的千万级大数据量的统计、分析。
具体实施方式
在本发明的方案中规则使用以下字符表示:
(1)话务类型维度来话使用“IC”表示;
(2)话务类型维度去话使用“OG”表示;
(3)话务类型维度目的码使用“DT”表示;
(4)话务类型维度来去话合并使用“ICOG”表示;
(5)时间维度刻钟采用“QT”表示;日期格式使用“YYYY-MM-DD HH24:MI:00”表示;
(6)时间维度小时采用“HR”表示;日期格式使用“YYYY-MM-DD HH24:00:00”表示;
(7)时间维度天采用“DAY”表示;日期格式使用“YYYY-MM-DD 00:00:00”表示;
(8)时间维度月采用“MN”;日期格式使用“YYYY-MM-01”表示;
(9) 地理维度省采用“PR”表示;
(10)地理维度地市采用“CT”表示;
(11) 地理纬度区县采用“CTR”表示;
(12) 统计分析方式累加使用“SUM”表示;
(13) 统计分析方式平均使用“AVG”表示;
(14) 统计分析方式最大值使用“MAX”表示;
(15) 统计分析方式最小使用“MIN”表示;
(16) 显示方式汇总使用“TOTAL”表示;
(17) 显示方式明细使用“LIST”表示
(18) TPI (True Performance Initiative)真实性能标准理念来表示话务数据库表的前缀;
具体方案流程如下:
一、话务数据后台处理
1、首先由各地前置机负责实时采集交换机输出的来话、去话、目的码话务数据,生成相应的话务日志文件。为了使话务日志文件不重复和方便后台脚本解析入库。对话务日志文件命名制定了规则,具体规则是按照地市、网元编码、端口、年月日四大要素组合编码形成日志文件的命名,格式为地市_网元编码_端口ID_年月日,例如文件531_8_7889_20121215即是按照上述规则形成的日志文件。
2、对收到的话务日志进行分析、过滤、转换,完成来话、去话、目的码入库操作,形成话务统计、分析方案的基础话务数据形,统一存放在网管中心的数据库中;
3、本方案中的话务统计、分析均是基于入库后的话务数据的。为了方便来话、去话、目的码原始话务数据的入库,特设计三种话务类型的数据库表,每一种话务数据表都按照一定的规则来进行自动生成。话务库表名称规则是按照TPI(前缀)_话务类型_年月,来话、去话、目的码三种话务类型的刻钟粒度基础表定义。例如2012年01月周期为刻钟的来话中继群、去话中继群、目的码话务数据库表分别为TPI_IC_QT_201201、 TPI_OG_QT_201201、TPI_DEST_QT_201201,具体缩写见上述字符定义,以下使用的字符不再单独说明;
4、在原始话务数据的基础上,为了便于后续前台快速有效的进行统计、分析,采用ORACLE中的物化视图原理,对各个维度汇总物化视图进行设计。目前支持的维度有地理维度、话务类型维度、时间维度、网元维度。具体各个维度话务汇总物化视图定义组合如下表:
在设计好的各个维度物化视图上,为了采用ORACLE物化视图的增量更新技术。需要在低级别维度上创建物化视图日志,因为这是高级维度物化视图更新的基础。例如TPI_IC_QT_201201是来话中继群维度的基础表,在这个基础表上创建物化视图更新日志,因为来话中继群小时粒度TPI_IC_HR_201201是在来话中继群刻钟粒度基础表上进行增量更新的。在创建完物化视图后按照前台使用顺序来创建物化视图索引,创建合适的索引对前台统计分析的速度提高有着较大的作用。例如在TPI_IC_QT_201201基础表可以创建时间、维度为顺序的两个字段组成的索引即可,这样既不影响入库,又提高前台统计分析的速度;
5、以上流程3、4中具体话务数据表字段内容为时间、周期、维度和基本网管参数组
成。以来话中继群维度刻钟粒度为例,为了简单起见,基本参数暂定为SERL(占用话务量),
如下表所示:
时间 | 周期 | 维度 | 基本参数 |
TIME | PERIOD | TRUNK | SERL(占用话务量) |
其他各级维度数据库表字段内容同上;
6、为了能够满足实时进行更新各个维度的话务数据,在操作系统平台上编写SHELL脚本,把脚本文件放在CRONTAB中,进行定时执行。根据中国联通日常工作需要和使用情况,物化视图基础汇总表定时任务为时间维度刻钟,每一刻钟增量更新一次。小时、天、月时间粒度中各个维度表是在时间维度刻钟粒度增量更新的基础上进行增量更新,这样做的好处是增量更新的数据量级相对减少,更新速度就能够大幅度的提高。例如TPI_IC_DAY_201201物化视图的更新是在TPI_IC_HR_201201增量更新的基础上来更新本表,这样就可以减少更新数据。增量更新数据减少,自然更新速度就大大提高,实时性也得到了较大的提高;
7、话务统计分析设计到的参数非常多,通常包括基本参数和运算参数。在工作中基本参数改动较小、运算参数有可能经常调整。运算参数在程序中使用静态方式,如果后续运算参数调整,那么就需要进一步修改程序、编译、发布、测试等流程。无形中增加了工程项目的维护成本,性能运算参数能够动态配置就显非常有必要了。具体细节如下:
1、基本参数表CFG_APP_BS_FIELD的设计方案如下所示:
序列ID | 字段英文名 | 字段中文名 | 话务类型 |
ID | FIELD_EN_NAME | FIELD_CN_NAME | TRAFFIC_TYPE |
1 | SERL | 占用话务量 | IC |
2、运算参数表CFG_APP_OP_FIELD的设计方案如下所示:
序列ID | 字段英文名 | 字段中文名 | 话务类型 | 基本参数 |
ID | FIELD_EN_NAME | FIELD_CN_NAME | TRAFFIC_TYPE | BASICPARAM |
1 | SERL/NCCT | 电路可用率 | OG | SERL、NCCT |
上述配置可以根据需要使用数据库中函数如SUM、AVG、MAX、MIN等;
注:NCCT为可用电路数;
8、话务统计、分析业务非常复杂,需要大量的中间运算,所以需要设计多个会话级别的临时表,目前根据实际情况设计如下会话级别的临时表;
临时表具体字段内容参照上述流程5中的规则建立即可。临时表在操作上比永久表要更快。因为临时表不需要往编目表中插入条目,临时表的使用也不需要访问编目表,因此也没有编目表的使用。仅有创建临时表才可以存取临时表,在处理临时表时没有锁。因为临时表的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其他Session的临时表中的数据。因此,临时表不需要DML锁。如果仅在数据库的一个会话中使用大量的临时数据,这些数据存入临时表能大大提高性能。临时表的数据不会永久存在(同永久表最大的区别),当一个会话结束或者事务结束的时候,数据库自动清除数据。
二、前台话务统计分析处理
1、话务统计、分析前台界面规则设计
1)全省交换机、中继群、目的码非常多,为了便于管理,采用多级树的方式来展现。默认情况下交换机是按照交换机类型来组织数据的。为了用户使用更加方便,特设计了厂家类型、交换机功能类型、地市、区县四个维度来组织交换机数据。上述四种维度之间根据生产需要,进行多维度组合,能够调整顺序,动态生成交换机组织树。例如选择厂家、地市,顺序也是按照厂家、地市,那么交换机生成树的展现方式就是厂家、地市、交换机。中继群、目的码因为数量较大,不能全部加载,所以交换机组织树上点击交换机再进行加载中继群和目的码。这样做的优势提高页面显示速度、方便用户快速查询数据;
2)统计维度分为地理维度(地市、区县)、交换机维度、中继群/目的码三种类型。当选择地理、交换机维度时交换机组织树就按照默认的方式显示交换机,交换机不能往下点选中继群或目的码。选择中继群/目的码维度时,并且话务类型选择来话、去话、来去话时点击交换机加载中继群,否则加载目的码;
3) 话务类型分为来话、去话、来去话、目的码四种类型。点击来话、去话、来去话、目的码时分别动态加载来话、去话、来去话、目的码的基本参数和运算参数;
4)时间维度分为刻钟、小时、天、月、年。点击上述时间维度时,会加载对应的时间选择,例如选择刻钟时,加载选择刻钟时间的功能;
5)任意选择基本参数和网管参数。选中网管参数后,自动会将其相关的基本参数选中。用户使用时就能够知道此运算参数是有哪些基本参数参与运算组成的;
6)数据统计方式SUM、AVG、MAX、MIN四种类型;
7)显示方式为TOTAL、LIST两种方式;
8)灵活选择时间范围,分为三类:连续时间、连续忙时、间隔忙时。连续时间是指选择的时间段是一段连续的时间,时间段可以选择一个或多个。连续忙时是指选择的日期是连续日期,时间是一段连续时间,根据上述规则,自动分割成每一日期中不同时间段;
4、在上述界面基础上,采用STRUTS技术对界面进行业务处理。具体业务处理流程如下:
1)首先对前台选择的时间段进行业务处理,因为前台传递到后台的时间是多个,每一个时间段都有可能跨月,对于跨月的时间段分割成两个时间段。把所有的时间都进行处理后保存在数组中;
2)根据前台传来的条件动态生成需要调用的话务数据表的名字。例如统计维度为中继群/目的码、话务类型为去话、时间粒度为小时、选择时间段为2012-01-01至2012-12-02时间段,那么按照第一部分话务数据后台处理中物化视图定义规则自动生成统计、分析所使用的库表名称为TPI_OG_HR_201201,因为前台选择时间可以是多个,那么就有可能自动生成多个库表名称;
3)根据上述流程1)、2)和本端/对端交换机、中继群类型等对应的过滤条件生成SQL语句,把多个表中需要的数据放到对应的临时表中。例如上述流程2)中的例子中动态生成的库表TPI_OG_HR_201201对应的临时表为TPI_OG_TMP,其他规则参照第二部分后台话务处理流程8即可;
4) 对前台传来的基本参数、运算参数、数据统计方式条件动态形成统计、分析的话务参数。再参照上述流程3)中的临时表TPI_OG_TMP,动态生成运算SQL;
5) 最后对前台选择的条件做处理和对应关系,运算好的数据和条件对应关系放在LIST中传到前台,然后再前台进行展示现话务数据的结果。对于条件对应关系能够展现统计分析的各个维度的值,便于用户能够知道目前统计分析的条件。用户感觉生成的结果能够满意,直接导出EXCEL,便于后续上报。
概括本发明的方法,话务分析方案的步骤:
首先由各地前置机负责实时采集交换机输出的来话、去话、目的码话务数据,生成相应的话务日志文件。对收到的话务日志进行分析、过滤、转换,完成来话、去话、目的码入库操作,形成话务统计、分析方案的基础话务数据。来话、去话、目的码原始话务数据的入库,特设计三种话务类型的数据库表。为了方便来话、去话、目的码原始话务数据的入库,特设计三种话务类型的数据库表。每一种话务类型数据库表都按照一定的规则来进行生成。在原始话务数据的基础上,为了便于后续前台快速有效的进行统计、分析,采用ORACLE中的物化视图,对各个维度进行实时更新统计、分析。目前支持的维度有地理维度、话务类型维度、时间维度、网元维度、参数维度。在设计好的各个维度物化视图上,有采用ORACLE物化视图的增量更新技术,编写增量更新存储过程。为了能够满足实时进行更新各个维度的话务数据,在操作系统平台上编写SHELL脚本,把脚本文件放在CROBTAB中,进行定时执行。编写设计各个维度话务数据的物化视图脚本,采用存储过程脚本编写增量更新脚本。接着使用后台脚本的优势来编写实时更新物化视图存储过程。话务统计、分析业务非常复杂,需要大量的中间运算,所以需要设计多个会话级别的临时表,目前根据实际情况设计如下会话级别的临时表。
其次是前台界面设计在后台脚本汇总好的基础上,进行前台话务处理。定义话务统计、分析前台界面规则,详细规则参见具体实施方式。在上述界面基础上,采用STRUTS技术对界面进行业务处理,具体流程参见具体实施方式。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。