孫曉萍
[摘 ? ?要] 當(dāng)前,社會(huì)已經(jīng)步入了大數(shù)據(jù)時(shí)代,互聯(lián)網(wǎng)技術(shù)的應(yīng)用非常廣泛。隨著數(shù)據(jù)技術(shù)的快速進(jìn)步,數(shù)據(jù)的產(chǎn)生速度也在以指數(shù)級(jí)增長(zhǎng)。傳統(tǒng)的油田開發(fā)作業(yè)中,對(duì)數(shù)據(jù)的記錄方式以關(guān)系型數(shù)據(jù)庫技術(shù)為主要的數(shù)據(jù)記錄和更新方式。但隨著信息技術(shù)的發(fā)展,新數(shù)據(jù)中出現(xiàn)了非結(jié)構(gòu)化數(shù)據(jù),這些數(shù)據(jù)的格式不確定,記錄起來非常困難。文章以非結(jié)構(gòu)化數(shù)據(jù)為研究對(duì)象,針對(duì)油田開發(fā)過程中面臨的數(shù)據(jù)記錄問題,提出可以有效儲(chǔ)存和記錄非結(jié)構(gòu)化數(shù)據(jù)的Hadoop分布式框架模式,從而解決油田開發(fā)過程中遇到的數(shù)據(jù)記錄和更新的難題。
[關(guān)鍵詞] Hadoop分布式框架;非結(jié)構(gòu)化數(shù)據(jù);數(shù)據(jù)管理
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 07. 029
[中圖分類號(hào)] F270.7 ? ?[文獻(xiàn)標(biāo)識(shí)碼] ?A ? ? ?[文章編號(hào)] ?1673 - 0194(2020)07- 0063- 02
0 ? ? ?前 ? ?言
石油行業(yè)是一個(gè)與數(shù)據(jù)關(guān)聯(lián)密切的行業(yè),勘探數(shù)據(jù)、地震數(shù)據(jù)、鉆進(jìn)數(shù)據(jù)、方案文檔等都需要以數(shù)據(jù)形式進(jìn)行記錄。為了保障數(shù)據(jù)的精確性,這些方案數(shù)據(jù)又往往以圖件這類非結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行存儲(chǔ),這造成了數(shù)據(jù)的后續(xù)查閱和更新非常麻煩,對(duì)于油田開發(fā)過程的深入推進(jìn)相當(dāng)不利。HBase數(shù)據(jù)庫技術(shù)是一種可以有效處理多格式小文件的數(shù)據(jù)技術(shù),它使用Lucene檢索引擎編寫和設(shè)計(jì),采用分層體系架構(gòu),具備全文檢索的能力,可以處理大量的非結(jié)構(gòu)化數(shù)據(jù)文件,能有效應(yīng)用到那些格式難以確定的非結(jié)構(gòu)化數(shù)據(jù)記錄當(dāng)中。
1 ? ? ?加強(qiáng)石油行業(yè)數(shù)據(jù)管理的必要性
當(dāng)前國際油氣市場(chǎng)供應(yīng)關(guān)系較為緊張,全球經(jīng)濟(jì)形勢(shì)不斷發(fā)生變化,在此背景下油田企業(yè)應(yīng)進(jìn)一步提升對(duì)于數(shù)據(jù)管理的重視程度。工業(yè)化的推進(jìn)對(duì)企業(yè)數(shù)據(jù)管理工作來說有更高要求,油田企業(yè)應(yīng)配合市場(chǎng)的能源需求著重加強(qiáng)數(shù)據(jù)管理工作,實(shí)現(xiàn)資源的優(yōu)化,充分利用時(shí)代形勢(shì)來促使自身實(shí)現(xiàn)創(chuàng)新改革。
油田企業(yè)在數(shù)據(jù)管理上也發(fā)生了較大變化,企業(yè)應(yīng)結(jié)合油田開發(fā)來對(duì)數(shù)據(jù)管理工作進(jìn)行整改,制訂與開發(fā)進(jìn)程相適應(yīng)的數(shù)據(jù)管理操作程序,在數(shù)據(jù)信息管理系統(tǒng)運(yùn)行上進(jìn)一步優(yōu)化,加強(qiáng)數(shù)據(jù)檔案管理等,結(jié)合企業(yè)具體業(yè)務(wù)范圍來對(duì)數(shù)據(jù)管理制定相關(guān)內(nèi)容進(jìn)行調(diào)整。
隨著科技的不斷發(fā)展,油氣資源在勘察、開采、儲(chǔ)存、運(yùn)輸及利用方面都發(fā)展出了更好的渠道,企業(yè)數(shù)據(jù)管理理論與實(shí)踐操作之間融合度更好,數(shù)據(jù)管理作用得到了更深層次的體現(xiàn),數(shù)據(jù)管理已經(jīng)由以往的監(jiān)督導(dǎo)向慢慢向服務(wù)導(dǎo)向進(jìn)行轉(zhuǎn)變。在數(shù)據(jù)范圍上,已經(jīng)由過去僅僅進(jìn)行現(xiàn)場(chǎng)作業(yè)數(shù)據(jù)逐漸向開采管理范圍進(jìn)行轉(zhuǎn)變,這樣能夠進(jìn)一步提升數(shù)據(jù)管理工作的監(jiān)督作用和服務(wù)質(zhì)量,大大提升了企業(yè)對(duì)于風(fēng)險(xiǎn)的化解作用。油田企業(yè)應(yīng)借助時(shí)代機(jī)遇,促使自身數(shù)據(jù)管理向?yàn)槠髽I(yè)進(jìn)行服務(wù)方向進(jìn)行轉(zhuǎn)變。在數(shù)據(jù)領(lǐng)域方面,進(jìn)一步拓展數(shù)據(jù)管理范圍及數(shù)據(jù)職能。
2 ? ? ?Hadoop分布式框架的數(shù)據(jù)庫技術(shù)選擇
數(shù)據(jù)技術(shù)的進(jìn)步和石油行業(yè)乃至整個(gè)能源產(chǎn)業(yè)的發(fā)展呈相互遞進(jìn)的關(guān)系。我國的工業(yè)化產(chǎn)業(yè)發(fā)展加快,對(duì)能源的需求增多,石油等能源行業(yè)必須進(jìn)一步提升鉆探作業(yè)的精確性,因此需要使用準(zhǔn)確性更好,誤差更少的非結(jié)構(gòu)數(shù)據(jù)??梢姡墙Y(jié)構(gòu)數(shù)據(jù)的發(fā)展和石油行業(yè)的發(fā)展是呈現(xiàn)為直白的需求鏈關(guān)系,而為了適應(yīng)這種非結(jié)構(gòu)數(shù)據(jù)增多的數(shù)據(jù)儲(chǔ)存環(huán)境,發(fā)展以Hadoop為基礎(chǔ)的文檔存儲(chǔ)技術(shù)就很有必要。
2.1 ? Hadoop分布式計(jì)算框架對(duì)數(shù)據(jù)庫技術(shù)的要求
傳統(tǒng)的數(shù)據(jù)庫技術(shù)以O(shè)racle為代表,Oracle主要是對(duì)油田開發(fā)中的結(jié)構(gòu)化數(shù)據(jù)進(jìn)行記錄和管理,對(duì)于圖件等非結(jié)構(gòu)數(shù)據(jù),需要以二進(jìn)制大對(duì)象(BLOB)作為儲(chǔ)存容器。不難看出,Oracle作為長(zhǎng)期應(yīng)用于石油行業(yè)的主流數(shù)據(jù)庫技術(shù),無論是在記錄結(jié)構(gòu)化數(shù)據(jù),還是非結(jié)構(gòu)化數(shù)據(jù)時(shí),都有一定的兼容性。不過,由于非結(jié)構(gòu)化數(shù)據(jù)的格式是不確定狀態(tài),所以在儲(chǔ)存和檢索非結(jié)構(gòu)化數(shù)據(jù)時(shí),Oracle需要用到二進(jìn)制大對(duì)象(BLOB)這種額外的處理能力才能獲得與對(duì)非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)[1]。
非結(jié)構(gòu)化數(shù)據(jù)的管理難點(diǎn)在于其格式的多元化,這要求數(shù)據(jù)庫必須有很高的兼容性,因此以非結(jié)構(gòu)化數(shù)據(jù)為存儲(chǔ)對(duì)象的數(shù)據(jù)庫必須要有足夠的高性能硬件作為支撐,為了解決這個(gè)問題,開源的計(jì)算方法就孕育而生。在這些計(jì)算方案中,又以Hadoop分布式計(jì)算框架最為突出。
Hadoop作為一種分布式計(jì)算框架,它采用的是流式數(shù)據(jù)訪問模式。在Hadoop中,數(shù)據(jù)的保存、管理及更新是依靠數(shù)據(jù)副本和分布式處理實(shí)現(xiàn),而為了達(dá)成這一效果,設(shè)計(jì)者在編寫Hadoop時(shí)使用了主/從架構(gòu)模式,使該數(shù)據(jù)庫技術(shù)具備了可伸縮、高效率的數(shù)據(jù)存儲(chǔ)處理特征。
不過,Hadoop計(jì)算框架也并非沒有缺點(diǎn),Hadoop從編寫之初就是為大文件的存儲(chǔ)設(shè)計(jì)的,這讓Hadoop擁有比傳統(tǒng)計(jì)算框架更強(qiáng)的兼容性,但是在處理小文件時(shí),小文件主要以對(duì)象形式存儲(chǔ)到數(shù)據(jù)庫的元數(shù)據(jù)節(jié)點(diǎn)內(nèi)存里,這使得過多的小文件會(huì)嚴(yán)重消耗元數(shù)據(jù)節(jié)點(diǎn)的內(nèi)存,而過小的內(nèi)存容量又會(huì)對(duì)集群擴(kuò)展形成制約,最終影響到數(shù)據(jù)儲(chǔ)存效率。而Hadoop對(duì)于小文件的管理采取了流式訪問,在獲取文件時(shí)必須請(qǐng)求數(shù)據(jù)節(jié)點(diǎn),而當(dāng)小文件數(shù)量過多時(shí),Hadoop的請(qǐng)求就會(huì)變得頻繁,這樣一來對(duì)元數(shù)據(jù)節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)的IO性能就會(huì)帶來嚴(yán)重的影響[2]。
基于Hadoop的上述特征,如果未來的油田開發(fā)開始大規(guī)模的使用Hadoop計(jì)算框架,那么就不能在以O(shè)racle數(shù)據(jù)庫技術(shù)為載體,而是需要一種帶有分布式特征,可以面向列的開源數(shù)據(jù)庫來處理小文件的打包和全局命名空間工作。
2.2 ? HBase數(shù)據(jù)庫技術(shù)的優(yōu)勢(shì)與特征
HBase作為一種分布式的數(shù)據(jù)庫技術(shù),相比Oracle有很強(qiáng)的計(jì)算和管理效能,以O(shè)racle文檔的存儲(chǔ)結(jié)構(gòu)為對(duì)比對(duì)象來設(shè)計(jì)HBase的表行鍵結(jié)構(gòu),確定HBase文檔的文檔代碼為行鍵,文檔的錄入時(shí)間為時(shí)間戳,已經(jīng)項(xiàng)目和文檔的名稱、最后的更改時(shí)間、文件內(nèi)容以及用戶名稱等等列簇。然后使用Java語言作為接口對(duì)兩種數(shù)據(jù)庫技術(shù)進(jìn)行連接,以此便可測(cè)得兩種數(shù)據(jù)庫技術(shù)的文檔上傳下載效率。以已有的實(shí)驗(yàn)結(jié)果來看, Oracle對(duì)數(shù)據(jù)文件的響應(yīng)和處理能力要落后HBase許多。HBase上傳了20個(gè)文檔文件,所有文件的大小一共為130 M,整個(gè)上傳過程大約用時(shí)19秒,而同樣的大小,同樣的文件數(shù)量,Oracle用了330秒。而即使是單獨(dú)的文件下載,HBase只需14~15秒便能完成,Oracle卻要花上將近一分鐘??紤]到未來的油田開放中,小文件體量的圖件數(shù)據(jù)會(huì)越來越多,數(shù)據(jù)管理對(duì)文件吞吐效率的要求會(huì)越來越嚴(yán)格,所以Hadoop計(jì)算框架未來的數(shù)據(jù)庫技術(shù)應(yīng)當(dāng)以HBase為主[3]。
3 ? ? ?Hadoop計(jì)算框架的搭建
3.1 ? 引擎選擇
Hadoop計(jì)算框架要明確兩個(gè)基礎(chǔ)要求,一是存儲(chǔ)基礎(chǔ),二是系統(tǒng)編寫的引擎選擇。存儲(chǔ)基礎(chǔ)已經(jīng)明確,以文件吞吐效率更高的HBase數(shù)據(jù)庫技術(shù)為主,而在引擎選擇上,考慮到Hadoop計(jì)算框架開源的特點(diǎn),所使用的引擎也必須是一套開源的全文搜索框架。從當(dāng)前數(shù)據(jù)管理系統(tǒng)編寫中所使用的引擎類型來看,具備文檔分詞處理、信息入庫索引、用戶查詢匹配的Lucene引擎無疑是最適合搭建Hadoop計(jì)算框架的引擎。Lucene引擎是完全開源的數(shù)據(jù)引擎,能夠在非結(jié)構(gòu)化數(shù)據(jù)入庫前對(duì)文檔進(jìn)行分詞處理和全文掃描,以此解析出需要寫入索引庫的信息,比如文檔的文字、文檔的內(nèi)容、文檔的創(chuàng)建時(shí)間、文檔的大小、文檔的頁數(shù)等等。這樣一來,管理人員在查詢相關(guān)數(shù)據(jù)時(shí),Lucene便可根據(jù)用戶給出的關(guān)鍵詞段進(jìn)行索引內(nèi)容的查找,將匹配內(nèi)容從索引庫返回給數(shù)據(jù)管理人員,節(jié)約了管理人員在數(shù)據(jù)查找、調(diào)整、更新等工序上的耗時(shí)。
3.2 ? 框架設(shè)計(jì)
為了保障Hadoop計(jì)算框架可以和石油企業(yè)正在施行的管理系統(tǒng)集成,設(shè)計(jì)人員一般會(huì)把Hadoop計(jì)算框架設(shè)計(jì)為三層架構(gòu),分別是模塊資源中心、接口層、儲(chǔ)存層。模塊資源中心是Hadoop計(jì)算框架的核心,一般要包括權(quán)限控制、日志管理、消息提醒、文件上傳下載、文件預(yù)覽刪除、文件版本控制、文件格式轉(zhuǎn)換、文件分詞索引、文件夾管理、文件格式解析、智能檢索、統(tǒng)計(jì)分析、相關(guān)性分析、關(guān)注度排名等幾個(gè)模塊,而接口層則要包括數(shù)據(jù)增刪改查訪問接口和文件上傳下載訪問接口兩個(gè)模塊,儲(chǔ)存層由Oracle、Hbase和Lucene三個(gè)部分組成。
底層數(shù)據(jù)的訪問借由訪問接口和功能模塊兩個(gè)部分實(shí)現(xiàn),在數(shù)據(jù)的儲(chǔ)存和管理上借由存儲(chǔ)層的三種數(shù)據(jù)技術(shù)實(shí)現(xiàn),結(jié)構(gòu)化數(shù)據(jù)依然用Oracle數(shù)據(jù)庫進(jìn)行存儲(chǔ),圖件等非結(jié)構(gòu)化數(shù)據(jù)則由Hbase進(jìn)行存儲(chǔ),而數(shù)據(jù)的索引工作則由Lucene完成。
為了保障庫中的數(shù)據(jù)足夠完整,防止出現(xiàn)數(shù)據(jù)丟失的現(xiàn)象,負(fù)責(zé)非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的HBase在運(yùn)行操作上遵從事務(wù)處理模式,同時(shí)為了確保在服務(wù)器宕機(jī)時(shí),HBase的服務(wù)和數(shù)據(jù)能夠無縫使用備份服務(wù)器運(yùn)行,設(shè)計(jì)者還需要提供雙機(jī)熱備解決方案,以防萬一。
Hadoop計(jì)算框架的接口層定義了標(biāo)準(zhǔn)數(shù)據(jù)處理接口,其作用是為了方便使用者對(duì)各模塊的調(diào)用,由于在油田開發(fā)中對(duì)數(shù)據(jù)的處理,目錄的管理還有站內(nèi)消息的查詢需要使用到不同系統(tǒng),因此需要接口層的標(biāo)準(zhǔn)數(shù)據(jù)處理有組合查詢、訪問控制等可復(fù)用功能。
因此在搭建Hadoop計(jì)算框架的過程中,必須按照統(tǒng)一的開發(fā)標(biāo)準(zhǔn),設(shè)計(jì)可擴(kuò)展、可復(fù)用的模塊資源中心,為使用者在進(jìn)行數(shù)據(jù)管理的過程中提供文件上傳、下載、預(yù)覽、備份、刪除等14個(gè)功能模塊,而且還要讓各模塊間松耦合,以此使管理人員在進(jìn)行數(shù)據(jù)備份或者數(shù)據(jù)遷移時(shí)可以使用不用系統(tǒng)服務(wù),并進(jìn)行多系統(tǒng)調(diào)用。
4 ? ? ?結(jié) ? ?語
隨著油田信息化工作的不斷推進(jìn),企業(yè)在數(shù)據(jù)管理方面的要求也原來越嚴(yán)格,Hadoop分布式存儲(chǔ)系統(tǒng)和傳統(tǒng)數(shù)據(jù)存儲(chǔ)系統(tǒng)相比有一定的優(yōu)勢(shì)性,但也存在缺點(diǎn),故在文章中提出基于HBase和Lucene來完善Hadoop計(jì)算框架的思路,以此實(shí)現(xiàn)文件儲(chǔ)存管理、全庫智能檢索等核心功能。
主要參考文獻(xiàn)
[1]張圣杰.分布式大數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)研究[J]信息通信,2019(2):33-34.
[2]李元亨,鄒學(xué)玉.Hadoop綜述[J].電腦知識(shí)與技術(shù),2018(9):39-40.
[3]曹恒瑞,曹展碩.一種基于Hadoop平臺(tái)的分布式數(shù)據(jù)檢索系統(tǒng)[J].軟件導(dǎo)刊,2017(4):55-55.