|
设
备
管
理
网
s
b
g
l
.
j
d
z
j
.
c
o
m
|
|
数据仓库的聚集优化 |
|
|
数据仓库的聚集优化 |
|
作者:佚名 文章来源:不详 点击数: 更新时间:2008-9-24 8:58:41 |
|
摘要:基于数据仓库的决策支持系统为电力企业的信息化提供了很好的解决途径。作为数据仓库的关键技术之一,聚集优化技术承担着对现有数据仓库不断地进行优化,弥补了设计开发阶段的不足,该文着重对其在电力决策支持系统中的实现进行了研究,给出一套切实可行的实施步骤。
关键词:数据仓库;聚集优化;电力系统;决策支持
中图分类号:TP311.13 文献标志码:B 文章编号:1003-0867(2006)05-0039-03
近年来,电力企业的信息化建设有了长足的发展,主要体现在建立SCADA/EMS、DMS、MIS以及GIS等一些自动化应用系统,它们采集和保存了海量的电力系统运行数据,为电力企业进行科学决策提供了充足的数据资源。然而,各地区及部门间信息化建设的不平衡性和独立性,导致多数系统软件由不同的生产厂家提供,各种功能相对独立,数据不一致问题突出,相互之间的数据共享困难,难以提供企业级的决策分析支持。使得电力企业迫切需要为企业管理、决策分析等应用建造一个数据中心,数据仓库系统无疑是这类数据中心的一个好的实现方式。
本文在研究数据仓库技术在电力决策支持系统中应用的基础上,着重讨论聚集优化技术的具体实现。作为数据仓库的关键技术之一,聚集优化技术承担着对现有数据仓库不断地进行优化,弥补设计开发阶段的不足,提高数据仓库的运行效率以及可用性、实用性等重要任务,对于不断适应数据的变化和需求的变化,延长数据仓库的生命周期有着重大的意义。
1 数据仓库与聚集优化的概念
1.1 数据仓库
数据仓库是计算机应用的新领域,旨在通过通畅、合理、全面的信息管理,达到有效的决策支持。数据仓库较为准确概念,是 W.H.Inmon对数据仓库的定义:数据仓库是面向主题的、集成的、稳定的、不同时间的数据集合,用于支持经营管理中决策制定过程。
数据仓库不同于传统的数据库,传统数据库中存放的是操作性的数据,主要用于联机事务处理(OLTP),也叫操作型处理,是指对数据库联机进行日常操作,它关心的是响应时间;而存放在数据仓库中的数据是分析性的数据,主要用于联机分析处理(OLAP),也称分析型处理,检索的内容随机性和数量更大,不但存储近期数据,也存储历史数据,且当前数据不断得到补充、更新,并可实现不同来源数据的融合,支持随机查询,为使用者提供更多的信息,而不是数据,为决策者提供了更好的决策支持,它是建立决策支持系统(DSS)的基础。
1.2 数据仓库优化和聚集优化
一般而言,当前主流数据仓库管理系统和联机分析服务器,都要求用户必须熟知企业模型、了解原始数据、对数据仓库具备相当程度的知识背景;然而对于电力企业在数据仓库设计和开发阶段,由于用户和开发人员对此认识可能是不同的或者是不足的,这将导致在使用过程中暴露出大量问题。因此如何根据系统运行的情况和用户需求的变化,对数据仓库不断地进行优化,弥补设计开发阶段的不足,以提高数据仓库的运行效率及可用性、实用性,成为数据仓库应用中迫切需要解决的一个重要问题。
作为数据仓库优化一项重要组成,数据聚集优化主要针对数据仓库数据聚集部分的选择而进行优化,它包括了对进入聚集空间的维、层次以及路径依据实际使用效果从获得最佳时间复杂度与空间复杂度的角度进行选择。具体而言,聚集通过对数据进行分组汇总,使数据到达一个用户感兴趣的层次,然后可以在这个概念更为清晰的数据集进行数据分析。例如对电力公司,可以聚集每天的电量,得到月、季、年的销售数据,然后再分析哪些因素对月、季、年的销售数据产生影响,而在聚集前的数据集,进行这种数据分析研究比较困难或可能本身就没有意义。
对于不同的用户和不同的应用所涉及的数据仓库操作可能访问不同或相同的聚集,采用预先计算聚集立方体,可以避免一部分聚集重复、冗余的运算,更重要的是由此带来响应速度的提高。然而预先计算所有可能的聚集即对所有的聚集进行物化(materializa-tion),将导致由一个海量数据集产生另一个海量数据集甚至空间爆炸,是很不现实的。因此选择在哪些维的哪些粒度层次进行聚集处理,以及采用何种路径实现聚集,与具体的应用密切相关,历来是数据仓库研究和实践中最为关心的核心问题。
2 在电力决策支持系统的应用
本节以在电力决策支持系统中实现数据仓库聚集的优化为目标,说明从数据仓库的构建,到聚集的优化算法实现的整个过程。
江苏恒源电力物资公司在生产管理的计算机应用起步较早,特别是经过近几年的努力,管理信息系统(MIS)被实实在在地应用于各个部门,其数据和功能不断得到实际的检验和完善,这为建立决策支持系统提供了良好的条件。由于现有的MIS系统中的数据比较准确,信息编码和命名体系也比较合理,故基本上沿用原来的定义,这样对项目进度有很大的促进。
2.1 数据仓库的建立
我们采用oracle 9i构建数据仓库,这样在和原系统数据的交换方面保持很好的兼容性。系统采用关系数据库方式存储基本的事实表和各种维表,且事实表和各种维表之间采用星型模式架构,以获得较好的查询响应速度,并以事实表和各种维表为数据源,然后在此基础之上建立相应的主题立方体,用于OLAP和数据挖掘应用。
构建数据仓库中最为复杂的部分在于数据导入,它需要将数据由原系统数据库导入到数据仓库的事实表和维表中,由于都是同构的Oracle,所以无论使用DTS工具还是自己开发的数据转化软件,都能方便地实现数据导入。具体实施中,我们采用专门编写的应用程序,进行这种数据的转换,这包括一部分数据清洗和变换的工作。由于原数据库中属性较少,而数据仓库维表定义的属性较多,导致大量的空缺值,这也对其后的OLAP和挖掘工作造成了负面的影响,所以需要在数据导入过程中加以处理。同时数据导入时,为了形成概念分层和满足维表的设计要求,需要对一些用户信息加以提取,如在客户单位名称中,提取出地区信息,这是原数据库中没有的,这样可以形成客户维上地区的分层信息,方便分层汇总和分析。
2.2 聚集的选择和优化
在数据仓库的设计开发阶段,如果想获得较好的聚集物化方案,需要分析所有用户和应用的需求,研究实际使用中需要哪些维度、粒度层次的汇总信息,从而确定所有可能涉及的聚集和估算使用的频度。但在数据仓库创建的初期,进行这种需求分析显然是比较困难或不太现实,且很多情况下可能并不准确,所以采用系统缺省的聚集物化方案,有时不失为一种简单易行的方法,而将聚集优化放到系统运行的过程中,基于对系统运行情况的分析之上周期性地实施。具体实施步骤如下:
·建立初始聚集物化方案。
·确定并录入与聚集优化的相关参数指标(包括:聚集关键度、应用需求度上限阀值、应用需求度下限阀值、聚集阀值、查询阀值等)。
·启动/周期性触发聚集监测进程,采集系统运行记录。
·系统日志分析和用户需求分析。在对系统日志分析的基础上,按照维和粒度层次的取舍原则和应用需求度的判断流程,确定哪些聚集需要物化,哪些可以删除,哪些聚集需要经过进一步判断。
·建立有向聚集关系表,获取各聚集权重。
·交替执行物化选择算法和聚集路径的优化算法,在满足用户期望值和系统性能要求的基础上,确定哪些聚集需要物化,确定哪些聚集无需物化,而转为查询关系,实现聚集方案的总代价最小。
·根据优化算法处理后得到的物化聚集方案集合和最优路径,重新调整数据仓库的聚集。
优化聚集进程中将用到以下几个重要的程序/子模块,在此做一个简单介绍。
·int find_father_node(node):寻找聚集节点node的父节点,根据节点编号的特点,只需要寻找metric[k][node]不等于∞的节点k,其中k需要在0到(node-1)一次遍历。
·int Route_Optimize(metric):最优路径的主程序,是在已知邻接矩阵情况下,求得整个聚集关系图的最小代价。从节点‘1’开始,调用find_father_node求得其所有的父节点,然后比较得到最优父节点,其生成节点‘1’的代价为最小值Cost(1)(并记录生成路径),同理求得所以节点的最小生成代价并累计,可以得到整个聚集关系图的最小聚集代价。
·int SearchDelNode(metric):根据weight的具体数值与聚集阀值及查询阀值进行比较,确定该节点能否加入可删除节点的集合X。
·int SelectBestDelNode():在SearchDelNode(metric)产生的集合X中,依次预删除每一个节点后,形成新的关系图后,调用Route_Optimize得到每一个关系图的最小代价,进行比较得到最优删除节点。
·int Select_Optimize(metric):物化选择的主程序。通过交替调用Route_Optimize、SearchDelNode、SelectBestDelNode得到所有可删除的节点,进而形成新的聚集关系图也就是优化决策报告,为优化聚集提供方案。
·int Change_Aggregate():依照Select_Optimize()所产生的优化决策报告,对聚集进行重新的生成,DSO中的clsPartitionAnalyer提供了AddGalQuery的方法,用于产生新的聚集。依据新的聚集关系图的聚集方案和生成次序,逐个调用AddGalQuery方法完成图中所有聚集方案的物化。
其中最为关键的是聚集路径的优化算法Route_Optimize,下面我们将作详细讨论。
对于具有n维的立方体,每一个聚集最多都可以由n个聚集直接生成,但由这n个双亲生成目标聚集的效率是不同的,还有可能存在有的双亲聚集没有生成,这可能就要用到祖父层的聚集。因此产生了最优聚集路径选择的问题:在聚集中查找最有效路径,从而以最小的聚集成本、最快的速度产生结果。但最优聚集路径的选择是一个NP问题,只能通过启发式规则,应用优化方法来接近最优效果。
目前应用较多的优化方法有最小父亲方法、缓存计算结果方法、分期清偿扫描方法、贪心算法等,但是其中多数算法仅适用于系统建立立方体的时候,属于一次性物化路径生成,没有考虑实际的查询执行情况和用户需求的变化,聚集的物化都是在查询开始之前定义好的,因此,可以称作是静态的聚集优化。另外,其中的一些算法仅侧重考虑聚集代价的最优或用户响应最优,未能加以有效综合。在这里,Route_Optimize是我们在贪心算法基础上进行的改进算法,用于动态地实现解决聚集方案之间的最优路径问题。其基本思路是:简化聚集方案之间的关系,每一个节点有且只有一个父节点,允许没有或有多个子节点,被淘汰的父子关系转变为虚关系,其约束条件是聚集方案关系图权值总和最低。Route_Optimize算法的基本步骤为:
·输入带权值的聚集关系图R0;
·从聚集关系图R0的最低层出发,逐层扫描各聚集方案节点Xi;
·选择连接Xi权值最小的父节点Qi为节点Xi的最优父节点;
·断开Xi与其它聚集方案父节点之间的连接,以聚集方案节点Xi与Qi的聚集权值累计图R0的总体聚集成本C0;从而得到基于R0的最小代价为C0聚集方案关系图。
在我们实现的数据仓库系统中,以上的算法模块利用C++得以实现,并在实验中和具体应用中均表明: 由于最优路径算法,聚集关系图得到了很大的简化,大大低于原先缺省的聚集成本,这为后来的物化选择算法提供了方便。
3 结论
迄今为止,由于具体实现的复杂性和多变性,数据仓库技术在电力系统中的应用还是十分有限的。本文针对现阶段电力企业数据仓库建设中关键的聚集优化问题,提出一种切实可行的实施方案,并在实验中和具体应用中收到了良好的效果,说明我们的方案是有效可行的。
参考文献:
[1] Efrem G. Mallach. 决策支持和数据仓库系统[M]. 电子工业出版社,2001(4).
[2] 袁林. 基于数据仓库的辅助决策系统设计与实现[J]. 电力系统自动化,2001,25(21):25-27.
[3] W. H. Inmon. Building the Warehouse. 2nd ed. NewYork:John Wiley and Sons lnc,1996.
[4] Michael Corey. Oracle 8i数据仓库[M]. 机械工业出版社,2002(1).
[5] 迟忠先, 王红新, 于凤友. 数据仓库中聚集管理与导航策略[J]. 小型微型计算机系统,2002,26(12):1456-1461.
[6] 张忠能, 尤毅, 程伟宁, 倪逸, 等. 设计数据仓库[N]. 上海交通大学学报,1998,32(10):50-52.
[7] Zohra Bellahsene. Schema evolution in data warehouses[J]. Knowledge and lnformation System 2002(4):283-304.
|
|
资讯录入:admin 责任编辑:admin |
|
|
上一篇资讯: 二次回路通电试验的程序及注意事项
下一篇资讯: 我镇漏电保护开关的安装及运行管理的调查报告 |
|
|
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
|
|
|
|