• IIANews微官网
    扫描二维码 进入微官网
    IIANews微信
    扫描二维码 关注微信
    移动客户端
  • English
2025机器人产业趋势论坛报名
传感器

水电工程行业中数据仓库设计的关键技术

  2006年08月18日  

目前,数据仓库技术已广泛应用于证券、银行、税务和保险等行业,并且表现了突出的决策支持能力,但在水电工程行业的应用却还很少见。水电工程造价动辄以亿元计,在施工过程中会产生大量的管理数据,以数据仓库及联机分析等技术为基础的决策支持系统可以有效地把这些数据转化为用于决策分析的信息,从而大大降低工程风险,提高工程质量。本文在应用驱动和数据驱动两种设计方法基础上提出了一种复杂报表驱动的数据仓库设计方法,并详细论述了这种方法在某大型水电工程企业生产经营决策支持系统中的成功应用。

一、复杂报表驱动的数据仓库设计方法

数据仓库设计正引起研究人员越来越多的关注,但研究大都集中在数据仓库的性能方面,而对需求分析和模型设计过程的研究较少。目前,开发数据仓库一般有两种方法,应用驱动(用户驱动)法和数据驱动法。应用驱动是指以确认用户的部分需求为开端,循序渐进地建立整个数据仓库。这种方法多是通过与用户面谈,或采用实例分析的方法,获得形式化的用户需求;数据驱动是指通过分析源数据的实体关系(EntityRelationship,ER)模型或实际的关系表的组织方式,逐渐明确需求,并据此得到所能满足的用户需求范围。实际应用中常把两种方法结合,以应用驱动方法发现用户需求,以数据驱动方法发现数据库数据难以满足的需求,然后寻找满足这些需求的方法。

本文提出了一种复杂报表驱动的开发方法,这种方法可以看作是一种特殊的应用驱动,它与普通应用驱动方法相比,有以下几个特点:

(1) 用户提供一系列面向领导的定制报表,并且要求把这些报表作为决策支持系统最终用户界面(Web形式的报表)的模板。这是因为最终报表设计时是以模板的规则为基础,信息细节可以定制。

(2) 用户提供的报表信息完善,经过了详细设计、多维和表头嵌套,可以作为需求的主要来源。由于需求分析始于复杂的报表,可以称为复杂报表驱动。

(3) 开发过程采用逆向思维,把报表看作在线分析处理(OnlineAnalyticalProcessing,OLAP)的结果,报表的内容与格式影响了数据仓库设计的概念设计、逻辑设计及物理设计各阶段。

(4) 能提供这种报表的用户应该规模较大、有很好的计算机系统建设基础与经验。

由于开发者在开发开始时就可以看到用户需要的界面形式,降低了与用户之间沟通的难度,加快了获取用户需求的速度。同时,数据仓库的设计也会在很大程度上受制于报表的结构与内容,这种影响涉及到数据仓库概念设计、逻辑设计与物理设计的各个阶段。针对复杂报表驱动的新特点,下面提出了设计数据仓库时可供参考的几个步骤:

步骤1分析报表结构,找出哪些是历史数据部分,需要利用数据仓库实现,哪些是实时数据部分需要用数据库实现。

步骤2明确报表内容含义及数据单位。

步骤3结合数据库,提出完善报表意见。

步骤4以报表内容为基础找出主题,面向主题建立概念模型。

步骤5根据概念模型进一步建立逻辑模型和物理模型。

二、实例研究

本文提出的复杂报表驱动的设计方法,是以国内一家大型水电工程集团(以下简称集团)生产经营决策支持系统项目为背景的。该决策支持系统采用SQLServer2000的数据仓库解决方案,整合了集团生产经营管理系统和分公司及直管项目部对外报表的数据,以Web页形式显示用于决策支持的报表中。

1、需求分析

在需求分析阶段,集团提供了一系列分类的报表,要求最终用户界面以这些报表的格式在Web页上显示。这些报表是面向领导的,所以,报表的设计既考虑了信息的全面性与综合性,又符合领导的管理习惯。实际上报表本身就可以看作一个需求调研的结果,因此,开发者选择从报表入手分析用户的需求,节省了大量的需求调研时间。但从另一个角度讲,报表的格式又限制了决策支持系统的灵活性,增加了实现的难度。这就要求在设计阶段尽可能考虑全面,降低实现难度。由于整个系统的分析是从报表开始,可以把这种开发方式称为复杂报表驱动。

通过对报表的分析,得到了较全面的用户需求,为了说明问题,下面列出具体需求中的部分内容:

(1) 对工程项目完成产值按年、月、工程属性、项目部和工程名等进行统计,并做最大值和最小值、平均值、增长率等分析运算。
(2) 对实际完成主要工程量进行上计算。
(3) 对合同金额及合同数量按工程属性、工程类别进行小计,并按中的规则做分析计算。为此,首先需要对多种数据源的历史数据进行析取从而形成数据仓库,然后要采用联机分析处理技术对数据进行分析、计算。
(4) 报表中有些内容,如工程量的单位和备注,需要运行时从业务数据库中读取。
(5) 工程量的单位随工程类别的不同而不同;分公司上报的电子表格和企业数据库中的金额单位存在不统一,需要在数据析取过程中进行处理。

在明确了报表所能提供的全部需求信息的基础上,开发者根据数据源所能提供的数据量和相关经验,提出对报表格式的修改意见,如对某些类似报表进行合并或增加报表的内容(如增加对最大或最小值的计算)以完善报表的功能。至此,已完成了复杂报表驱动数据仓库设计方法的前两步,并基本完成第3步,完善报表的过程将延续到概念设计阶段。

2、概念设计

这一阶段的任务就是要建立数据仓库的概念模型,概念模型可以用一种用户能理解的方式表达数据仓库的结构,这种结构应具有两个特点:①不涉及细节,可以专注于发现问题的本质,提高建模的准确性;②可以在设计者和用户之间进行交互,尽早发现建模中的错误,并容易扩充。报表驱动的方法,很好地利用了报表直观的特点,更容易发现问题的本质,并易于和用户进行交流。使用这种方法进行概念分析,开发者可以很快找到主题,从而建立概念模型。

在建立模型过程中,开发者可能会发现报表的不足,这时开发者要以报表为基础与客户进行交流,在需求分析的基础上继续完善报表。

在本应用中,数据仓库的概念设计采用了文献[3]提出的维建模技术。维建模技术中使用的维模型的主要目标是得到一个易于为用户理解及写查询的数据库结构。另一个目标是为了最大化查询效率。该设计方法是基于分析用户的需求,首先按主题识别需要被聚合的相关事实,再识别用于聚合的维属性,并确定维的层次划分,最后根据这些得到一个星型模型。按主题划分的多个星型模型构成了数据仓库的概念模型。

在这一阶段应完成概念模型验证和需求细化的工作。验证的方式可以采取根据报表格式写一些多维查询语句,查询所建立的多维模型是否能满足需要,如果不能满足,则要完善模型。另一方面,通过模型的建立,可能会发现报表功能的欠缺,所以这是一个循环的过程。

从需求分析中可以看出,项目的合同信息与项目在实施过程中完成的产值与工程量情况是决策分析的核心内容。掌握各种工程属性、工程类别的项目金额及数量统计信息,掌握在建项目产值及工程量完成情况与时间、工程属性和类别等项目属性之间的关系对于降低工程风险、提高工程质量有着重要的意义。因此,可以把项目的合同信息和在建项目的产值工程量信息作为分析对象,又由于对产值工程量的数据来源是集团使用的对外报表,对它们的分析实际是对对外报表内容的分析,所以可以得出数据仓库的两个主题:合同主题和对外报表主题。

合同主题包括合同基本信息事实表和相关的维度表,事实表中又包括了合同金额和合同数目两个度量值及相关维度表的外键,如图1所示。

3、逻辑设计数据仓库

逻辑设计阶段以多维模式、系统的工作负荷和一些其他信息(用户查询的使用频率、系统更新频率以及可用空间约束等)为输入,产生一个数据仓库模式,满足在给定存储空间要求下,以最短的响应时间回答最多的用户查询的要求。

在此阶段设计中要考虑的是从设计上提高效率。星型模型和雪花模型是逻辑设计的主要模型。

星型模型较雪花模型简单,可以直接从概念模型转化过来,所以易被理解,但冗余数据多;雪花模型则是基于第三范式变化,有效地去除了冗余。除此之外,报表的格式也提供了模型选择的线索,如工程类别(国内、国外)、工程之间存在从属关系,有些工程只属于国内。如果采用星型模型,则忽略了这种关系,从含义上产生了混淆,也不符合报表的要求。综合考虑这些因素,笔者采用了两种模型结合的设计方法。经改造后的模型如图2所示。

4、物理设计数据仓库

物理设计基于数据仓库的逻辑模式和工作负荷进行索引的优化选择,并需要考虑所采用的数据库管理系统(DataBaseManegementSystem,DBMS)的特殊数据访问结构,索引的选择对数据仓库性能起着关键作用[4]。索引问题在许多现有的数据仓库解决方案中得到了很好的解决,如SQLServer2000提供的数据仓库解决方案、统计分析系统(StatisticsAnalysisSystem,SAS)的数据仓库解决方案。本项目所选择的解决方案为SQLServ2er2000数据仓库解决方案。

SQLServer2000包含的AnalysisServices组件是用于OLAP和数据挖掘的中间层服务器,可以构造用于分析的多维数据集,同时还提供对多维数据集信息的快速客户端访问。根据逻辑模型用AnalysisServices构造好基本的多维数据集后,还应做好两方面的工作:①根据报表需要进一步丰富多维立方体中的度量值(如最大值、最小值和增长率等)。在设计阶段实现这些计算值,可以减少编程的复杂度,提高查询的响应速度,这可以通过AnalysisServices提供的计算成员实现。②由于稀疏性问题,用多维查询语言(MultidimensionalExpressions,MDX)查询的结果中会有很多空值,应该依据显示需要,在设计阶段把需要默认值的地方用默认值代替空值。这一步可通过计算单元来实现。

三、数据析取

数据析取是指从源文件或源数据库中获取数据,并经过清洁、转换、集成后将其加载到数据仓库的过程。其中,清洁是指去除那些在给定范围之外或不符合数据仓库要求的数据的操作;转换是将操作数据转换成另一种格式,以更加适用于数据仓库设计(在大多数情况下,转换是将数据汇总,以使它更有意义);集成是将业务数据从一个或几个来源中取出,并逐字段地将数据映射到数据仓库的新数据结构上。

1、数据析取过程研究

数据析取是构建和维护数据仓库的重要环节,但这一过程仅通过简单的数据加载和复制是难以实现的。首先,数据在从面向应用到面向主题的转变过程中,要丢弃原来不必要的、不适于分析的信息,统计生成决策分析所需要的信息,如在转化过程中,生产经营管理系统中的工程表要映射成一个维表,所需的仅有工程号和工程名信息,其余的工程细节就应该舍去,这一问题在事实表中更应注意,因为过多的冗余数据会造成空间的浪费和效率的降低。当数据从业务数据库或其他数据来源提取出来时,要先对其进行转换,才能将它加载到数据仓库中。其次,在原有的数据库模式中,有关某一主题的信息,可能被分散在各系统中,没有形成关于该主题完整一致的信息集合,所以还需对原数据按主题重新组织。例如,集团的生产经营数据库中关于“合同”这一主题的信息,很可能存在于生产经营数据库的档案管理子系统、编码管理子系统和报表管理子系统中。面向主题的数据组织就是要将原来分散的、关于商品的信息组织起来,形成完整一致的描述后加载到数据仓库中。最后,业务数据库中关于同一主题的数据往往存在重复信息,或同一对象在命名方式和表达方式上不一致,这些数据被加入数据仓库时需要对其进行处理,去除重复数据,使表达方式一致起来。

2、数据析取的解决方案

SQLServer2000提供了很好的数据转换服务(DataTransformationServices,DTS)工具。DTS可以在一个或多个数据源间进行各种数据的导入、导出和转换服务,这些数据源包括文本文件、开放式数据库连接(OpenDataBaseConnectivity,ODBC)数据源(如Oracle数据库)、链接和嵌入数据库对象(ObjectLinkEmbeded,OLEDB)数据源(如其他SQLServer2000实例)、ASCⅡ文本文件和Excel电子表格,其转换过程如图3所示。值得注意的是,数据转换过程中数据的清洁问题。如数据源是一个2维报表,横轴表示产量和产值,纵轴表示各种专项工程并有专项工程的子工程以及专项工程的合计,且纵轴的专项工程及各种合计内容都用了统一的编码。如果不区分合计的内容与单项的内容,在把专项工程作为一个维度去统计产值时,则会把合计值当单项值来累加。解决的办法是在数据转换时把合计的内容去掉或利用编码规则加以区别。

该应用中数据源的一大特点就是大量源数据来源于不规范的Excel报表,采用以下3个步骤把报表数据导入到数据仓库:

步骤1在数据准备区建立数据表,表的字段根据报表中可能出现的字段来确定。数据准备区是原始数据进入数据仓库数据库的一个缓冲区域,它可以是一个单独的数据库,也可以是某数据库的一部分。在此区域中可以对原始数据进行清理、转换等操作。

步骤2用编程的方式将Excel表内容导入到数据准备区。由于报表的格式不统一,要把报表数据导入到数据准备区,需要控制报表的表头和数据准备区中表的字段的对应关系。为了实现这一功能,编写了一个类用来处理和Excel相关的操作,该类实现的主要功能包括:①读取指定Excel表格的数据信息,分离出表头信息;②根据用户指定的Excel表头与相应数据准备区表的字段的对应关系,将Excel表中的数据一对一的导入到数据准备区表中。

系统还为用户提供了导入Excel数据的界面,需要导入数据时,用户只需要在界面上选择一下数据的来源,进而根据系统给出的表头信息和目标字段信息进行一一对应,然后就可以把需要的数据导入到数据准备区中了。同时,系统会把报表上报时间作为时间戳,传入数据库的文件表进行管理。

步骤3用DTS将数据准备区中的数据导入到数据仓库中。

四、结束语

本文提出了复杂报表驱动的数据仓库开发方法,该方法可以提高开发的效率,并且已经在水电工程行业得到了成功应用。

复杂报表驱动的数据仓库开发方法也有一定的局限性。由于它要求企业能提供高质量的复杂报表,而这是缺乏信息系统建设经验的企业难以做到的,因此它只适合于具有一定信息系统建设经验的企业或集团。文章还针对水电工程行业数据源复杂的特点提出了合适的数据析取解决方案,成功解决了数据来源问题。


最新视频
伊顿Bussmann:百年品牌 以创新驱动发展   
欧姆龙光电传感器E3AS | 角度特性演示:高反光不锈钢工件稳定检出   
研祥金码
专题报道
《我们的回答》ABB电气客户故事
《我们的回答》ABB电气客户故事 ABB以电气问题解决专家之志,回答未来之问。讲述与中国用户携手开拓创新、引领行业发展、推动绿色转型的合作故事,共同谱写安全、智慧和可持续的电气化未来。
企业通讯
研祥IPC-310准系统,5月28日冰点底价限时开抢
研祥IPC-310准系统,5月28日冰点底价限时开抢

疯狂星期三,研祥IPC-310准系统,5月28日冰点底价限时开抢!

优傲机器人新品巡展 NVITATION 邀请函
优傲机器人新品巡展 NVITATION 邀请函

优傲机器人将于2025年6月5日在北京亦庄举办新品巡展活动。届时,您将有机会近距离品鉴优傲新品成为首批见证 UR15 中

在线会议
热门标签

社区