基于ETL油水井工况宏观控制管理系统的实现

时间:2022-08-03 10:24:21

基于ETL油水井工况宏观控制管理系统的实现

摘要:本文以油水井工况宏观控制图管理系统的设计实现为例,对ETL过程中数据清洗、数据多重转换以及应用ETL技术采取B/S/S系统架构进行了分析。提出了应用ETL技术进行数据挖掘改造原有系统时应注意的几个问题。

关键词:数据挖掘;ETL;工况控制;数据抽取;数据转换

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)20-30366-03

Implementation of the Oil Water Wells Working Status Macroscopic Control Chart Management System Based on ETL

GUO Yu-Ming1,ZHANG Bao-an1,GUO Hai-ping2,WANG Wei1

(1.Department of Information Center,Dongxin Petroleum Production Plant,Shengli Oilfield, Dongying 257094, China;2. Xi'an Jiao Tong University,Xi'an 710049, China)

Abstract: This paper takes the design and implementation of Oil Water wells working status macroscopic control chart management system as an example, analyzed the ETL process of data cleansing, data multiple transformation and the application of ETL technology to B/S/S system architecture. It raised several issues about the ETL application of data mining technology when it transforms the original system.

Key words: Data mining; ETL; Working Status Control; Data extract; Data transform

1 引言

油水井工况宏观控制图是为了油水井生产和管理需要而绘制,用于反映油水井工作状况的图件。根据油水井在不同的工况区域的分布情况,来分析与决策下一步对油水井的管理采取的措施。上世纪90年代初,胜利油田东辛采油厂在借鉴大庆油田抽油机井工况控制管理技术的基础上,结合东辛采油厂复杂断块油田的实际,自主开发了抽油机井工况控制图绘制软件。但由于受当时数据库资源、硬件网络环境、技术人员计算机应用能力等多种因素的影响,推广应用的维护难度较大。90年代后期,工况控制图绘制软件停用,产生了一些不良的效果。由于缺少了对油井工况进行评价以及对各矿、采油队工况管理指标进行考核的机制,油井的工况管理处于某种程度的失控状态,造成方案设计、生产参数的调整方面的随意性比较大,油井工况管理指标下滑,工况不合理的井明显增多。

近几年,随着胜利油田数据库建设的深入和完善,数据资源不断丰富,硬件网络环境也得到很大改善,尤其是基层技术人员计算机应用能力水平的不断提高以及软件开发工具的不断更新。基于以上条件的具备,2006年―2007年,采取数据挖掘的ETL技术对油水井工况宏观控制图管理系统进行了重新设计与实现。

2 ETL技术介绍

数据ETL是一个来源于数据仓库的概念,指数据抽取(Extraction)、转换(Transformation)、清洗(Cleaning)、装载(Loading)的过程,是构建数据仓库的重要环节[1]。用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去[2]。

在ETL技术应用过程中,最困难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的。这个过程非常繁杂,是整个数据仓库建设过程中工作量最大的一部分[2]。约占整个项目的60%-80%,这是国内外从众多实践中得到的普遍共识。

数据预处理、数据集成和数据归约[3]。这是ETL系统的核心部分,是数据转换和数据清洗的过程。数据仓库中有可能存在着大量的噪声数据。引起的一般原因有:数据采集不规范、数据输入错误、丢失值、行业标准数据信息变化与更新等,都有可能导致 “垃圾进,垃圾出”(garbage in, garbage out),系统根本就不可能为决策分析提供准确可靠的支持。为了清除噪声数据,必须在数据库系统中进行数据清洗。数据预处理负责对抽取到的数据进行初步的清洗,解决一些数据的简单变换问题,必须将多模式与数据集进行统一映射,转换为单一的结果集。这就是数据集成的过程。在数据规约过程中,首先针对数据集进行匹配,即发现重复异常,然后根据匹配结果进行处理,删除部分记录或者将多个记录合并为一个更完整信息的记录。值得注意的是,数据转换和数据清洗并不是孤立的,而是渗透在整个数据抽取、数据装载甚至整个数据ETL过程中。

一般来讲:数据加载(L)也不是孤立的。与E、T过程相比较,技术难度不是很高;通常有两种方式:边转换边加载;转换完毕后集中加载。可根据实际情况选择合适的数据加载方式。

3 ETL技术在油水井工况宏观控制图开发中的实现

3.1 工况宏观控制图数据抽取(E)

抽取油水井工况宏观控制图所需数据采取的策略是:首先对所需要抽取的数据进行分类,一类是静态数据,即一段时间内数据变化不大,或者很少变化的数据。如在油水井不改层生产的情况下,油井的原油物性参数:原油密度、原油粘度以及井号、单位代码、油层中部数据、层位、泵径、冲程、冲次、泵深、动液面(正常生产情况下波动不大可作为静态数据处理)等;另一类是动态数据,即经常发生波动的数据,还包括对计算转化结果产生影响比较大的数据,如日产液、含水、油气比等,这部分数据主要来源于油水井生产的日报数据表。对于静态数据的抽取采取按月份分单位进行抽取(对应下图的工况基本数据管理),而动态数据则从日报数据表中抽取。抽取动态数据时与静态数据关联,得到最终的抽取数据结果集。

一般ETL过程,抽取数据过程中需要对不合适的数据进行清洗。但考虑油田油水井生产数据的特点,采取先抽取数据后清洗,此时需要人工对所抽取的数据进行校验或是恢复,以保证每口生产井的数据经过转换都必须进入工况结果数据表,满足基层技术人员对该井工况控制的需要。

3.2 工况数据多重转换(DT)

对于抽取的批量数据理论上讲是可以一次性进行数据转换,但考虑到当前的数据质量、多次转换后的数据结果使用用户层次不同等因素,在该系统中采取按油水井所属单位代码划分方法,缩小转换数据量,降低处理数据服务器的负载,实行多重数据转换,这样处理的优点是:在转换中断情况下可以人工校验转换初始数据。能很好地保障整个系统的安全性和性能。

以抽油机井数据转换为例简要介绍其步骤:

1)经过校验数据的第一次转换(First Transformation):即抽油机井批量数据工况点计算。包括原油物性参数、油气水性质、多相垂直管流压力曲线计算,最终计算每口井的泵吸入口压力、泵效等。计算结果加载,至此第一次T过程完成。若计算过程中发生数据不合理造成异常,则返回转换错误记录,并定位到该记录,提示用户校验抽取数据。直至所需转换数据校验合理,完成第一次数据加载为止。

2)以第一次转换结果以及初始抽油机井边界条件参数为基础实现第二次数据转换(Second Transformation):由边界参数确定抽油机井图版上的边界线,由第一次转换结果处理各井所处图版的位置,并进行分区。实现第二次转换数据的加载;第二次转换结果显示如图1。

3)第三次转换(third Transformation):根据第二次转换结果(理论上工况宏观控制图可以每天进行),按月份、单位代码进行统计分析,统计数据以该单位本月第二次加载结果最新数据为准。形成第三次转换结果,前提是所有下级单位必须在该月进行第二次数据转换,统计结果数据实现第三次加载。第三次数据转换结果如图2。

该系统中数据加载方式:由于数据是按单位代码批量抽取,采取了批量加载的策略,即转换一次完成后加载。其数据加载技术难度比较简单,本文不探讨数据加载问题。图3是油水井工况宏观控制ETL过程图(参照参考文献[4])。

3.3 多重ETL转换结果使用层次对象

每次经过转换结果数据都需要进行加载,以便提供给不同生产管理层次人员使用。第一次和第二次加载结果主要使用对象为采油队(管理区)技术人员或地质、工艺设计人员,目的是对每口井采取相应的措施的依据;第二次转换既是基层技术所需结果数据,也是向第三次转换的中间过程。第三次加载结果使用对象主要是中层或高层管理人员使用。以便对所属单位油水井生产情况以及管理水平有总体上的把握,为下一步油水井的管理工作做出更符合实际的决策。

其他采油方式(如电泵井)以及水井工况宏观图的ETL数据处理与抽油机实现过程相同。

3.4 采取ETL技术时有关系统架构设计

早期的工况宏观控制绘制软件是单机版,很难实现数据资源共享,其使用对象局限于基层技术人员,而且数据采集工作量比较大。为充分利用现有的数据资源,在架构该系统时采取B/S/S(Browser/Web Server/Oracle Server)架构。通常B/S/S系统架构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,Web Server端处理用户与Oracle Server端交互信息,主要事务逻辑在服务器端(Oracle Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。

在进行油水井工况宏观控制管理系统架构设计时,考虑到数据第一次转换,其转换计算量以及复杂程度是非常大,每口井在计算多相垂直管流时要多次反复迭代,当处理数据量较大时,全部负载由Oracle Server承担会造成用户响应时间过长,系统整体性能较差,实际生产中Oracle Server还提供其他应用系统数据服务。因此,在设计该系统架构时,为降低系统负载以及平衡Web服务器与Oracle数据库服务器,除对抽取数据按单位分批量转换外,部分计算工作分配在Web Server端进行,发挥Web Server与Oracle Server相互协作与各自对处理数据的优势,对其数据ETL负载进行均衡与优化,使系统在比较稳定与优化的状态下运行。

4 系统投入运行应用效果分析

系统投入运行得到生产管理部门的积极配合与支持,建立相关的工况运行管理规定与考核机制,并以此为依据开展工况分析。经运行前后结果对比分析,取得了比较好的应用效果。以抽油机井为例,其前后对比如图4。

对比分析发现:合理区(A区)与优良区(F区)除一个单位工况变化不大外(分析该单位区块以高压低渗为主,边界条件不太适合,系统需要针对该单位调整其边界),其他五个单位所占比例均有不同程度提高。整体运行效果比较明显。

5 认识和结论

借助现有的网络环境与数据库资源,对以往单机版软件采取ETL技术进行改造和升级,有以下几个方面需要注意:

1)对抽取数据进行合理的分类,该策略往往能降低数据抽取难度;还应尽量避免用户数据的重复采集,抽取出的数据是清洗还是校验应根据实际情况来决定。

2)在ETL过程中,通常T过程非常复杂,即使数据经过清洗或校验,仍很难避免转换过程中发生异常,导致转换失败;通常需要将T过程分解,分解为比较容易实现的几个T过程,用户与转换结果数据进行交互,能很好改善转换过程。当然,并不是分解的T过程越多越好,T过程太多,势必会增加系统的其他开销,用户操作也会变得复杂,关键是分解T过程掌握一个适当的度。另外,当转换数据过多,转换过程过于复杂时,还可采取批量处理方式。

3)采取ETL技术设计应用系统架构时,不可生搬硬套某个系统架构的理论知识,要根据应用系统实际灵活变通;在油水井工况宏观控制管理系统架构中,合理分配各服务器的负载,提高系统整体性能。

本文从实际角度出发,设计出了一个面向数据挖掘的数据ETL系统,提出了采取ETL技术改造原有系统需要注意的几个方面。通过实际应用说明:该ETL系统是可用的、有效的,在数据挖掘的应用中,显示了其一定的灵活性和实用性。

参考文献:

[1] 张宁.数据仓库中ETL技术的研究[J].计算机工程与应用,2002,38(24).

[2] 王克龙,王玲,王平立,宋斌.数据仓库中ETL技术的探讨与实践[J].计算机应用与软件,2005.

[3] 付中伟,张浩,陆剑峰.面向数据仓库和数据挖掘的ETL设计与应用[J].微型机与应用,2005,(11).

[4] Rodney Gleghorn.Enterprise Application Integration:A Manager’s Perspective.November December 2005 IT Pro.

注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”

上一篇:数字示波器的设计 下一篇:Jar文件执行故障排解