EPDM试井模型分析与迁移方法研究
EPDM试井模型分析与迁移方法研究
[摘 要] 本文在大庆油田试井数据库的基础上,提出了分布式存储的采油厂与测试分公司试井数据库到EPDM模型主数据库的迁移方法。通过对模型的分析,提出了数据字典获取方法与数据映射方法,介绍了一种基于Oracle PL/SQL的存储过程的迁移方法及流程,保证了试井数据迁移的完整性和准确性。
[关键词] 试井;Oracle;PL/SQL;数据迁移:数据映射
试井是油田开发过程中一种重要的作业方式,在油田勘探开发数据库中,试井数据与生产测井数据隶属于开发库中的油田监测类数据。EPDM试井模型是大庆油田2010年在中石油PCEDM试井模型的基础上修订的模型,根据大庆油田试井数据库现状在PCEDM的基础上对表和字段做了一定的扩充。由于EPDM的上线应用,原有试井数据的迁移已成为首要的工作任务。本文从模型分析、字典获取、数据映射、数据迁移4方面详细介绍EPDM试井数据的迁移。
1 试井模型分析
1.1 原试井模型
大庆油田原试井模型采用的是2003年修订的《开发数据库逻辑结构与填写规定》中的油田监测模型。模型中包括DCA类的试井数据和DCB类的生产测井数据。其中试井涵盖抽油机示功图、动静液面、静液面恢复数据、流静压数据和不稳定试井解释成果等15张数据表。
2003版的试井模型采用的是一种松耦合方式设计的关系数据库,不同于EPDM模型的紧耦合,松耦合是指表与表之间的关联程度较低,可以独立应用,表的设计完全是基于实际应用中数据获取的需求而设计。对于这种面向实际应用的数据库设计方式,表间无约束,能够方便数据的录入,但错误数据出现的概率大。
1.2 EPDM试井模型
A1主库模型包含基本实体、地质油藏、油气田注采、测试等17个部分,试井隶属于测试模块,由试井项目、动静液面测试数据、井筒温度压力测试等28张表组成。EPDM试井模型数据表见表1。
EPDM试井模型参照数据库分表设计理论,按照主从表、紧耦合的方式设计。其中试井项目表为主索引表,其他表根据具体试井项目和数据类别(包含现场测试数据、过程化数据和成果数据)来划分,并且作为试井项目表的从表存在。不同从表以ID字段作为主键字段,与试井项目表中的主键字段关联。在原试井模型中频繁出现的主键组合字段(井号、测试日期、监测代码和层段序号组合)则只在主索引表中存储,在从表中不再存储具体数据,仅以ID关联的方式来间接
获取这些字段的数据。这种存储方式尽可能地减少了数据项的冗余,设计更加理论化。但是在习惯了原模型数据存储的管理方式后,新模型在初次应用时难免会觉得有点不方便。而且由于有过多的主外键约束,数据迁移入库较难,但是相对而言,数据一旦进库后则错误较少。
1.3 两种存储方案的对比
1.3.1 主键的差异
主键是保证数据唯一及非空,用来唯一区分表的记录的字段,它主要用于外键的关联、记录的增删改等操作。从性能上来讲,在主键的设计上应该遵循以下几个原则:主键的无意义性、不应包含动态变化的数据、敏感信息不能选做主键、主键应该是单列的(为了提高连接和筛选操作的效率)。从实际应用上来讲,有意义的主键、多列的主键反而更易于数据的使用。
原试井模型多采用井号、测试日期、监测代码和层段序号来作为主键。这种有实际意义的主键的组合唯一标识了数据表的一条记录,防止了记录的重复。虽然容易理解,但是从性能上考虑,执行效率很低。EPDM试井模型应用无实际意义的字段ID来作为主、外键,不同表之间通过ID关联,未与主索引表直接关联的表以子表连接父表,父表与主索引表直接关联。ID是一种由不同字符和数字等组成的字符型随机数,可以由Oralce的随机函数自动生成。由于用程序生成的键值不能重复,在数据库系统中新入库数据与旧数据的区分以及数据库系统的集成上较为方便,执行效率很高。
1.3.2 表级别的差异
原试井模型和EPDM试井模型均按试井施工和资料解释划分,但在表级别上有所区分。原模型均为同级别的表,按油水井测压、分层测试和井间监测等划分。EPDM则按主从表设计,最多划分为4级。主表即是试井项目表的主索引表,从表根据试井项目划分。从表中又划分为父子表。以流静压数据为例,流静压测试台阶数据为流静压测试基础数据的子表,流静压测试结果信息为流静压测试基础数据的父表。这3张表均为主索引表试井项目表的从表。
1.3.3 表内容设计的差异
EPDM模型比原模型增加了水驱前缘、示踪剂、投井下取探深/探砂面、验封等测试项目。由试油结果分析解释表管理原模型的不稳定试井解释成果和干扰试井解释成果数据以及边界数据。为了与试油表和试井的计量工具表建立关联,增加了压力测量与分析和压力测量与压力计两张表作为专门的连接用表。EPDM模型在原模型的基础上增加了台阶数据,方便台阶深度、压力、温度等数据字段的增减。台阶数据的使用虽然减少了字段的个数,但是也导致记录数随着台阶序号的个数翻番,是在牺牲存储空间的前提下减少了字段冗余。
1.4 EPDM试井模型E-R图
EPDM试井模型关系图描述了试井项目所涉及的业务实体关系,共36张数据表。其中井筒、完井层位、井筒地层、井作业阶段、计量数据表、计量工具表、试油/中途测试结果分析共8张表分别引自基本实体、单井地质及试油作业数据。
EPDM试井模型的E-R图见图1。
2 EPDM试井数据字典的获取
在EPDM试井数据模型的应用中,数据字典是数据迁移中不可或缺的工具。下面介绍3种获取数据字典的方式。
2.1 利用Oracle动态性能表获取字典
应用模型文档整理出建表的SQL语句,在Oracle建表时在comments字段填写汉字字段名称,利用系统数据字典可得到实时的PCEDM表数据字典。
2.2 利用PowerDesigne生成数据字典
PowerDesigner可以方便地对管理信息系统进行分析设计,包括了数据库模型设计的全过程。可以制作数据流程图、概念数据模型、物理数据模型。当把PowerDesigner 与用户数据库连接成功之后,通过菜单中的Generate Database 命令可以在DBMS 中生成数据库表。
2.3 利用PDMReader生成数据字典
PDMReader是浏览速查pDM文件的软件,具备ADO连接数据库的基本功能,提供了SQL脚本导出,xls,doc,html,txt文件导出等功能。在PDMReader中导入PDM字典文件,打开DM数据库(access数据库),得到数据字典表,导入Oracle。即可利用系统数据字典得到实时的PCEDM表数据字典。
3 数据映射
数据映射是从源数据库表到目的数据库表的字段之间的对应关系。在数据迁移过程中,源数据库表即是原试井模型管理的数据表,目的数据库表即是在数据库中建立的EPDM试井模型数据表。映射关系的确定也就是为两种模型搭建一个关联的桥梁,为后续数据迁移做准备。数据映射按照迁移方向分为正向与反向两类。正向是从原模型到EPDM,反向是从EPDM到原模型。映射类型分为直接映射、一对多、多对一、计算字段、合并字段、拆分字段、扩展字段、外关键字段、类型转换字段、单位转换字段、无用字段、代码表的映射字段、转置字段等十多种类型。为每种类型的映射指定操作公式,在映射表中按公式填写。正向映射表的截图如图2所示。