供水调度中实现决策支持的方法研究
2009-03-20刘坚
刘 坚
[摘 要] 针对供水调度系统在决策支持方面的不足,本文提出利用SQL Server Analysis Services在OLAP及数据挖掘方面的技术,建立数据仓库、OLAP和数据挖掘三者相结合的决策支持系统的方案,讨论了基于Analysis Services实现供水调度决策支持系统的技术。
[关键词] 决策支持系统;数据仓库;OLAP;数据挖掘;Analysis Services
[中图分类号]F270.7[文献标识码]A[文章编号]1673-0194(2009)02-0074-05
1 引 言
供水企业是服务于公共事业的国有企业,企业的目的是为社会提供优质的服务,而不是利用自己的垄断地位,通过提价来获得最大利益。企业只能通过挖掘自身的潜力,降低成本来获得最大利益。供水调度是供水企业控制生产成本,提高生产效率的重要手段。目前供水企业在供水调度方面基本都应用了无线测控系统,用于定时测量供水管网的水压、各水厂水泵开停机状态、出厂水流量、清水池水位等生产数据,如何从这些丰富的业务数据中获得有用的知识,帮助工作人员提高供水调度质量,帮助企业管理人员提高决策能力,已成为供水企业信息化工作的当务之急。
2 实现决策支持的相关技术
2. 1决策支持系统(DSS)
决策支持系统是指具有辅助决策能力的高级计算机信息管理系统,它是能利用各种数据、信息、知识,特别是模型技术,辅助各级决策者解决半结构化和非结构化的决策问题的人机交互系统。决策支持系统能为企业和组织提供各种决策信息以及问题的解决方案,将决策者从低层次的信息分析处理工作中解放出来,使他们拥有更多的时间专注于最需要决策智慧和经验的工作,从而提高决策的质量和效率。
传统的决策支持系统建立在业务数据库基础之上,以模型库为主体,只能进行定量分析,而对于定性的决策分析显得力不从心;随着企业业务数据量迅速增长,企业需要保存大量的历史数据,需要在大量的历史数据中进行定量和定性分析以获取有用的信息,为企业提供决策依据,因此企业需要重新组织业务数据,建立基于数据仓库的决策支持系统。
数据仓库之父W. H. Inmon对数据仓库的定义是:数据仓库是面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持经营管理中的决策。
目前,数据仓库技术的运用正在向广度和深度两个方向扩展。广度扩展指的是数据源的广泛化,即不仅可以从各种异构的数据库中获取数据,还可以从互联网上获取数据。而深度方向的研究指的是基于已有信息,面向数据分析的应用,包括数据挖掘技术和联机分析处理技术。
数据仓库系统是多种技术的综合体,由数据仓库、数据库管理系统、数据仓库工具3部分组成:
(1) 数据库管理系统(DBMS)负责管理整个系统的运转,是整个系统的引擎。
(2) 数据仓库包括远期基本数据、近期基本数据、轻度综合数据和高度综合数据,是整个系统的核心。
(3) 数据仓库工具则是通过联机分析处理、数据挖掘等工具发挥数据仓库的作用。
2. 2数据挖掘(DM)
数据挖掘就是从大量的数据中通过自动化或半自动化的方法挖掘出有用的模式和规则,即从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中发现隐含的、规律性的、人们事先未知的,但又是潜在有用的并且最终可理解的信息和知识的非平凡过程。它是一门交叉学科,融合了数据库、人工智能、机器学习、统计学等多个领域的理论和技术。数据挖掘技术从数据库、数据仓库中挖掘有用的知识,这些知识以一定的组织方式形成知识库,利用推理机对知识库中的知识进行推理即形成智能模型。利用智能模型可以定性分析方式辅助决策。数据挖掘技术使知识库集成到决策支持系统中形成智能决策支持系统,使其能够对非结构化的问题进行分析推理。数据挖掘的方法和技术主要包括决策树方法、神经网络方法、统计分析方法、遗传算法和模糊论方法等。
2. 3联机分析处理(OLAP)
OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。这些信息是从原始数据转换过来的,能够真正为用户所理解并真实地反映企业方方面面特征的信息。OLAP的显著特征是能提供数据的多维概念视图。数据的多维视图使最终用户能多角度、多侧面、多层次地考察数据库中的数据,从而深入地理解包含在数据中的信息及其内涵。OLAP分析主要是通过对多维组织后的数据进行切片、切块、聚合、钻取、旋转等分析动作,以求剖析数据,使用户能够从多种维度、多个侧面、多种数据综合度查看数据,从而了解数据背后隐含的规律。
3 供水调度决策支持功能需求分析
3. 1供水调度系统功能简介
目前供水企业基本上实现了调度信息化。该信息系统包括遥测与信息处理两部分。遥测部分,通过无线通信技术实现了对管网各测压点的供水压力值的采集,对各水厂的出厂水数据采集,包括出厂水压值、流量,水厂水池的水位、余氯等数据的采集,以及抽水机电设备的开关状态、电压、电流、功率等数据的采集。信息处理部分,利用数据库技术将遥测得到的数据存储在计算机数据库系统中,利用编程技术对存储在数据库中的数据进行检索、显示及报表打印。供水调度的主要目的是掌握各水厂的生产状况,统筹安排各水厂的水泵开停,监视供水管网运行状况。高效的供水调度能让企业在最少的投入情况下获得最好的供水效果,通过减少生产成本实现企业利润最大化的目的。
3. 2供水调度决策支持中的OLAP需求研究
OLAP能够提供对历史数据的各个维度进行深入观察和对某一特征的总体描述,能给企业提供浅层次决策。利用OLAP,能在由业务数据基础上形成的具有多维性的数据仓库之上形成涉及时间和地理位置(包括各水厂和城市供水管网测压点)以及其他维的生产运行数据的各种数据透视表,通过在这些透视表上实现对数据进行切片、切块、聚合、钻取、旋转等分析动作,从而发现一些隐藏的生产运行情况,如分析在各个时段满足城市管网各测压点水压稳定的情况下,各水厂的出厂水流量以及水泵开停数据,实现对各水厂的生产指导。此外,OLAP还可以用于企业的报表分析,在日常的企业管理过程中,需要大量的报表,借助于OLAP工具可以方便地生成各种报表。
3. 3供水调度决策支持系统中的数据挖掘需求研究
数据挖掘在数据仓库和OLAP的基础上能够更好地挖掘隐藏在历史数据背后的知识,有助于企业深层次决策。在由业务数据基础上形成的具有多维性的数据仓库之上,利用决策树技术,挖掘供水调度过程中隐藏的规则,帮助调度管理人员进行日常的调度。利用神经网络技术挖掘各时段各水厂开停水泵的最佳组合。利用关联规则技术挖掘城市管网各测压点水压与出现管道爆裂事故的关联,帮助决策者合理设置城市测压点,以便更好地监视城市管网的运行状态。
4 供水调度决策支持系统实现
数据仓库、OLAP、数据挖掘是计算机领域的新兴技术,基于这3项技术的决策支持系统已成为当前决策支持系统的主流发展方向。目前,世界上几大著名的数据库公司和统计软件公司都相继推出了自己的DSS解决方案和功能强大的DSS开发工具,其中微软公司在它的数据库产品SQL Server中推出的Analysis Services是一个比较流行并且功能强大的产品,它包含了一整套的决策支持引擎和工具,提供了数据挖掘和联机分析处理两种服务。微软的数据挖掘解决方案是基于OLE DB for Data Mining规范的工业标准,它是由微软提出并且由众多数据挖掘公司支持的工业标准。这个规范展示了一个新的类似于SQL语言的数据挖掘语言,数据库开发者可以利用它去建立数据挖掘应用。因此选用微软决策支持系统解决方案来实现供水调度决策支持系统是一个可行和可靠的方案。在该方案中(如图1所示)采用SQL Server作为后台数据库服务器,在分析系统中采用SQL Server 的Analysis Services,它是用于OLAP和数据挖掘的中间层服务器。Analysis Services是客户-服务器结构,它由两个主要部分组成:Analysis Services服务器和客户端的Pivot Table Services(数据透视表服务)。
分析服务器,是微软Analysis Services的核心,它从异构数据源中提取和组织数据,并在多维数据库中对数据进行必要的聚集和处理,同时也可以利用存放在OLTP数据库中的汇总表。通过DSO(Decision Support Objects,决策支持对象)能访问分析服务器,实现在分析服务器引擎上执行管理任务。分析服务器还负责创建和使用挖掘模型从OLAP数据中获取趋势信息和进行预测。
数据透视表服务,是一组实现将OLAP立方从OLAP服务器传递到客户端应用程序的工具。数据透视表支持在线和离线数据分析和数据挖掘,为实现这个目标,数据透视表服务向开发者提供了两个查询OLAP数据源的编程接口:为OLAP服务的OLE DB和ActiveX数据对象(多维),ADO MD。
4. 1数据析取和数据仓库的实现
数据仓库通常以星型模型或雪花型模型组织数据并存储,在这两种模式中,都是由一个核心事实表和一些与事实表关联的维表组成,并在所有表的主要字段上建立索引。事实表是根据选定的主题构造,主要存储用于分析数据的度量值。维(dimension)是一组对事实进行分析时使用的属性。维允许用户从不同角度观察事实,如时间、地理等。在这两种模式中,维的层次内容等信息保存在维表中,并通过事实表中相应维的码值与事实表相连。这些表都可以通过SQL Server中的数据库创建工具和表创建工具完成。对于数据仓库中的数据,用户可以在服务器端使用SQL Server提供的DTS工具从源数据中,进行抽取和转换数据,然后送到数据仓库中。对于调度决策支持系统,源数据包括调度系统数据、管网维修数据、水质检验数据。选择管网维修数据的原因是,调度系统的一个目的是通过管网测压点的水压来发现管道故障,而调度系统中没有这方面的数据,因此需要用管网维修管理系统中的数据进行补充。选择水质检验数据的原因是,调度系统的一个工作是遥测各水厂的水质数据,而调度系统中没有城市管网各取水点的水质数据,因此需要用水质管理系统中的数据进行补充。
4. 2联机分析处理(OLAP)的实现
微软将OLAP功能集成到SQL Server中,其中Pivot Table Services提供客户端OLAP数据访问功能,通过这一服务,开发人员可以用Visual Basic或其他语言开发用户前端数据展现程序。另外,SQL Server还支持第三方数据展现工具。
MDX是微软Analysis Services专用的多维查询语言。为了实现OLAP功能,在Analysis Services中需要创建OLAP数据库。OLAP数据库中包括立方、度量、维以及相关级别的对象。立方是一个多维的数据结构,它由一个事实表和相关的维表及度量组成。它实际上是源数据仓库中的一个视图。
数据透视表是立方的合适用户界面,因为它允许用户基于所选择的维将多维数据“拉平”。其他的维作为过滤条件。数据透视表使用MDX从立方中获取数据,而MDX则通过ADO MD来进行多维查询。通过数据透视表提供的功能可以实现切片、切块、聚合、钻取、旋转等分析动作。
以下利用Visual Basic实现数据透视表来进行OLAP。首先,在VB窗体中增加一个数据透视表控件,然后通过执行以下程序来实现向控件中填入数据。
Dim strSource As String
‘……Store MDX expression in variable
strSource=“MDX表达式”
With Me.PivotTable1
‘……Set the PT connection string using the OLAP OLEDB provider
.ConnectionString=“Data Source=LocalHost;Provider=MSOLAP;”_
& “Initial Catalog=数据库名称”
‘……Set the PT data source to the MDX expression
.CommandText=strSource
‘……Format the totals as local currency
.ActiveData.DataAxis.Totals(“Amount”).NumberFormat=“Currency”
End With
说明:
LocalHost是指运行在本机上的服务器;MSOLAP是为SQL Server Analysis Services服务的OLE DB提供者的名称。
4. 3数据挖掘的实现
在微软SQL Server中的Analysis Services 提供了数据挖掘服务,它提供了一些新的工具,通过发现数据模式和规则并使用这些模式和规则进行预测分析。
SQL Server中的Analysis Services可以对关系数据库和多维数据源中的数据进行挖掘。数据挖掘主要包括3个步骤:建立数据挖掘模型,训练挖掘模型,利用这个已训练好的挖掘模型进行数据分析。
数据挖掘的基本机制是数据挖掘模型,数据挖掘模型是在针对数据挖掘的OLE DB中介绍的一个新概念。一个数据挖掘模型可以被认为是一个关系表,它是具有不同数据类型的列表。数据挖掘模型的结构在许多方面与数据库表的结构相似。但是,数据库表代表的是记录的集合(或记录集),数据挖掘模型的结构表示定义数据挖掘模型的事例集,而所存储的数据则表示来自处理事例数据的规则和模式。在Analysis Services中,被分析的项称为事例(case),所有的事例组成被分析的一组数据,称为事例集(case set)。
在微软的SQL Server中,用户可以使用挖掘模型向导创建数据挖掘模型,并可以使用数据挖掘模型浏览器以图形格式显示数据挖掘模型的内容;还可以编程方式通过用于数据挖掘的OLE DB for Data Mining创建、培训和使用数据挖掘模型,用于数据挖掘的OLE DB for Data Mining是支持数据挖掘功能的OLE DB规范的扩展。
4. 3. 1构建、训练数据挖掘模型
Analysis Services 提供了服务器端和客户端两种架构,可以分别从服务器端和客户端构建数据挖掘模型。如果在服务器端构建数据挖掘模型,并且模型已经得到了训练,那么所有的客户端都可以访问该模型,并且利用该模型进行预测查询。在客户端构建模型,可以使用户在网络断开后在本地执行数据挖掘任务。
在服务器端通过应用程序创建和训练数据挖掘模型,只能使用决策支持对象(DSO),它是一组接口类,它们定义并显示出了Analysis Services使用COM(Component Object Model)管理的对象。从数据挖掘的角度来说,主要关心3个对象:Server对象,它包含了运行Analysis Services引擎的服务器信息;特殊的MDStores集,它暴露数据库和立方使用的通用接口;MiningModels对象。以下是利用现有的数据库、数据源和多维数据集,采用Visual Basic建立数据挖掘模型及训练查询的主要代码:
Dim dsoServer As New DSO.Server
Dim dsoDB As New DSO. MDStores
Dim dsoDmm As DSO.MiningModel
Dim dsoColumn As DSO.Column
Dim dsoRole As DSO.Role
dsoServer.Connect “servername” ‘连接到OLAP服务器
Set dsoDB = dsoServer.MDStores(“数据库名”)
Set dsoDmm=dsoDB.MiningModels.AddNew(“新模型名”,sbclsOlap)
Set dsoRole=dsoDmm.Roles.AddNew(“All Users”) ‘创建角色
dsoDmm.MiningAlgorithm= “Microsoft_Decision_
Trees”‘使用决策树算法
dsoDmm.SourceCube=“数据立方名”
dsoDmm.CaseDimension=“选取的事例维度”
dsoDmm.TrainingQuery=“” ‘让DSO进行训练查询
dsoDmm.Update
‘以下为设置定义模型结构的列
Set dsoColumn=dsoDmm.Columns(“列名”) ‘定义输入列
dsoColumn.IsInput=True
dsoColumn.IsDisabled=False ‘处理前使该列激活
…
Set dsoColumn=dsoDmm.Columns(“列名”) ‘定义预测列
dsoColumn.IsPredictable=True
dsoColumn.IsDisabled=False
dsoDmm.LastUpdated=Now ‘设置更新日期为现在
dsoDmm.Update ‘保存模型的元数据
dsoDmm.LockObject olapLockProcess‘处理模型前进行锁定
dsoDmm. Process processFull ‘处理模型
dsoDmm. UnlockObject ‘解锁
在客户端应用程序中创建数据挖掘模型不是使用DSO而是使用数据定义语言(DDL)。DDL是在OLE DB For DM里定义的,是SQL语言的扩展,非常类似于SQL,这也使得成千上万的SQL程序员而不是数据挖掘专业人员,可以方便地利用他们的SQL知识来建立数据挖掘模型。如果应用程序运行在客户端,那么首先要在客户端通过使用PivotTable Service连接到Analysis Services,然后在应用程序中运行DDL命令,来完成数据挖掘模型创建。以下是用来创建数据挖掘模型的命令:
CREATE MINING MODEL [模型名称]
( [列名] 列的数据类型 列类型,
…
[列名] 列的数据类型 列类型) USING <算法名称>
对于使用OLAP立方的数据挖掘模型的训练模型命令:
INSERT INTO <model name>
对于使用关系型数据的数据挖掘模型的训练模型命令:
INSERT INTO < model name > (<column names> )<source data>
4. 3. 2利用数据挖掘模型进行预测查询
数据挖掘的基本功能是允许最终用户根据从训练数据挖掘模型时学到的知识进行预测。OLE DB For Data Mining中定义了预测查询组件的使用,Analysis Services已经增加了一个SQL扩展,即预测连接(Prediction Join),一个预测连接的完成需要一个已训练好的数据挖掘模型并指定它与新数据的关系,然后利用该模型对新数据进行预测。以下是预测查询的语句:
SELECT < SELECT-expressions> FROM < model name >
PREDICTION JOIN <被预测的新事例> ON <join condition>
[WHERE < WHERE- expression >]
表达式中 PREDICTION JOIN … ON字句规定了数据挖掘模型中的列和设计的输入数据源之间的映射联接。同时OLE DB For Data Mining中制定了大量的预测函数,它们能够在预测语句中的SELECT字句中被调用,利用这些预测函数可以得到大量的附加信息,例如预测精确度,最大可能性的行的统计偏差等信息。详细的预测函数定义可以参考OLE DB For Data Mining。
5 结束语
决策支持系统的建立是一项复杂的系统工程。企业需要决策支持系统提供的决策信息会随着企业的发展和管理的需要不断地变化,因此决策支持系统的解决方案制订和实现技术选择是决策支持系统高效运行的保障。本文提出了一个适合城市供水调度决策支持系统建设的方案及实现方法。供水企业可以利用该决策支持系统提高企业的管理质量,降低生产成本,提高企业经济效益。
主要参考文献
[1] Tony Bain. SQL Server 2000数据仓库与Analysis Services[M]. 邵勇译. 北京:中国电力出版社,2003.
[2] Margaret H Dunham. 数据挖掘教程[M]. 北京:清华大学出版社,2005.
[3] C Seidman. SQL Server 2000数据挖掘技术指南[M]. 北京:机械工业出版社,2002.
[4] 王向辉,匡晓宁,刘伟达,等. 数据挖掘技术及其在决策支持系统中的应用[J]. 计算技术与自动化,2004,32(4).
[5] 陈岚岚,杨波,李旭霞. 数据挖掘技术及其发展方向[J]. 武警工程学院学报,2002,18(4).