基于Hadoop的油气水井生产大数据分析与应用

2020-06-04 02:01刘凯铭王洪亮石兵波钱育蓉
科学技术与工程 2020年11期
关键词:数据仓库油气田油气

刘凯铭, 王洪亮, 石兵波, 钱育蓉*

(1.新疆大学软件学院,乌鲁木齐 830081;2.中国石油勘探开发研究院计算所,北京 100083)

中国石油油气水井生产数据管理系统(简称A2系统)是中国石油天然气集团公司的大型生产管理信息系统之一。A2系统以油气水井生产管理为核心,采用分散式部署,应用关系型数据库管理油气田分公司的生产数据,共计16台数据库。系统共管理着36×104余口油气水井的生产数据,生产历史近60 a,记录数为6×108多条,结构化数据量达到5 T多。A2系统已经成为中国石油油气生产管理的日常工作平台,取得了显著的应用效果。A2系统主要包含基础实体、生产测试、油气生产、增产措施、采油工艺(井设备)、油气集输(站库)6类数据共计9 512项。

由于数据量大且较为分散,在进行整体业务分析时,暴露出很多问题。海量数据在单个数据库上查询效率低,多数据库间存在信息孤岛,数据利用率低,并且无法实现多维分析业务需求。原因是多方面的,首先关系型数据库中数据记录超过千万条,在多表联合查询时,查询时间超过5 min;其次多个系统间需要重复操作,在总公司进行数据分析研究时,必须登录多套系统查询数据之后再进行手工统计分析工作,无法高效地进行全局分析。

国外大数据技术已经在石油工业中得到了应用。美国埃克森公司、菲利普斯石油公司等大型国际石油巨头在该领域进行了研究和实验,并取得了显著的成效[1-2]。英国石油公司将大数据技术应用到统计分析,建立模型优化油气田的生产过程,降低石油公司生产成本,目前逐步向建立机器学习模型和人工智能等方面延伸。

中国油气行业对大数据技术的研究与应用也在深入推进。中国石化建设大数据分析平台,形成大数据离线分析、批量分析和实时分析平台[2-3]。中国海油智能钻井技术应用示范项目建立起数据之间精准的关系,实现对目标井参数的准确预测[3-4]。眭冠男[5]、鲁帅帅[6]将基于大数据技术的分析方法应用于油气田钻井方面;王建军[7]利用Hadoop技术设计并实现了一个钻井工程实时数据分析系统;杨飞等[8]、曲海旭[9]利用大数据智能钻井合理设计方案,减少相应的施工成本,规避钻井中的风险,提高钻井效率和钻井水平。

基于以上原因,迫切需要一个平台能够满足全局油气水井生产动态分析需求,可以深入透视分析数据背后潜在的有用信息,支撑油气生产科研工作。

1 总体设计

1.1 架构设计

处理的数据是注入井生产数据,设计将Hadoop框架作为本系统的基础支撑架构,其分布式文件系统(hadoop distributed file system,HDFS)和并行计算框架MapReduce非常适合大数据的存储和处理,并且易于横向扩展。选用分布式数据仓库Hive并使用维度建模技术来存储注入井生产数据。

使用数据抽取、转换和加载(extraction transformation loading,ETL)技术实现多个数据库中数据的统一存储,通过数据抽取、清洗、加载等步骤,将源数据索引到Hive数据仓库中。

由于Hive数据仓库的查询原理是基于MapRuduce提供服务[10-11],其并不适合作为快速响应需求的联机分析处理(on line analytical processing,OLAP)服务。采用Apache Kylin引擎对数据仓库提前进行数据预聚合处理,并将预处理后的结果存储于响应时间更快的HBase中,从而提高数据的查询速度。

系统主要从4个方面进行设计:Hive数据仓库、ETL数据采集、Kylin数据预聚合和数据可视化。以Hadoop大数据平台为基础,使用Kettle作为ETL数据采集工具,Hive数据仓库作为数据存储中心,利用Kylin的数据预聚合功能来构建满足OLAP业务需求的数据立方体,最后通过多维数据可视化技术对业务人员外提供油气生产数据的OLAP服务,多维分析架构如图1所示。

图1 油气生产多维分析架构Fig. 1 Multidimensional analysis framework of oil and gas production

系统主要分为4个模块,包括数据仓库模块、数据采集模块、数据预聚合模块和数据可视化模块。

(1)采用Hive作为数据仓库,设计支持多维度、可关联、面向主题分析的数据模型,经过ETL过程的生产数据存储到Hive数据仓库中。实现16个油气田公司的油气生产数据的统一存储与管理。

(2)数据采集模块基于ETL技术实现分散数据库中的融合。通过数据的抽取、清洗、转换、加载等步骤,将分散在大庆、辽河等16个油气田分公司数据库中的生产数据存储到Hive数据仓库中。

(3)数据预聚合模块使用Kylin分析引擎对数据仓库中的生产数据按照多维分析需求进行预聚合,计算数据立方体结果存储在HBase中,提高数据响应速度。

(4)数据可视化模块负责向数据计算层发送请求,kylin本身提供了报表展示的接口。返回的查询结果以图表等形式展示,业务人员可以更为直观地观察分析结果。

利用Hadoop等大数据技术构建注入井生产数据多维分析平台,开展宏观管理分析、问题井管理分析、注入井生产运行分析等应用,为油气田开发研究提供数据支撑。

1.2 关键技术

1.2.1 HDFS分布式文件系统

HDFS是Hadoop底层存储数据的分布式文件系统,存储所需要的所有数据,为处理超大数据量运算的程序提供存储服务[12-15]。HDFS的优点不仅可以存储关系型数据库中的结构化数据,还能存储各种类型的外部数据。HDFS采用主从架构,主节点管理多个数据节点,是Master的角色,数据节点存储着数据,是Slave的角色。数据节点通过主节点连接组成一个集群,各个集群又通过主节点之间相互链接,最终形成HDFS文件系统[16-18],如图2所示。

图2 HDFS原理Fig. 2 HDFS principle

1.2.2 MapReduce并行计算

MapReduce是一种并行计算框架,适用于大规模数据集的并行运算[18-20]。它的设计思想是将一个大的计算任务分为多个小的任务,然后把这些小的任务分配到各个工作节点进行计算,每个子节点完成自己的计算任务后,把各个子节点的结果进行聚合操作,从而算出最后的结果,如图3所示。

图3 Mapreduce并行计算Fig. 3 Mapreduce parallel computing

1.2.3 Hive分布式数据仓库

Apache Hive是Hadoop生态系统中的第一个结构化查询语言(structured query language,SQL)框架,是构建于大数据平台上的数据仓库,基于HDFS和MapReduce实现[21-22]。通过Hive可以对HDFS上的数据做MapReduce操作,通过使用类SQL,来实现由Java编写的复杂过程,更加便捷业务人员的使用。

Hive通过给用户提供的一系列交互接口接收到用户的SQL指令,使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce执行,最后将执行返回的结果输出到用户交互接口。

Hive提供给用户的接口主要有3个:CLI、Client和WUI。其中最常用的是CLI,当它启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至HiveServer。在启动Client模式的时候,需要指出HiveServer所在节点,并且在该节点启动HiveServer。Hive提供用户访问数据仓库的手段,同时也提供了API接口进行访问查询。

1.2.4 Kylin计算引擎

Apache Kylin是一个开源分布式OLAP分析引擎[22-24],提供Hadoop上的SQL查询接口以及多维分析能力,它能在亚秒内查询巨大的Hive表。

Kylin的核心思想是利用空间换时间,即对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube存在HBase中[25-28],供查询时直接访问。把高复杂度的聚合运算、多表关联等操作转换成对预计算结果的查询,这决定了Kylin能够拥有很好的快速查询和多维分析能力。

1.2.5 Hbase实时查询数据库

Hbase是一个高可靠、高性能、可伸缩的分布式NoSQL数据库[29-31],可以在多个节点上搭建大规模集群。Hbase是参考Google的BigTable建模,使用类似GFS的HDFS作为底层文件存储系统,在其上可以运行MapReduce批量处理数据,使用Zookeeper作为协同服务组件,可以通过行健检索。

HBase也提供了数据库操作方式,如创建、删除、插入、修改。数据类型只有字符串一种类型,并且存储表格可以设计得很大[32-33],行数可以达到上亿,列数可以达到上百万。

2 技术实现

根据总体设计,技术实现主要包括数据仓库建模、数据采集、多维分析和可视化4个步骤。

2.1 数据仓库建模

注入井生产数据多维分析主题主要包括注入井宏观管理、问题井管理、注入井生产运行分析等主题,如表1所示。每个主题的数据都是多维的,需要从不同的角度来进行分析。现以开发动态指标跟踪分析主题的注入井生产数据分析为例,介绍Hive数据仓库的建模过程。

表1 注入井多维分析主题

注入井生产分析数据主要包括基础数据、产量数据、状态数据、措施数据、机采数据等。

多维分析模型主要包含事实表和维度表。事实表是数据仓库结构中处于多维模型的中央,包含维度和与维表关联的外键和度量值。维度是用户进行分析问题时的一个重要工具,也是重要属性,通过改变维度来改变人们观察数据的角度,通常对于简单的数据模型,一个事实表就可以表示一个主题,一个事实表中对应多个维度表。

注入井生产分析维度主要包括日期、井别、注入方式、注入介质、井型类别、油藏类型、油气单元、组织机构等维度,如表2所示。

表2 注入井维度层次描述

图4 注入井数据模型Fig. 4 Injection well data model

与注入井分析相关数据指标包括基础数据、生产数据、状态数据、机采数据、关井数据等105项关键指标,如表3所示。

注入井生产数据多维分析属于密集型计算,而星型模型优点是数据集中运算速度快且布置相对简单。虽然数据冗余度较高,而MapReduce正好可以改善数据冗余度的问题。所以采用星型模型,如图4所示,该模型是事实表与所有维表相连,事实表在中间位置。

表3 注入井生产事实表

2.2 数据采集

将大庆、吉林、辽河等16个油气田分公司A2数据库中的注入井生产数据加载到Hive数据仓库中。将关系型数据转变为对应主题的数据,转化过程如图5所示。

图5 数据处理流程Fig. 5 Data processing flow

在从油气田分公司数据库中抽取数据时由于数据量巨大,首先设置一个数据缓存区,将数据一次性地从数据库中读取出来。

在数据的抽取过程中,首先将数据抽取到临时存储区,然后进行数据的转换和清洗,转换工作是将生产数据中格式不一致、单位不统一的数据进行处理等,清洗的工作就是删掉错误、没用的数据。

在本次作业流程中包括了日期维度、井别维度、注入方式、注入介质、井型类别、油藏类型、油气单元、组织机构等维度,以及注入井生产事实表。这里对每个维度都进行相应的定义,如时间维度,如果原数据是一个日期字段,要进行拆分,最小粒度为天,将时间拆分为年、季度、月、日。而其他维度按照上述规则,进行度量统一、空值处理、类型转换等。经过作业流程和转换流程的协同工作,最后形成星型模型。

2.3 多维分析

数据预聚合模块的主要作用是对Hive数据仓库中的注入井生产数据进行数据预聚合操作,以满足高响应的OLAP查询请求。通过Kylin对外提供的RESTful接口来使用其内部功能,并在原有功能的基础上进行系统功能扩展,以满足对自动化运行、管理、监控和报警等方面的需求。

多维立方体作为OLAP数据分析的重要对象,它是逻辑上的一种数据组织形式。采用四元组来对一个多维立方体进行定义。四元组中的几个元素是从不同方面对该立方体的特征进行描述,其定义如下。

D=(d1,d2,…,dn)为维集,di表示维度名。

M=(m1,m2,…,mn)为测度集,mi表示测度名。

A=(a1,a2,…,an)为属性集,ai表示属性名。

F=D→A表示从维集到属性集的一对多映射,这个表示每个维度都有各自的对应属性。

约束条件如下:①D∩M=0,表示了维集和测度集是不会有交集的;②∀i,j且i≠j,f(di)∩f(dj)=0,即表示了任意两个维集的属性集不会相交。以Cube来表示注入井生产数据多维立方体为例,定义数据分析模型为Cube=

维表D1=(生产数据从所属日期维度、井别维度、注入方式、注入介质、井型类别、油藏类型、油气单元、组织机构这8个维度进行)。

事实表M1=(日注入量、日注气量、日注母液量、溢流量、日注表活剂量……)。

维表和事实表A1=(日期维度、井别维度、注入方式、注入介质、井型类别、油藏类型、油气单元、组织机构、日注入量、日注气量、日注母液量、溢流量、日注表活剂量……)。

f1=(时间)={年、季度、月、旬、日}。

f2=(井别)={采油井、采气井}。

f3=(注入方式)={正注、反注、合注、地下配注、地面配注……}。

f4=(注入介质)={清水、污水、热水、碱水、聚合物、表活剂……}。

f5=(井型类别)={直井、水平井}。

f6=(油藏类型)={中高渗砂岩、低渗砂岩、砾岩、稠油、特殊岩性}。

f7=(油气单元)={油气田、油气藏、区块、层}。

f8=(组织机构)={油田公司、采油厂、采油矿、采油小队}。

符号注释:A为属性集;ai为属性名;D为维度集;di为维度名;F为维度集到属性集的一对多映射;f为维度层次;i、j为维度序号;M为测度集;mi为测度名;n为子任务数量。

Kylin的数据来源是数据仓库,当生产数据导入到Hive数据仓库后,同时需要在Kylin中建立一个数据模型,并且与数据仓库中的数据模型一致。模型中包括了一个事实表和多个维度表,以及事实表和维度表的关联关系。

当模型设置完成后Cube引擎就会开始计算,首先是读取Hive中的数据,插入到临时的扁平表中。大量的注入井生产数据全部存储在Hive中,为了更好地管理数据,加快数据的查询效率,Hive采用了分区的方式,将数据按照时间存放。Kylin框架进行Cube计算的时候,也是根据时间进行运算,Cube的分区列和Hive表的分区列都是按时间列。这样Hive可以跟着分区迅速定位需要计算的数据,而不需要扫描所有的数据。

MapReduce计算完成后,数据转换为HFile直接加载到HBase。数据是以key/value结构存储在HBase中,查询的时候直接从HBase中读取数据。

2.4 可视化

可视化是在数据分析中直观展示数据关系的重要方式。平台采用ASP.NET、Echarts3.0、WebGIS等可视化技术将数据计算的结果以多种方式展示给业务分析人员,最终实现高效注入井生产数据分析,来满足实时掌握油气田生产动态的需求。

3 应用效果

基于大数据技术,解决了多个数据库之间存在的数据孤岛和查询分析效率低等问题。以8×104余口注入井1年产生的3×107条生产日数据记录统计分析为例,数据查询时间由之前5 min下降到3 s。分析人员只需登录一套系统,即可实现油气水井生产数据多维分析,快速提取有用信息。

3.1 性能对比分析

对大数据环境下查询与目前A2应用的数据库查询方式进行了实验对比。表4、表5分别记录了Oracle数据库和基于Hadoop环境下的查询执行显示数据的时间,图6所示为查询时间对比。

表4 Hadoop查询时间记录

表5 Oracle查询时间记录

图6 查询时间对比Fig.6 Query time comparison

从图6中可以看出,在数据量为1 000条记录内的情况下Oracle查询和基于大数据的查询耗时差别并不是特别大。但在查询记录超过1 000条记录的情况下,并且不断增加查询量时,Oracle数据库的查询时间随着数据量的增大,耗时明显增加,并且随着后面查询条件和数据量的变化,耗时增长率更快。基于Hadoop的大数据查询耗时很少且随着数据量的增大,查询耗时增长率很小。这是因为传统关系型数据库在查询操作时,会遍历整个数据库相关联的表,由于有些查询是需要视图作为桥梁进行关联查询的,因此当数据量逐渐增加时查询的性能就会受到影响。而Hadoop的并行处理能力和大数据分析能力则会发挥其计算优势,数据量越大,它发挥的优势也就越大。总体而言,使用基于Hadoop的大数据查询方式,对日益增长的数据进行处理有较为明显的优势。

3.2 宏观管理分析与应用

宏观管理分析主要针对8×104余口注入井总体指标进行监控和分析,实现年、季度、月、日的准实时统计分析,掌握生产情况,定位生产问题。分析日注液、日注气、综合递减、自然递减等指标,预判生产趋势,及时发现生产异常,如图7所示。

图7 宏观管理分析Fig.7 Macro-management analysis

3.3 问题井管理分析与应用

实现对所有注入井进行监控,每天自动筛选问题井,使工程师可以快速定位到问题井,如图8、图9所示。问题井管理分析主要包括关井情况、欠注、不能分水、分层测试、洗井等问题,针对问题进行实时统计和预警,并逐层向油田、区块、生产井进行追溯,分析偏离生产计划的原因,提出开发调整对策。

图8 不同注入方式问题井分析Fig. 8 Problem wells analysis for different injection modes

图9 不同注入介质问题井分析Fig. 9 Problem wells analysis for different injection medium

3.4 注入井生产运行分析与应用

针对注液、注气等生产关键指标实施量化监测,通过报表动态展示,观测注入井生产运行情况。主要对每月的日注液量、气量等关键指标进行对比分析,如图10、图11所示。收集生产运行动态数据,追溯数据变化规律,评估注入井生产风险,并作出预判。业务统计分析工作时间由原来的1 d缩短到5 s,做到实时监控预警,从而指导生产。

图10 日注液量运行分析Fig.10 Operation analysis of daily injection volume

图11 日注气量运行分析Fig.11 Operation analysis of daily injection gas

4 结论与展望

研究了注入井生产数据的统一存储、计算、分析,构建了数据的多维分析平台。基于Hadoop的大数据技术实现注入井生产数据多维分析,解决了多表联合查询效率低、多库之间存在数据孤岛问题。开展宏观管理分析、问题井管理、注入井生产运行管理等应用。实现分析方法的创新,满足现有油井业务分析需求。

挖掘石油数据的潜在价值对油气田生产管理具有十分重要的指导作用。随着油气田的不断建设,未来油气田开发将会更加智能化,这意味着数据的增长也会更快,其中包含的价值也更高。本文研究的大数据技术只是应用到注入井数据的分析。未来的物联网设备和传感器的接入将会增加更多的数据类别,如何充分挖掘、高效利用、让数据产生价值是今后研究的方向。

猜你喜欢
数据仓库油气田油气
油气田工程造价控制要点及其管理模式
涠洲油气田风能资源特征分析
智能油气田生产管理系统
《油气地质与采收率》第六届编委会
《非常规油气》第二届青年编委征集通知
基于数据仓库的数据倾斜解决方案研究
探析电力系统调度中数据仓库技术的应用
数据仓库系统设计与实现
我国产量最高的油气田长庆油田
2013全球主要油气发现