陈立勇,殷秀叶
(周口师范学院计算机科学与技术学院,河南 周口 466001)
随着我国电信行业的快速发展,各电信运营商的数据日趋庞大。我国的电信企业要想在国际竞争中立于不败之地,必须要依靠多维分析技术,对企业庞大的数据进行分析,从而为企业制定出准确及时高效的决策,引领企业朝着正确的方向发展。
当前的数据存储类型大致可分为三种方式:基于多维数据库的MOLAP、基于关系数据库的ROLAP以及两者相结合的HOLAP。MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。
关系型联机分析处理(即ROLAP)以关系型结构进行多维数据的表示和存储,将多维结构划分为用来存储事实数据的事实表和用来存储维度数据的维度表。关系型联机分析处理的特点是占用的空间小,能够节省一定的系统空间,但是用户分析查询的速度会比较慢[1]。
多维联机分析处理(即MOLAP)采用多维数组的方式存储数据。这种处理方式的特点是不需要将多维数据模型中的维度、层次,类别和立方体的概念转换成其他的物理模型,能够提高用户分析查询的速度,但是缺点是加大了系统的存储空间,产生了稀疏矩阵等问题。
通过对比我们发现,本系统如果采用ROLAP的方式,则系统的分析查询速度会达不到设计的要求,如果采用MOLAP的方式,系统的存储空间将会受到很大的制约,所以,系统采用两者相结合的方式,存储细节数据使用ROLAP的方式,存储汇总数据使用MOLAP的方式,即采用HOLAP的方式实现[2]。
本系统采用Cognos的Powerplay组件进行多维分析的构建,然后使用Analysis Studio进行多维分析的查看,并使用高级报表工具Report Studio制作高级管理报表,为网通管理人员提供决策支持。
系统主要使用iqd的文件类型作为数据源文件。使用iqd文件作为数据源文件能够提高系统性能,并能够直接在Transformer就能完成更新数据源的操作,且iqd文件只包含结构信息,占用的空间小,减少了文件传输的规模。
本系统中的iqd文件是通过Cognos Impromptu Administrator生成,部分使用手工的方式生成。使用手工方式生成iqd文件时,维表iqd文件中的SQL语句都有Order by字句按照ID字段进行排序,且iqd字段的描述使用中文表示,虽然描述部分用户最终并不使用,但是这样能够简化构建者对信息的理解,降低出错的可能性;维表中每个维层次都有两个字段,一为ID字段,一为Desc字段,在命名上,ID字段直接使用描述,Desc字段的描述加Desc,例如“月份”和“月份 Desc”。
创建好数据源后,使用 Transformer创建模型,在Transformer中有维度图、数据源、度量和PowerCubes四个窗格,可以利用这四个窗格创建多维模型[3]。
(1)集成数据源数据
在第一个步骤中我们已经生成了iqd文件,在创建多维模型时,首先通过 Transformer中的数据源(Data Sources)窗格将数据集成到模型中来。添加的iqd文件通常可以分为维表iqd和事实表iqd两种。维表iqd实际上就是用来建立多维模型的维度;事实表iqd是用来建立模型的度量。系统中的每个数据源来自于一个数据源文件,每个数据源都有自己的数据源名,每个数据源由构成它的若干列(Columns)组成。在Transformer有三种类型的数据,分别是日期型、文本型和数值型。日期型主要存储时间维度的数据,文本型主要存储结构和类别数据,数值型主要用于定义度量值。
系统还有一部分数据源是以excel表格的形式集成到Transformer中的,所以本系统采用多数据源的方式。系统中的数据源分为两种,分别是事务数据源和结构数据源。事务数据源主要包含那些代表度量的事务数据(数值型数据)和各个维度最底层的文本型数据。而结构数据源主要是那些包含维度和层次信息的数据,以文本型数据为主。
学院自创办以来,已向社会输送毕业生4000余名,近五年来毕业生就业率平均达95%以上。目前下设美术系、音乐系、环境设计系、视觉传达设计系、数码媒体艺术设计系、服装与服饰设计系。现有少数民族艺术和文艺学博士点导师2位,拥有一级学科硕士学位授权(艺术学理论、美术学)2个、艺术专业硕士1个(涵盖美术、音乐和设计方向)、二级学科硕士学位授权(中国少数民族艺术)1个、本科专业6个(美术学、音乐学、绘画、环境设计、视觉传达设计、服装与服饰设计)。在校本科生、研究生1000余人。
在创建多数据源时,对于不同数据源中的相同列,必须使用相同的名称,各结构数据源中的层次必须唯一,这样在对结构数据源和事务数据源进行关联时能够降低出错的几率[4]。且对于事务数据源不能全是各个维度最底层的文本型数据,必须至少有一个度量数据,如图1中的销售收入、销售成本和销售数量。
图1 Transformer窗格
(2)定义模型需要的度量
系统中的度量分为三种类型,分别是标准度量、计算度量、类别计数。标准度量是指由数据源中的列直接定义的度量;计算度量是指需要在标准度量的基础上进行计算才能够得到的度量。计算度量的创建过程中主要运用的计算方法有:计数、求和、最小值、最大值、平均值,详细情况如图2所示。
图2 度量的计算方法
类别计数是指具有唯一属性的维度的一层。类别计数是计算类别数的一种度量类型,它用于为选定的维度和层计算唯一值和非零值,例如,在统计某天购买某种产品的客户数量时,可能一个客户在同一天购买了几次某种产品,但统计时只能计为一个客户,所以,客户计数只能计算一次[5]。
度量的定义是在度量窗格中(Measures)完成。度量与维度的最底一层关联,每个标准度量要在数据源中对应有一个列(计算度量除外)。
本系统的度量主要有销售收入、销售成本、销售利润、销售数量以及与流程有关的一些业务数据等。
(3)建立维度图
多维数据是按着直观和贴近业务规则的方式组织起来的数据。被组合的数据能够回答与业务有关的问题。通过从多个角度观察数据,能确切地发现其内部的某种趋势和某种信息。Transformer将我们分析业务的角度构造成维度,将我们分析数据的粒度构造成维度上的层次,将维度的取值构造成类别,以此来实现多维数据的组织。为了反映业务的组织结构,多维数据是按级分层(Levels)构成维度,而每一层则是由类别(Categories)组成,最高层是对数据的概括性说明,以下的各层依次表示比其上一层更详细的数据。系统维度、层次和类别的关系如图3所示。
图3 维度、层次、类别关系图
Cognos通过维度图窗格(Dimension Map)创建多维结构的维度和层次,并生成类别。由于系统中的时间维度是到日层次的,而Transformer默认的标准日期维度的层是年、季度和月,所以我们还需要定义日维度层次,Transformer日维度层次的是通过日期函数Date Function来完成的,只需要把销售日期从数据源窗格拖到维度图窗格日期的最下端作为一个新层,并加以创建即可完成维度层次日的定义,之后再生成日层次上的类别。
生成类别并不意味着生成立方体,此时在维度图示中虽然能够看到类别,但它们还没有和度量关联起来[6]。所以确定完维度和层次,还需要将维度和度量关联起来,关联完成后便可以生成数据立方体了。
维度和度量准确的创建后,即可生成多维立方体了,系统需要为Cube进行权限的设置,通过划分用户的类别来控制用户的权限,创建用户类的工作完成后,就可以为Cube指定可以访问的用户类和数据分配的权限了。将可以访问Cube的用户添加到Cube中,然后对每个用户类可以访问的数据进行分配,系统按照地市维度来进行权限分配。权限分配好以后,模型的生成便彻底完成了,系统统一使用.mdl格式存储多维模型[7]。
系统通过Framework Manager发布CUBE模型。选择Cognos Powercube类型的数据源。输入CUBE立方体文件的存放路径及访问密码。然后进行测试,测试成功后即可将模型打包发布[8]。
本文结合多维分析技术的特点,以网通决策支持系统为基础,研究了电信行业多维分析模型的构建过程。在竞争日趋激烈的今天,如何帮助企业节约成本,提高决策的效率和准确性,关乎到企业发展的命运,因此,企业的决策支持系统至关重要,而一个良好的企业决策支持系统的是建立在科学合理的多维分析模型的基础之上,所以,多维分析模型的构建研究对于企业的发展起着非常重要的作用。
[1]赵博,叶晓俊.OLAP性能测试方法研究与实现[J].计算机研究与发展,2011,48(10).
[2]孙平,李光亚.养老保险分析决策系统中数据多维分析的设计[J].计算机应用与软件,2012,29(9).
[3]陈启买,贺超渡,刘海.基于OLAP的高校教学协同决策[J].计算机应用,2009(1).
[4]高翔,刘峰,张殿东.商业银行数据仓库建模研究与设计[J].计算机与数字工程,2010,38(8).
[5]徐琴,彭宇扬,彭自成.电子商城的数据仓库建模研究[J].计算机与现代化,2010(7).
[6]林向阳,高展.数据建模在数据仓库建设中的应用[J].微计算机信息,2010,26(2 -3).
[7]陈磊,孙四明,董碧丹.基于Cube的数据展现结构的研究[J].计算机工程与设计,2011,32(9).
[8]Report Portal 3.0,from XMLA consulting[EB/OL].http://www.reportportal.com,2010.