您现在的位置是:首页 > IT基础架构 > 软件与服务 >

基于数据仓库的石化工程预算决策系统

2009-12-09 22:34:00作者: 来源:

摘要本文研究了数据仓库和数据挖掘技术在石油化工行业的应用,探讨了石化建筑工程的DW预算分析系统的构架及其实现技术,提出了数据仓库的一种数学描述方法,结合先进的信息管理技术与工程管理的实际经验,利用数据挖掘算法建立了分析和优化系统的模型,提出了预算决策系统的智能...

现代建筑项目的投资额动辄几亿甚至几百亿,石化工程尤其如此,浩大的工程量产生了海量的数据,有限的人力往往无法按时完成预算工作并从大量数据中找出有用的信息,这种方式产生的误差常常导致施工过程中投资不断追加、工期不断后延。若各部门还有自己的数据库,那么同一条记录很可能存在于多个数据库中。这些原因使得数据间的关系错综复杂,导致了蜘蛛网、数据不一致和事务处理过于分散等问题,给石化工程的日常工作和信息处理带来了极大的不便。本文以石化建筑安装工程为例建立数据仓库模型,设计了一种解决方案帮助领导层及时准确的掌握企业信息,进行科学决策。

1建立数据仓库数学模型

定义数据仓库模型M={D,T,f,O},其中,D=(d1,d2,…,dn),di表示第i个维度,D构成n维的定义域空间,即n维数据立方体空间。T=(t1,t2,…,tm),tj表示第i个度量值,T构成m维的值域空间,即m维度量值空间。f表示函数关系,将定义域空间(数据立方体)的某个点映射成为值域空间(度量值)的一个点。O=O(o1,o2,…,oq)表示数据仓库的运算集,如聚合、切片、钻取等。ok是O中第k种运算,即操作。对数据仓库的任意操作,实际都是该运算集中某些运算的有限次合成。

设Dx,Dy分别是数据立方体空间中的点,Tx,Ty是度量值空间的点,函数为f:Dx→Tx。集合O只有一种聚合运算,用*表示,则f(Dx)*f(Dy)=Tx*Ty=Tx+Ty,且f(Dx*Dy)=f(Dx)*f(Dy),则

上式表示,对定义域空间先进行聚合再做函数运算后得到的值,等于先做函数运算然后进行聚合得到的值。

给定定义域、值域、映射和操作就可以得到一个具体的数据仓库模型,从集合D中选择所需要的维度对应于切片操作,而维度层次就是对定义域进行分区。

2系统实现

若仓库模型中有n个表,第i个表的大小和主键分别为Si和Ki,每张表单位时间内最小和最大记录数为Lmin和Lmax,仓库中数据存储周期为F,可以通过下列式子大致估算数据量的级别,作为选择软硬件的参考,其中α是冗余因子。

图1是系统的分层结构图。客户端是和用户交互的界面,接受用户的各种操作请求(如聚合、钻取及旋转等),将请求传递给Web服务器,并接受Web服务器处理后传递过来的数据,以文本、表格或图形方式显示给用户。

Web服务器负责处理用户的请求,进行逻辑处理,它被分作表现层和业务逻辑处理两个子层。表现层是一些动态网页技术,由于MVC2模型具有结构清晰、层次分明和便于调试等明显的优点,因此表现层主要采用Struts结构,结合JSP/Servlet技术动态生成网页,将业务逻辑层处理后得到的数据,以特定的方式呈现给用户。

在业务逻辑处理层,用户的请求最终被转化为聚集运算的SQL语句,利用OLAP的API函数获得所需要的信息。这些信息很可能在进行聚合处理的时候已经生成。处理的聚合越多那么命中的概率就会越高因而性能就越好,同时汇总表也会越多,占用的空间也就越大。

注意其中业务逻辑层的一个模型库,按照自己的需求编写关联规则、聚类、回归、决策树和神经网络等分析算法模型,这些算法在需要时被组件调用,完成相应的逻辑功能。通过这些算法可以提供按照一定规则得出的最优调度或投资等方案。

图2中事实表里面是各项安装定额,围绕事实表的是多个维表,每个维度都有一组相应的维表存储其结构信息,分别描述事实表中某条记录发生的时间、地点和类别信息。

图2里的地理维、时间维、定额维和概算类别维四个维度与事实表连接在一起,构成了四维数据立方体。可以在该数据立方体上定义切片、旋转钻取等运算。选择N维数据立方体其中的i个维度观察,i个维度的交叉点被映射到m维值域空间,值域空间的m个维度就是要考察的度量值,比如工程量。假定选取时间维、地理维两个维度,时间维的值是2004年,钻取到季度,地理维钻取到省份,就可以看到2004年广东、广西、海南与河南四个省的各种数据。表1和表2分别是总人工费和总设备购置费两个度量值的图表展示。

在创建维度时建立相应的约束是必不可少的,必须保证数据库的完整性规则不被破坏。用户可以在任何地方任何时候浏览公司目前各个项目已完成和未完成的投资额,已完成和未完成的工程量,项目的进展状况,各施工单位的成绩等。

3系统优化

实践表明ROLAP存储结构是很好的选择,本系统也是基于ROLAP存储方式。MOLAP是一种典型的以空间换时间策略,在速度上它优于ROLAP,但带来了大量冗余数据。通过下列方式针对OLAP进行的优化,可以提高ROLAP的响应速度。

1)采用ROLAP存储方式,减小冗余数据;

2)分区可以提高性能,尝试着将表空间划分为200M大小的子分区,能取得较好的性能;

3)利用Oracle索引机制能显著加快检索效率;

4)此外维度的级别也是一个重要因素,级别越多所需要的聚合就越多,本系统都是3~5个级别。

因此在进行聚合时通常需要在性能和空间之间折中选择,以总聚合数的0.5~0.8倍比较适中。

4数据ETL

通过多阶段数据转换和管道数据转换,这些技术足以应付现实世界中复杂的转换工作。通过SQLLoader可以将外部数据文件装载到数据库,也可以在程序中通过API访问所有的装载功能。数据转换可以通过SQL操作或表函数完成。中石化建筑工程公司的早期系统的数据库很多是access版的,而且没有按照DW的结构组织,在本系统中制订了一些规则,按照这些规则进行清洗转换,然后导入到Oracle9i。对这些集中处理,数据清洗转换的规则被集成在专门的Java包中。

5维护与更新

采用增量更新策略,定期将建筑工程事物系统中的细节数据进行综合装载到数据仓库中的,建筑行业的事务处理环境中,数据变化的频率并不是太高,因此可以适当加大周期,半年一次甚至一年一次,使得事务和分析的界限比较明显,降低系统设计和维护的代价。同时定期对OLTP系统中的数据拍快照,以维持仓库系统的参照完整性。可以依据使用时的实际效果对数据仓库进行优化,同时需要定期备份系统,此外需要合理的进行用户身份和权限的控制,保证系统的安全性。

6结束语

本系统是将数据仓库与商务智能技术应用于石化建筑行业的一次尝试,也是传统低效概算方式的优良替代方案,其优点有:

1)能够减轻预算工作量,快速准确的预测程量、投资额,为投资和施工提供依据。

2)提供了便捷的图形化浏览界面,用户可以通过图形直观的看到分析的结果。

3)如果已有的模型不太适用,用户可以方便的向模型库中增加新的分析模型。


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们