耿祖琨,張衛山,王志超,李 博
1(中國石油大學(華東)計算機與通信工程學院,青島 266580)
2(東營市人力資源和社會保障局,東營 257091)
3(東營市勘察測繪院,東營 257000)
隨著國家智能制造的大規模發展,石油行業不斷創新發展,其工業設備也越來越復雜,傳感器、攝像頭等的廣泛部署使得石油工業設備的運行狀態得到有效監控,由此也產生了大規模的工業數據.石油工業大數據[1,2]的采集、處理、存儲、分析和利用的價值不斷提升,為指導石油探測、開采和企業改革發展的推進提供了重要依據.目前已經包含抽油機井基本狀態信息、地質數據、勘探數據以及生產數據等等,現有的采油相關數據類別已達600 多種,而且相關數據每時每刻不在產生、交互、傳回,石油大數據呈現爆發增長、海量集聚的特點.
隨著數字油田以及智慧油田建設的不斷深入,不同應用系統的數據結構呈現多樣化發展,從原先單一數據結構轉變為多維化、多元化結構,數據之間的顯性與潛在的分布關系也越來越模糊.如何將海量的抽油機井狀態數據、地質數據以及工作生產數據進行數據預處理、特征選擇并進行關聯性分析,以找尋對油氣開采有利的生成信息,是指導項目實際生產、提升油氣產量、降低產量遞減速率、提升剩余油開采幾率的重要數據依據.
與此同時,如何對石油大數據進行快速、及時的數據挖掘與知識發現,傳統的單機服務器,需要利用現有的分布式集群以及快速通用的計算引擎,同時,需要現有石油工程以及采油工程等相關學科專業知識與通用算法,而且需要建立石油工業大數據倉庫進行輔助存儲,提高平臺讀寫速度以及提升平臺執行計算能力.
由此,石油大數據分析與數據挖掘技術二者結合成為趨勢[3],通過石油工業大數據分析得到的結果可以輔助企業制定出符合工業發展的策略,并能依據石油工業大數據進行生產狀況的及時調整,以促進國內整體石油工業水平的提升.
目前大數據挖掘算法已經被應用到油氣開采相關領域,但是相對油田行業眾多技術人員而言,不僅對數據挖掘算法難以掌握,而且如何編碼實現數據采集、存儲、調用以及執行和可視化,和搭建大數據集群也是其中的難點.與此同時,各類大數據平臺層出不窮,基于Python 的Orange 有較好的可視化編程工具和強大的Python 腳本,基于Java 的KNIME 集成了基礎機器學習組件與數據挖掘算法等等.
如何將石油工業大數據與數據挖掘技術相結合[4-7],并且與具備可控算法流程的大數據分析平臺相融合[8-11]是當前石油工業數據分析領域需要探索的問題.
盡管各種工具都有其優勢,但是針對石油領域的知識挖掘系統而言,如下主要問題需要解決:
(1)針對數據采集過程中如何支持多種數據結構的并支持一鍵選擇本地數據源導入到大數據倉庫的數據采集操作模塊問題;
(2)針對大數據處理過程中,如何選擇大數據倉庫中的數據源構建不同的數據集問題;
(3)在大數據分析工作流程的創建過程中,選擇單數據集條件下的,如何通過簡單的拖拉拽等操作創建單一算法模型或多個算法模型的數據分析處理流程問題;
(4)無法通過系統將數據源、數據集或者大數據分析結果進行二維圖形或者三維圖形的可視化展示.
針對當前石油領域的知識挖掘系統存在未能實現具有可控大數據完整分析工作流程界面的以及大數據信息可視化等問題,在本文中,提出了一個Web 架構驅動的石油工業知識挖掘系統,來解決此類問題,包括如下兩個部分:
(1)可控工作流程的知識挖掘系統:該系統在選擇需要進行分析的數據集后,支持用戶采用拖拽操作快速完成數據建模,支持單數據源單模型算法構建、支持單數據源多模型算法構建,用戶提交數據分析流程后,系統在大數據分析后臺執行模型組建、數據處理、數據分析以及分析結果存儲.
(2)自助式數據挖掘:該系統提供可視化操作的流程創建和豐富的圖表展示分析結果,比如:表格、柱狀圖、雷達圖、折線圖、散點圖等等,實現靈活、多樣的數據分析,從而可快速發現數據中的規律.
在本節中,將介紹石油工業知識挖掘系統架構,主要包含以下4 大部分:數據采集層、數據處理層、數據服務層、自助式可視化層.以圖1所示將分別介紹各個模塊.
(1)數據采集層
石油大數據采集層包含3 部分:數據采集服務器、數據存儲服務器和FTP 服務器集群.

圖1 石油工業知識挖掘系統架構
原始數據(如采油領域相關文本數據、A1/A2 等數據庫中存儲的數據以及HDFS 存儲的數據)視為存儲在各個FTP 服務器中,通過數據采集服務器,將來自不同數據源的數據進行結構化和非結構化構建[12],數據集成后統一存儲到數據存儲服務器中.采用Hive 搭建數據倉庫.同時,HBase[13]作為面向列存儲的數據庫,不僅可以存儲結構化數據,而且彌補了Hive[14]在分析查詢和實時查詢的不足.并且,將非結構化數據存儲在HDFS 中[15],由此,數據采集層完成了數據分析的重要底層部分-數據源和數據集存儲.
系統的用戶數據信息以及提供模型搭建流程等系統信息存儲在結構數據庫MariaDB 數據庫中,它有著更好的子查詢優化與線程池等優勢.
(2)數據處理層
石油工業知識挖掘系統以Hadoop 生態系統[16]作為底層基礎,系統將數據采集層中的歷史數據存儲于HBase 與HDFS 中,數據集數據存儲于Hive 數據倉庫中,通過數據流處理與批處理提供更快的速度給MapReduce,進而快速得到數據計算視圖.在此,Spark[17]平臺提供內存計算服務,Yarn 提供分布式計算框架,Storm 提供流計算服務與批處理服務.數據挖掘模塊由Spark 平臺和Hadoop 平臺搭建,通過連接應用服務器的建模方案和動態算法庫的算法信息,進行數據集引用、模型搭建和數據分析,可以提供數據解析、數據過濾、數據特征變化、數據統計分析以及校驗轉換等等數據預處理操作.
(3)數據服務層
由于數據處理層的處理結果需提供給應用服務器供用戶查詢,系統提供基于內存計算的Redis 數據庫作為數據緩存區,提供查詢數據分析結果與數據執行結果.它基于內存執行緩存存儲,不僅可以提升數據查詢效率,而且,支持數據持久化操作,支持異步操作將內存中的數據寫到硬盤中,且不中斷服務.所以,Redis[18]數據庫提升了系統公共緩存能力,降低了系統存儲數據庫的負載.
數據倉庫提供給用戶允許有較低延時查詢數據的服務,包含大數據量的數據集查詢與歷史數據分析結果查詢等等.
以上保證系統不僅可提供實時查詢當前任務處理結果,而且可提供有延遲的歷史任務處理過程與結果.
(4)自助式可視化服務層
石油工業知識挖掘系統提供了自助式可視化層作為用戶訪問的窗口,有以下幾個功能:
1)提交數據集至數據采集層
該數據集管理模塊為用戶提供多種數據源提交模式,用戶可根據數據源格式選擇提交模式,系統將數據源導入到數據采集服務器中,進行結構化數據與非結構化數據轉換并進行數據集成,將分別存儲到Hive、HBase 與HDFS 中.
2)拖拽操作完成快速數據建模
數據建模模塊在用戶選擇數據集后通過應用服務器向動態算法庫模塊發送請求,服務器提供給用戶數據建模模塊,展示數據預處理、數據集成、數據挖掘算法等等各種算法,用戶采用拖拽方式將算法拖到編輯區,用戶按照要求輸入算法不定項的參數,并選擇連接新的算法,以此循環至模型搭建完成.
3)應用服務器將模型轉至數據處理層
應用服務器將數據集ID 以及模型信息轉至數據處理層,數據處理層在各個組成部分配合下,根據數據集ID 導入數據源并執行數據模型流程.
4)數據處理層完成數據建模與數據分析
數據處理層根據數據集與模型信息,調用動態算法庫中算法jar 文件,并進行基于Spark 平臺的分布式數據分析.
5)數據服務層將數據轉至應用服務層
數據服務層將處理結果與之前數據集信息和模型信息回執到數據服務層,數據服務層進行快速緩存存儲[18],準備提供結果給應用服務器.
6)跳轉至分析服務界面
應用服務器從數據服務層獲取實時分析結果與延時數據信息,通過可視化展示分析數據結果,并依據結果進行知識發現.
7) HTML5 圖標展示
系統提供了多種圖形化技術,幫助來理解數據間的關鍵性聯系,指導以最便捷有效的途徑找到問題的最可能的解決辦法.它融合了圖形、表格等多種可視化技術來處理多維數據,使得數據所表現出的特性、類別、模式和關聯性等信息一目了然,在結果輸出時可方便快捷的進行多種統計結果演示,支持散點圖、分布圖、折線圖、餅圖等.
為了驗證系統的有效性,通過研究抽油機井采油系統效率影響因素[19-21]的關聯性的實驗進行分析[22].包含數據集選定、模型構建、模型執行以及結果可視化展示四個過程.
實驗采用FPGrowth 算法[23]進行影響抽油機井采油系統效率影響因素的關聯性分析.抽油機井系統效率不僅反映當前抽油機的采油質量與效益,而且綜合反映了油田的技術水平和裝備水平,因此研究抽油機井系統效率提升是提高油田工作質量的重要方向.
操作步驟如下:通過選擇華北油田2016-2017年抽油機井某區塊某單口采油井生產數據的本地數據源進行數據源導入,實現將本地數據源轉入到HDFS 和HBase 的大數據倉庫中.選定該生產數據集后,針對該數據集進行數據預處理,首先進行篩選5 個有用列,包含日產液(t)、泵深(m)、動液面(m)、沖程(m)、沖次(n/min);其次針對數據集中的缺失值通過取該條數據集前5 個和后5 個數據的平均值進行數據填充;針對嚴重離群的數據進行該列均值填充法進行修正;最后,為了消除各特征的量綱影響,進行各個因素的標準化處理,對各列數據進行零中心歸一化操作,將數據歸一到同一數量級.數據清洗完成后,執行FPGrowth 算法對每個項進行挖掘,在界面設置算法支持度為0.62,可得到各個因素因素對抽油桿機采油系統效率的影響程度,即可得到整個頻繁項集.流程創建提交完成后,大數據分析后臺進行基于Spark 平臺的分布式數據分析,分析完成后,數據結果存儲于Hive 數據倉庫倉庫中,用戶通過查看該數據流程分析調取最終數據分析結果并進行可視化展示.流程如圖2所示,以此得到各個影響因素對抽油機井采油系統效率的關聯程度,如圖3所示.餅圖效果圖如圖4所示.
通過石油工業知識挖掘系統分析的抽油機井采油系統效率與影響因素的關聯性分析,華北油田的專家與工程師根據經驗對結果滿意,為接下來的抽油機井采油系統效率預測奠定了良好的基礎.

圖3 FPGrowth 算法關聯性分析結果圖

圖4 FPGrowth 算法關聯性分析結果餅圖
本文提出了一種Web 架構驅動的石油工業知識挖掘系統,用于以石油工業數據為基礎,結合采油工程數據挖掘領域相關算法和大數據平臺進行知識挖掘.包含了可控工作流程的知識挖掘系統,實現了通過簡單的拖拽操作完成模型構建并進行數據分析;包含了自助式數據挖掘模塊,通過可視化操作流程與豐富圖表展示結果,幫助用戶發現數據中的規律.用戶可以直接忽略大數據底層搭建與編輯大數據算法等工作,直接通過本系統進行數據收集、數據提取、模型建模、模型執行以及結果可視化展示,目前已經在華北油田部署并運行超過1年,為該單位的石油大數據知識挖掘發揮了重要作用,通過發現石油大數據之間顯性與隱性關系,指導實際項目生產,已經成為該單位提升油氣產量、降低產量遞減速率、提升剩余油開采幾率和盡可能解決儲采失衡問題的重要數據支撐與理論依據.