基于Hadoop的油气信息分布式数据仓库的探究

2017-11-15 22:46鲁帅帅彭甲勇
电脑知识与技术 2017年28期

鲁帅帅+彭甲勇

摘要:油气田企业数据来源广泛,油气钻井作业分布在广阔的地区,因此数据量大而且种类相当复杂,进入数据爆炸时代,各种异构数据爆炸性增长,其中不仅包含很多内部信息,还包括很多有价值的外部信息,传统的关系型数据仓库只擅长处理结构数据,而且扩展能力差,导致新的异构数据难以被利用,这些已经不能满足新时期用户对数据管理的要求。基于Hadoop的油气信息分布式数据仓库运用HDFS存储各类同构或异构数据,通过Hive和HBase对海量异构数据进行管理,并且可以通过Sqoop工具与关系型数据库进行数据交换,最重要的是能够运行在廉价的机群上,不仅降低了成本,还具有更好的扩展性,而且实现对各类数据的充分利用,提高钻井决策的准确性。

关键词:油气信息;Hadoop;分布式数据仓库;Hive

中图分类号:TP2 文献标识码:A 文章编号:1009-3044(2017)28-0015-03

1 概述

油气钻井作业覆盖地域辽阔、分布广泛、导致钻井数据信息数据量大、种类繁多,因此构建合理有效的钻井数据仓库系统,高效协助钻井决策是油气企业领导层关心的主要问题。近年来油气钻井企业已经建设成一定规模的分布式数据仓库系统,而且大多都采用全局-局部的体系结构,数据仓库之间通过加密的网络进行连接,这些数据仓库都是依赖于高性能一体机充当节点,当数据量增加时,只能通过添加节点的方式扩容,成本高昂而且容易遇到单点故障和I/O效率问题,进入大数据时代,油气钻井信息呈现海量增长,传统数据仓库系统已经不能高效地存利用这些海量数据,各个油气企业迫切地需要一种新型的存储和管理这些异构数据的技术。

Hadoop是一个开源的分布式云计算平台,其核心是分布式文件系统(Hadoop Distributed File System } HDFS)和MapReduce,他的优点是可以运行在廉价的低性能硬件集群上,而且与传统数据仓库相比具有更强的运算性能,Hadoop的無限扩展能力突破了单节点存储的瓶颈,理论上具有无限的存储空间。Hive是建立在Hadoop上的数据仓库基础框架,它把海量数据存储在Hadoop的文件系统HDFS中,并且采用类似SQL的方式HQL查询,然后将HQL查询转换为Map/reduce程序,在廉价的硬件上轻松实现大规模数据查询任务。

现在用Hadoop来处理大数据已经不是新鲜的事情,不少企业已经运用Hadoop进行决策辅助,本文结合油气钻井行业,对基于Hadoop的油气信息数据仓库进行研究,旨在提高数据的ETL效率和异构数据处理能力,具有一定的经济意义。

2 传统数据仓库的缺点

传统数据仓库的工作原理如图1所示,首先从最原始的钻井信息中选取所需的主题数据,然后通过ETL过程将数据加载到数据仓库或者数据集市中去,数据集市可以直接通过OLAP服务器为用户提供服务,也可以将数据提供给数据仓库,数据仓库在通过OLAP服务器服务用户,用户也可以通过前端工具进行查询,制作报表或者数据挖掘。

油气钻井公司因为地域分布广泛,单节点的数据仓库或者数据集市不能满足需要,因此建立了分数据仓库系统,即各个地域分别建立自己的数据仓库,然后通过加密网络与总公司的数据仓库相连接,如图2所示,各个数据仓库都有自己的局部运作系统,总部不仅可以提取各个分公司的数据仓库,也可以分析总部的信息数据还有外部数据,所有的数据仓库模型是按照一定的规范定义好的。

分布式数据仓库很好地解决了钻井信息分布广泛的问题,减少了地区公司和总公司之间的频繁通信,地区公司对局部数据仓库拥有着一定的自治权,各种细节级数据分公司自己保留,向总公司提供的数据则都是轻度或者高度综合级数据,因为地区公司在处理自己的业务数据时效率更高,这样整个企业的数据处理效率都能保持在一个较高的水平。

然而随着技术不断发展,钻井信息的数量呈爆炸性增长,传统数据仓库的不足日益明显。

1) 硬件成本高

传统数据仓库的建设通常依赖高性能硬件充当节点,各个节点相互连接。高性能一体机目前被广大企业采用,它不仅可以充当服务器、还可以存储数据,不过缺点也明显,比如中央数据仓库节点,因为要处理全局数据,数据吞吐率量非常大,遇到性能瓶颈时只能通过购买新硬件扩容,使得其成本非常高。

2) 可扩展性低

传统数据仓库的扩展主要依靠增加硬件节点,计算能力全部依赖于服务器的硬件配置,遇到性能瓶颈时只能增加支出购买硬件,而这些硬件的价格都比较高。

3) 数据利用率低

传统数据仓库只擅长处理人工输入的结构化数据,对于新时期大量出现的图片、日志、视频文件等异构数据难以利用,造成数据的利用率低。

3 基于Hadoop的油气信息数据仓库

3.1 Hadoop数据仓库

Hadoop是Apache软件基金会的开源项目,是一个基于java的分布式秘籍数据处理和数据分析的软件框架。Hadoop中的Map/Reduce算法能够将一个任务分割成成百上千个子任务,然后将子任务分别发送到廉价的计算机集群中,每台计算机只负责运算自己的子任务,再将运算结果反馈回去,MapReduce迅速整合这些反馈,形成答案。这种方式能够很好地解决海量钻井数据运算的问题。Hadoop的HDFS文件系统可以以块序列的方式存储各种异构数据,而且可以运行在廉价的机器上,海量钻井数据存储问题也能得到解决。

Hadoop平台提供了一种高效可靠的数据传输工具Sqoop ,能够使得Hadoop和数据库之间进行数据交换和传输。而这些结构化数据可以存储在Hadoop的数据仓库Hive中,不同于传统数据仓库将数据存储在关系数据库中,Hive是直接依托Hadoop的分布式文件系统HDFS作为最基本的数据存储单元,Hive可以将开源的结构化的数据文件映射为一张数据库表,并提供了丰富的SQL查询方式来分析存储在HDFS中的数据;HQL经过编译转为MapReduce作业后通过自己的SQL 去查询分析需要的内容;这样一来,即使不熟悉MapReduce 的用户也可以很方便地利用SQL 语言查询、汇总、分析数据,而且速度更快。而MapReduce开发人员可以把己写的mapper 和reducer 作为插件来支持Hive 做更复杂的数据分析。图3介绍了一种传统数据仓库与Hadoop相互协作的方法,如图:endprint

Hadoop负责处理各类文档、图片等海量数据,包括日志数据,网页数据,图片和视频等,这些数据都是异构数据,存储在HDFS文件系统中,也可以从这些数据中通过ETL过程转化为结构化数据,存储在Hive中;而传统数据仓库处理各种结构化或者半结构化数据,比如客户关系管理数据,软件配置管理数据,企业资源计划数据等,然后通过ETL过程将所需要的数据处理后存储在关系数据库中。Hadoop也可以从传统数据仓库中直接抽取数据,或者将结构化数据分享给传统数据仓库,这种双向共享可以用Sqoop技术来实现,这种协同的方法在当前油气钻井企业的数据仓库建设中可以作为一种过渡手段,然而Hadoop以其优异的性能和经济性,未来取代传统关系型分布式数据仓库也只是时间问题。

3.2 基于Hadoop的油气信息分布式数据仓库

类似于传统的全局-局部的分布式数据仓库布局,基于Hadoop的油氣信息分布式数据仓库使用Master-Slave结构,其中master节点充当集群中的主服务器,负责管理整个系统,存储全局元数据,监视slave节点的运行状态,同时为其下的每一个slave节点分配存储的范围,是查询和写入的入口。Master节点全局只有一个,而slave节点则有很多个,slave节点是数据存储节点,维护一张本地数据的索引表,如果系统要扩展则增加slave节点的数量。Master节点一直处于监听状态,slave节点则负责不断向master节点报告自身负载等状况,master节点可以根据不同情况对slave进行调度。总公司和每一个分公司都有一个master节点,调度各自的各中同构或者异构数据,各个局部单位则可以通过Internet网络连接总公司进行通信。当进行一个大规模数据集的运算时,总公司可以将任务分配给各个分公司,各个分公司云计算平台中的主节点可以将任务分配给其管理下的子节点共同完成,在将各个子节点的结果整合,得出最终结果,再将结果反馈给总公司,总公司在进行进一步整合。在进行数据挖掘时,子公司和总公司都通过Hive抽取,转换和存储数据,不同的是,相比于传统数据仓库,Hive将通过ETL得到的基于主题的结构化数据依然存储在HDFS中,而不是关系型数据库,Hive只是底层数据管理系统的上层抽象,负责将SQL操作转换为Map/Reduce操作,这样就避免了需要一个大容量的存储设备来放置这些数据,以一个很低的成本完成以往需要大规模数据库才能完成的任务。

基于Hadoop的油气信息分布式数据仓库基于以上技术,不仅可以处理内部数据,还可以应对海量的外部数据,而且还具有存储和计算的高扩展性,并且不用考虑传统数据仓库的存储溢出问题,分布式文件系统HDFS的备份恢复机制和MapReduce的任务监控可以保证分布式处理的高可靠性。对于NOSQL数据库的支持利用了传统数据仓库不能利用的海量异构信息,对于提高钻井公司决策的准确性具有重要意义。

4 结束语

传统关系型数据仓库通常经过ETL过程将钻井工程数据信息进行综合归纳、组织、协调和集成,然后为用户提供多种服务,数据来源都是用户输入,手续繁琐,效率低下而且数据利用率低,只能处理同构数据。进入大数据时代后数据量呈指数增长,各种海量异构的外部数据纷纷涌入,以前的数据仓库已经不能满足对这些数据的处理。基于Hadoop的油气信息数据仓库利用了HDFS文件系统工具能够很好地存储和管理海量异构信息,还提供了HBase、Hive、Pig等工具为用户提供更加便捷简单的数据管理系统,为海量数据提供分布式存储服务,而且能通过Sqoop工具与RDBMS实现数据交换。Map/Reduce并行处理框架为海量数据提供数据分析和处理服务。Hadoop平台还能运行在廉价的硬件集群上,这些优势完美地解决了传统数据仓库系统遇到的问题。

参考文献:

[1] 黄晓云. 基于HDFS的云存储服务系统研究[D].大连海事大学,2010.

[2] 郝树魁. Hadoop HDFS和MapReduce架构浅析[J].邮电设计技术,2012(7):37-42.

[3] 霍树民. 基于Hadoop的海量影像数据管理关键技术研究[D].国防科学技术大学,2010.

[4] 李慧,闻豪. 基于数据仓库的OLAP技术的研究[J].电脑知识与技术,2005(2):77-81.

[5] 吕海燕,车晓伟. 数据仓库中数据粒度的划分[J].计算机工程与设计,2009(9):2323-2325+2328.

[6] 夏秀峰,周大海,张雅茜,等. 数据仓库设计中低粒度数据的分割策略研究[J].计算机工程,2006(17):138-140.

[7] 费仕忆. Hadoop大数据平台与传统数据仓库的协作研究[D].东华大学,2014.

[8] 宋利康,李蓉蓉. 数据仓库中的粒度确定[J]. 计算机与数字工程,2001(5):33-36+52.

[9] 李琪,张绍槐,郭建明,等. 油气钻井智能信息综合集成系统[J]. 天然气工业,1997(2):64-67+10.

[10] 秦学勇,刘栋. 数据仓库的可扩展性研究与设计[J]. 计算机技术与发展,2009(5):65-67+71.

[11] 向尧,袁景凌,钟珞,等. 一种面向大数据集的粗粒度并行聚类算法研究[J].小型微型计算机系统,2014(10):2370-2374.

[12] 王缓缓,郭敬义,张警灿,等. 基于Hadoop的数据仓库构建模式研究[J].重庆理工大学学报:自然科学,2015(7):69-73.

[13] 高亢. 从传统数据库到数据仓库[J]. 电脑知识与技术,2008(20):206-207+217.

[14] 于金良,朱志祥,梁小江. 一种基于Sqoop的数据交换系统[J].物联网技术,2016(3):35-37.

[15] 王建军. 基于Hadoop的钻井工程实时数据分析研究[D].西安石油大学,2016.

[16] 张宁生,张允.数据仓库和数据挖掘技术在钻井生产信息中的研究与应用[D].西安:西安石油大学,2005

[17] 马东风,袁翠云.基于HBase的大规模数据存储解决方案的设计和实现[D].山东:山东大学,2015endprint