魯帥帥+彭甲勇
摘要:油氣田企業(yè)數(shù)據(jù)來源廣泛,油氣鉆井作業(yè)分布在廣闊的地區(qū),因此數(shù)據(jù)量大而且種類相當(dāng)復(fù)雜,進(jìn)入數(shù)據(jù)爆炸時(shí)代,各種異構(gòu)數(shù)據(jù)爆炸性增長(zhǎng),其中不僅包含很多內(nèi)部信息,還包括很多有價(jià)值的外部信息,傳統(tǒng)的關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)只擅長(zhǎng)處理結(jié)構(gòu)數(shù)據(jù),而且擴(kuò)展能力差,導(dǎo)致新的異構(gòu)數(shù)據(jù)難以被利用,這些已經(jīng)不能滿足新時(shí)期用戶對(duì)數(shù)據(jù)管理的要求?;贖adoop的油氣信息分布式數(shù)據(jù)倉(cāng)庫(kù)運(yùn)用HDFS存儲(chǔ)各類同構(gòu)或異構(gòu)數(shù)據(jù),通過Hive和HBase對(duì)海量異構(gòu)數(shù)據(jù)進(jìn)行管理,并且可以通過Sqoop工具與關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交換,最重要的是能夠運(yùn)行在廉價(jià)的機(jī)群上,不僅降低了成本,還具有更好的擴(kuò)展性,而且實(shí)現(xiàn)對(duì)各類數(shù)據(jù)的充分利用,提高鉆井決策的準(zhǔn)確性。
關(guān)鍵詞:油氣信息;Hadoop;分布式數(shù)據(jù)倉(cāng)庫(kù);Hive
中圖分類號(hào):TP2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)28-0015-03
1 概述
油氣鉆井作業(yè)覆蓋地域遼闊、分布廣泛、導(dǎo)致鉆井?dāng)?shù)據(jù)信息數(shù)據(jù)量大、種類繁多,因此構(gòu)建合理有效的鉆井?dāng)?shù)據(jù)倉(cāng)庫(kù)系統(tǒng),高效協(xié)助鉆井決策是油氣企業(yè)領(lǐng)導(dǎo)層關(guān)心的主要問題。近年來油氣鉆井企業(yè)已經(jīng)建設(shè)成一定規(guī)模的分布式數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng),而且大多都采用全局-局部的體系結(jié)構(gòu),數(shù)據(jù)倉(cāng)庫(kù)之間通過加密的網(wǎng)絡(luò)進(jìn)行連接,這些數(shù)據(jù)倉(cāng)庫(kù)都是依賴于高性能一體機(jī)充當(dāng)節(jié)點(diǎn),當(dāng)數(shù)據(jù)量增加時(shí),只能通過添加節(jié)點(diǎn)的方式擴(kuò)容,成本高昂而且容易遇到單點(diǎn)故障和I/O效率問題,進(jìn)入大數(shù)據(jù)時(shí)代,油氣鉆井信息呈現(xiàn)海量增長(zhǎng),傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)已經(jīng)不能高效地存利用這些海量數(shù)據(jù),各個(gè)油氣企業(yè)迫切地需要一種新型的存儲(chǔ)和管理這些異構(gòu)數(shù)據(jù)的技術(shù)。
Hadoop是一個(gè)開源的分布式云計(jì)算平臺(tái),其核心是分布式文件系統(tǒng)(Hadoop Distributed File System } HDFS)和MapReduce,他的優(yōu)點(diǎn)是可以運(yùn)行在廉價(jià)的低性能硬件集群上,而且與傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)相比具有更強(qiáng)的運(yùn)算性能,Hadoop的無限擴(kuò)展能力突破了單節(jié)點(diǎn)存儲(chǔ)的瓶頸,理論上具有無限的存儲(chǔ)空間。Hive是建立在Hadoop上的數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)框架,它把海量數(shù)據(jù)存儲(chǔ)在Hadoop的文件系統(tǒng)HDFS中,并且采用類似SQL的方式HQL查詢,然后將HQL查詢轉(zhuǎn)換為Map/reduce程序,在廉價(jià)的硬件上輕松實(shí)現(xiàn)大規(guī)模數(shù)據(jù)查詢?nèi)蝿?wù)。
現(xiàn)在用Hadoop來處理大數(shù)據(jù)已經(jīng)不是新鮮的事情,不少企業(yè)已經(jīng)運(yùn)用Hadoop進(jìn)行決策輔助,本文結(jié)合油氣鉆井行業(yè),對(duì)基于Hadoop的油氣信息數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行研究,旨在提高數(shù)據(jù)的ETL效率和異構(gòu)數(shù)據(jù)處理能力,具有一定的經(jīng)濟(jì)意義。
2 傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的缺點(diǎn)
傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的工作原理如圖1所示,首先從最原始的鉆井信息中選取所需的主題數(shù)據(jù),然后通過ETL過程將數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)或者數(shù)據(jù)集市中去,數(shù)據(jù)集市可以直接通過OLAP服務(wù)器為用戶提供服務(wù),也可以將數(shù)據(jù)提供給數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)倉(cāng)庫(kù)在通過OLAP服務(wù)器服務(wù)用戶,用戶也可以通過前端工具進(jìn)行查詢,制作報(bào)表或者數(shù)據(jù)挖掘。
油氣鉆井公司因?yàn)榈赜蚍植紡V泛,單節(jié)點(diǎn)的數(shù)據(jù)倉(cāng)庫(kù)或者數(shù)據(jù)集市不能滿足需要,因此建立了分?jǐn)?shù)據(jù)倉(cāng)庫(kù)系統(tǒng),即各個(gè)地域分別建立自己的數(shù)據(jù)倉(cāng)庫(kù),然后通過加密網(wǎng)絡(luò)與總公司的數(shù)據(jù)倉(cāng)庫(kù)相連接,如圖2所示,各個(gè)數(shù)據(jù)倉(cāng)庫(kù)都有自己的局部運(yùn)作系統(tǒng),總部不僅可以提取各個(gè)分公司的數(shù)據(jù)倉(cāng)庫(kù),也可以分析總部的信息數(shù)據(jù)還有外部數(shù)據(jù),所有的數(shù)據(jù)倉(cāng)庫(kù)模型是按照一定的規(guī)范定義好的。
分布式數(shù)據(jù)倉(cāng)庫(kù)很好地解決了鉆井信息分布廣泛的問題,減少了地區(qū)公司和總公司之間的頻繁通信,地區(qū)公司對(duì)局部數(shù)據(jù)倉(cāng)庫(kù)擁有著一定的自治權(quán),各種細(xì)節(jié)級(jí)數(shù)據(jù)分公司自己保留,向總公司提供的數(shù)據(jù)則都是輕度或者高度綜合級(jí)數(shù)據(jù),因?yàn)榈貐^(qū)公司在處理自己的業(yè)務(wù)數(shù)據(jù)時(shí)效率更高,這樣整個(gè)企業(yè)的數(shù)據(jù)處理效率都能保持在一個(gè)較高的水平。
然而隨著技術(shù)不斷發(fā)展,鉆井信息的數(shù)量呈爆炸性增長(zhǎng),傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的不足日益明顯。
1) 硬件成本高
傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的建設(shè)通常依賴高性能硬件充當(dāng)節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)相互連接。高性能一體機(jī)目前被廣大企業(yè)采用,它不僅可以充當(dāng)服務(wù)器、還可以存儲(chǔ)數(shù)據(jù),不過缺點(diǎn)也明顯,比如中央數(shù)據(jù)倉(cāng)庫(kù)節(jié)點(diǎn),因?yàn)橐幚砣謹(jǐn)?shù)據(jù),數(shù)據(jù)吞吐率量非常大,遇到性能瓶頸時(shí)只能通過購(gòu)買新硬件擴(kuò)容,使得其成本非常高。
2) 可擴(kuò)展性低
傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的擴(kuò)展主要依靠增加硬件節(jié)點(diǎn),計(jì)算能力全部依賴于服務(wù)器的硬件配置,遇到性能瓶頸時(shí)只能增加支出購(gòu)買硬件,而這些硬件的價(jià)格都比較高。
3) 數(shù)據(jù)利用率低
傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)只擅長(zhǎng)處理人工輸入的結(jié)構(gòu)化數(shù)據(jù),對(duì)于新時(shí)期大量出現(xiàn)的圖片、日志、視頻文件等異構(gòu)數(shù)據(jù)難以利用,造成數(shù)據(jù)的利用率低。
3 基于Hadoop的油氣信息數(shù)據(jù)倉(cāng)庫(kù)
3.1 Hadoop數(shù)據(jù)倉(cāng)庫(kù)
Hadoop是Apache軟件基金會(huì)的開源項(xiàng)目,是一個(gè)基于java的分布式秘籍?dāng)?shù)據(jù)處理和數(shù)據(jù)分析的軟件框架。Hadoop中的Map/Reduce算法能夠?qū)⒁粋€(gè)任務(wù)分割成成百上千個(gè)子任務(wù),然后將子任務(wù)分別發(fā)送到廉價(jià)的計(jì)算機(jī)集群中,每臺(tái)計(jì)算機(jī)只負(fù)責(zé)運(yùn)算自己的子任務(wù),再將運(yùn)算結(jié)果反饋回去,MapReduce迅速整合這些反饋,形成答案。這種方式能夠很好地解決海量鉆井?dāng)?shù)據(jù)運(yùn)算的問題。Hadoop的HDFS文件系統(tǒng)可以以塊序列的方式存儲(chǔ)各種異構(gòu)數(shù)據(jù),而且可以運(yùn)行在廉價(jià)的機(jī)器上,海量鉆井?dāng)?shù)據(jù)存儲(chǔ)問題也能得到解決。
Hadoop平臺(tái)提供了一種高效可靠的數(shù)據(jù)傳輸工具Sqoop ,能夠使得Hadoop和數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)交換和傳輸。而這些結(jié)構(gòu)化數(shù)據(jù)可以存儲(chǔ)在Hadoop的數(shù)據(jù)倉(cāng)庫(kù)Hive中,不同于傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)將數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中,Hive是直接依托Hadoop的分布式文件系統(tǒng)HDFS作為最基本的數(shù)據(jù)存儲(chǔ)單元,Hive可以將開源的結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供了豐富的SQL查詢方式來分析存儲(chǔ)在HDFS中的數(shù)據(jù);HQL經(jīng)過編譯轉(zhuǎn)為MapReduce作業(yè)后通過自己的SQL 去查詢分析需要的內(nèi)容;這樣一來,即使不熟悉MapReduce 的用戶也可以很方便地利用SQL 語(yǔ)言查詢、匯總、分析數(shù)據(jù),而且速度更快。而MapReduce開發(fā)人員可以把己寫的mapper 和reducer 作為插件來支持Hive 做更復(fù)雜的數(shù)據(jù)分析。圖3介紹了一種傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)與Hadoop相互協(xié)作的方法,如圖:endprint
Hadoop負(fù)責(zé)處理各類文檔、圖片等海量數(shù)據(jù),包括日志數(shù)據(jù),網(wǎng)頁(yè)數(shù)據(jù),圖片和視頻等,這些數(shù)據(jù)都是異構(gòu)數(shù)據(jù),存儲(chǔ)在HDFS文件系統(tǒng)中,也可以從這些數(shù)據(jù)中通過ETL過程轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù),存儲(chǔ)在Hive中;而傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)處理各種結(jié)構(gòu)化或者半結(jié)構(gòu)化數(shù)據(jù),比如客戶關(guān)系管理數(shù)據(jù),軟件配置管理數(shù)據(jù),企業(yè)資源計(jì)劃數(shù)據(jù)等,然后通過ETL過程將所需要的數(shù)據(jù)處理后存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中。Hadoop也可以從傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)中直接抽取數(shù)據(jù),或者將結(jié)構(gòu)化數(shù)據(jù)分享給傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù),這種雙向共享可以用Sqoop技術(shù)來實(shí)現(xiàn),這種協(xié)同的方法在當(dāng)前油氣鉆井企業(yè)的數(shù)據(jù)倉(cāng)庫(kù)建設(shè)中可以作為一種過渡手段,然而Hadoop以其優(yōu)異的性能和經(jīng)濟(jì)性,未來取代傳統(tǒng)關(guān)系型分布式數(shù)據(jù)倉(cāng)庫(kù)也只是時(shí)間問題。
3.2 基于Hadoop的油氣信息分布式數(shù)據(jù)倉(cāng)庫(kù)
類似于傳統(tǒng)的全局-局部的分布式數(shù)據(jù)倉(cāng)庫(kù)布局,基于Hadoop的油氣信息分布式數(shù)據(jù)倉(cāng)庫(kù)使用Master-Slave結(jié)構(gòu),其中master節(jié)點(diǎn)充當(dāng)集群中的主服務(wù)器,負(fù)責(zé)管理整個(gè)系統(tǒng),存儲(chǔ)全局元數(shù)據(jù),監(jiān)視slave節(jié)點(diǎn)的運(yùn)行狀態(tài),同時(shí)為其下的每一個(gè)slave節(jié)點(diǎn)分配存儲(chǔ)的范圍,是查詢和寫入的入口。Master節(jié)點(diǎn)全局只有一個(gè),而slave節(jié)點(diǎn)則有很多個(gè),slave節(jié)點(diǎn)是數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),維護(hù)一張本地?cái)?shù)據(jù)的索引表,如果系統(tǒng)要擴(kuò)展則增加slave節(jié)點(diǎn)的數(shù)量。Master節(jié)點(diǎn)一直處于監(jiān)聽狀態(tài),slave節(jié)點(diǎn)則負(fù)責(zé)不斷向master節(jié)點(diǎn)報(bào)告自身負(fù)載等狀況,master節(jié)點(diǎn)可以根據(jù)不同情況對(duì)slave進(jìn)行調(diào)度??偣竞兔恳粋€(gè)分公司都有一個(gè)master節(jié)點(diǎn),調(diào)度各自的各中同構(gòu)或者異構(gòu)數(shù)據(jù),各個(gè)局部單位則可以通過Internet網(wǎng)絡(luò)連接總公司進(jìn)行通信。當(dāng)進(jìn)行一個(gè)大規(guī)模數(shù)據(jù)集的運(yùn)算時(shí),總公司可以將任務(wù)分配給各個(gè)分公司,各個(gè)分公司云計(jì)算平臺(tái)中的主節(jié)點(diǎn)可以將任務(wù)分配給其管理下的子節(jié)點(diǎn)共同完成,在將各個(gè)子節(jié)點(diǎn)的結(jié)果整合,得出最終結(jié)果,再將結(jié)果反饋給總公司,總公司在進(jìn)行進(jìn)一步整合。在進(jìn)行數(shù)據(jù)挖掘時(shí),子公司和總公司都通過Hive抽取,轉(zhuǎn)換和存儲(chǔ)數(shù)據(jù),不同的是,相比于傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù),Hive將通過ETL得到的基于主題的結(jié)構(gòu)化數(shù)據(jù)依然存儲(chǔ)在HDFS中,而不是關(guān)系型數(shù)據(jù)庫(kù),Hive只是底層數(shù)據(jù)管理系統(tǒng)的上層抽象,負(fù)責(zé)將SQL操作轉(zhuǎn)換為Map/Reduce操作,這樣就避免了需要一個(gè)大容量的存儲(chǔ)設(shè)備來放置這些數(shù)據(jù),以一個(gè)很低的成本完成以往需要大規(guī)模數(shù)據(jù)庫(kù)才能完成的任務(wù)。
基于Hadoop的油氣信息分布式數(shù)據(jù)倉(cāng)庫(kù)基于以上技術(shù),不僅可以處理內(nèi)部數(shù)據(jù),還可以應(yīng)對(duì)海量的外部數(shù)據(jù),而且還具有存儲(chǔ)和計(jì)算的高擴(kuò)展性,并且不用考慮傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的存儲(chǔ)溢出問題,分布式文件系統(tǒng)HDFS的備份恢復(fù)機(jī)制和MapReduce的任務(wù)監(jiān)控可以保證分布式處理的高可靠性。對(duì)于NOSQL數(shù)據(jù)庫(kù)的支持利用了傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)不能利用的海量異構(gòu)信息,對(duì)于提高鉆井公司決策的準(zhǔn)確性具有重要意義。
4 結(jié)束語(yǔ)
傳統(tǒng)關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)通常經(jīng)過ETL過程將鉆井工程數(shù)據(jù)信息進(jìn)行綜合歸納、組織、協(xié)調(diào)和集成,然后為用戶提供多種服務(wù),數(shù)據(jù)來源都是用戶輸入,手續(xù)繁瑣,效率低下而且數(shù)據(jù)利用率低,只能處理同構(gòu)數(shù)據(jù)。進(jìn)入大數(shù)據(jù)時(shí)代后數(shù)據(jù)量呈指數(shù)增長(zhǎng),各種海量異構(gòu)的外部數(shù)據(jù)紛紛涌入,以前的數(shù)據(jù)倉(cāng)庫(kù)已經(jīng)不能滿足對(duì)這些數(shù)據(jù)的處理?;贖adoop的油氣信息數(shù)據(jù)倉(cāng)庫(kù)利用了HDFS文件系統(tǒng)工具能夠很好地存儲(chǔ)和管理海量異構(gòu)信息,還提供了HBase、Hive、Pig等工具為用戶提供更加便捷簡(jiǎn)單的數(shù)據(jù)管理系統(tǒng),為海量數(shù)據(jù)提供分布式存儲(chǔ)服務(wù),而且能通過Sqoop工具與RDBMS實(shí)現(xiàn)數(shù)據(jù)交換。Map/Reduce并行處理框架為海量數(shù)據(jù)提供數(shù)據(jù)分析和處理服務(wù)。Hadoop平臺(tái)還能運(yùn)行在廉價(jià)的硬件集群上,這些優(yōu)勢(shì)完美地解決了傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)遇到的問題。
參考文獻(xiàn):
[1] 黃曉云. 基于HDFS的云存儲(chǔ)服務(wù)系統(tǒng)研究[D].大連海事大學(xué),2010.
[2] 郝樹魁. Hadoop HDFS和MapReduce架構(gòu)淺析[J].郵電設(shè)計(jì)技術(shù),2012(7):37-42.
[3] 霍樹民. 基于Hadoop的海量影像數(shù)據(jù)管理關(guān)鍵技術(shù)研究[D].國(guó)防科學(xué)技術(shù)大學(xué),2010.
[4] 李慧,聞豪. 基于數(shù)據(jù)倉(cāng)庫(kù)的OLAP技術(shù)的研究[J].電腦知識(shí)與技術(shù),2005(2):77-81.
[5] 呂海燕,車曉偉. 數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)粒度的劃分[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(9):2323-2325+2328.
[6] 夏秀峰,周大海,張雅茜,等. 數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)中低粒度數(shù)據(jù)的分割策略研究[J].計(jì)算機(jī)工程,2006(17):138-140.
[7] 費(fèi)仕憶. Hadoop大數(shù)據(jù)平臺(tái)與傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的協(xié)作研究[D].東華大學(xué),2014.
[8] 宋利康,李蓉蓉. 數(shù)據(jù)倉(cāng)庫(kù)中的粒度確定[J]. 計(jì)算機(jī)與數(shù)字工程,2001(5):33-36+52.
[9] 李琪,張紹槐,郭建明,等. 油氣鉆井智能信息綜合集成系統(tǒng)[J]. 天然氣工業(yè),1997(2):64-67+10.
[10] 秦學(xué)勇,劉棟. 數(shù)據(jù)倉(cāng)庫(kù)的可擴(kuò)展性研究與設(shè)計(jì)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2009(5):65-67+71.
[11] 向堯,袁景凌,鐘珞,等. 一種面向大數(shù)據(jù)集的粗粒度并行聚類算法研究[J].小型微型計(jì)算機(jī)系統(tǒng),2014(10):2370-2374.
[12] 王緩緩,郭敬義,張警燦,等. 基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建模式研究[J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué),2015(7):69-73.
[13] 高亢. 從傳統(tǒng)數(shù)據(jù)庫(kù)到數(shù)據(jù)倉(cāng)庫(kù)[J]. 電腦知識(shí)與技術(shù),2008(20):206-207+217.
[14] 于金良,朱志祥,梁小江. 一種基于Sqoop的數(shù)據(jù)交換系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2016(3):35-37.
[15] 王建軍. 基于Hadoop的鉆井工程實(shí)時(shí)數(shù)據(jù)分析研究[D].西安石油大學(xué),2016.
[16] 張寧生,張?jiān)?數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)挖掘技術(shù)在鉆井生產(chǎn)信息中的研究與應(yīng)用[D].西安:西安石油大學(xué),2005
[17] 馬東風(fēng),袁翠云.基于HBase的大規(guī)模數(shù)據(jù)存儲(chǔ)解決方案的設(shè)計(jì)和實(shí)現(xiàn)[D].山東:山東大學(xué),2015endprint