陳美君 李君 楊可三



摘? 要:海洋石油鉆完井作業信息化逐漸成為大趨勢,為了彌補Wellview鉆完井信息管理系統只能對單井進行統計的不足,開發人員參考國內外優秀的數據分析思想,開發了一套基于J2EE技術標準的鉆完井數據統計分析系統,實現了多口井之間鉆完井數據的批量拉取及橫向數據分析,為設計人員提供了高效、準確的數據分析及決策支持。文章主要從架構設計、數據庫結構研究、具體功能模塊設計、應用效果等方面介紹了該系統的搭建及應用情況。
關鍵詞:海上油氣田;鉆完井數據庫;數據分析
中圖分類號:TP311.1? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A文章編號:2096-4706(2021)16-0038-03
Construction and Application of a J2EE-based Drilling and Completion Data Statistical Analysis System
CHEN Meijun, LI Jun, YANG Kesan
(Engineering Technology Zhanjiang Branch, CNOOC Energy Development Co., Ltd., Zhanjiang? 524057, China)
Abstract: Informatization of offshore oil drilling and completion operations has gradually become a major trend. In order to make up for the insufficiency that Wellview drilling and completion information management system can only perform statistics on single well, the developers refer to the excellent data analysis ideas at home and abroad and develop a set of drilling and completion data statistical analysis system based on J2EE technology standard. It realizes batch extraction and lateral data analysis of drilling and completion data among multiple wells, providing designers with efficient and accurate data analysis and decision support. This paper mainly introduces the construction and application of the system from the aspects of architecture design, database structure research, specific functional module design, and application effects.
Keywords: offshore oil and gas field; drilling and completion database; data analysis
0? 引? 言
近幾十年來,隨著海洋石油產業的發展壯大,海上油氣田數據量激增。為了更好地對現場鉆完井報表進行存儲和管理,中海油引進了Wellview鉆完井信息管理系統。由于Wellview僅僅是對各井數據進行簡單的存儲,并不具備橫向的統計及分析功能,在實際工作中,設計人員往往需要花費大量精力分別針對多口井的施工參數進行查詢、分析并作出決策,隨著近年來作業量的不斷增加,人工統計工作模式下的數據準確性不足、檢查困難、查詢效率低等問題日益凸顯。
為了讓用戶從重復單一的數據提取環節中脫離出來,快速獲取某區塊井的普遍特點,將更多的精力集中在決策、設計等核心環節上,提高其工作效率,進一步推進“海上數字油田”建設,開發團隊在Wellview數據庫的基礎上,結合當前中海油常用報表模板,開發了一套基于J2EE的鉆完井數據統計分析系統,實現了多井鉆完井工程數據的橫向匯總、對比、分析及圖表生成等功能。
1? 技術路線
1.1? 系統開發語言及架構形式
本系統采用Java作為開發語言,其強大的跨平臺特性使其能夠避免因操作系統不同而需要重新定制開發的煩瑣,可移植性較強。此外,信息安全也是系統構建中的重要環節之一,Java語言的字節碼驗證機制可確保代碼符合JVM規范并防止惡意代碼運行環境,類加載器可防止不受信任的代碼干擾Java程序的運行,在一定程度上降低了工程數據的丟失、篡改、泄露風險。
架構選擇方面,考慮到本系統的使用群體主要為設計人員,且多為陸地分散辦公,內網狀態下網絡通信較為穩定,因此本系統采用B/S架構開發。其優勢在于:對用戶而言,B/S架構對操作系統的種類及具體配置要求較低,無須安裝應用軟件,在內網狀態下通過瀏覽器即可輕松訪問系統;對開發團隊而言,B/S架構業務拓展及后期維護較為簡單,只需在服務器端操作即可實現全體用戶的同步更新,從源頭上避免了分散辦公帶來的維護成本較高的問題。
1.2? 系統框架
本系統遵循了J2EE的技術規范,采用MVC設計模式,將系統分為了模型(Model),視圖(View),控制器(Controller)三大模塊,進而細分為視圖層、業務控制層、邏輯處理層、數據持久層等多個層次,有效降低了不同組件之間的耦合度,減少代碼冗余。其中,視圖層包含了鉆完井數據統計分析系統的全部用戶界面,用于接收用戶輸入的表單數據及呈現處理結果;業務控制層用于接收、解析視圖層傳輸而來的請求參數,并將其分發到具體邏輯處理模塊進行處理,最終將處理結果輸出到視圖層展示出來;邏輯處理層是鉆完井數據統計分析系統的核心工作層,包含了數據校驗、數據邏輯計算、數據流向、文件資源生成等核心功能;數據持久層配置了對接wellview數據庫的連接池文件,用于集中控制與數據庫的連接、中斷環節。基于MVC的分層設計模式有效地將鉆完井數據統計分析系統的各層級模塊分離開來,使得各模塊各司其職成為可能,極大程度地縮減了系統應用的開發時長,降低了后期系統功能維護及模塊拓展的難度,有利于維護人員工程化、工具化地管理程序代碼。
1.3? 數據庫結構研究
Wellview采用的是關系型數據庫,根據現實中各類鉆完井數據之間的邏輯關系作為數據的組織方式形成數據表。為了減少各數據表間屬性的冗余度,提高數據更新的同步性,在存在上下級邏輯關系的數據表之間設置了外鍵約束作為這兩張表的連接紐帶。以井及其各井眼段信息的關聯關系為例,在實際生產中,井與井眼、井眼與井眼段之間均是一對多的關系,如圖1所示。因此,在數據庫中,將井、井眼、井眼段劃分為三張獨立的數據表,為了將這三者關聯起來,數據庫設計人員將井序列號作為井眼表的外鍵,將井眼序列號作為井眼段表的外鍵,這種在兩張表之間設置主鍵和外鍵約束的方式極好地維護了數據的完整性和一致性。
2? 系統功能特點
2.1? 異步傳輸模式下的模糊篩選
為提高用戶在頁面上輸入井名的便捷度,本系統采用SQL模糊查詢的方式為用戶檢索出符合條件的井名列表備選,用戶只需要輸入井的部分字符并搭配通配符或占位符即可快速搜索出所需井。
在數據傳輸模式方面,傳統的同步傳輸模式會帶來頻繁的頁面跳轉。當瀏覽器向服務器請求資源時,服務器會返回一個攜帶資源的頁面返回到瀏覽器端,此時,無論返回的資源有多少,整個頁面都會進行重新渲染,嚴重浪費了網絡帶寬,也增加了用戶等待的時長。為了提高頁面的加載速度,本系統使用了異步傳輸技術(Ajax),瀏覽器將用戶請求發送到XMLHttpRequest異步對象之中,異步對象對請求進行封裝,然后再發送給服務器。同時,XMLHttpRequest異步對象會不停監聽服務器狀態的變化,并將請求到的資源輸出到頁面的指定位置中,從而實現了頁面的局部更新。在此模式下,用戶可以多次提交需要查詢的井進行模糊查詢并分批添加到待提交列表中,避免了頁面整體渲染后丟失前一次表單信息的情況。在Ajax模式下借助模糊查詢快速檢索井名效果如圖2所示。
2.2? 跨表聯合查詢
前面提到,Wellview數據庫是關系型數據庫,通過主鍵及外鍵的約束維護著數據表的完整性和一致性。在提取鉆完井數據時,如某口井的基本概況、某口井各井段數據等,往往涉及多張數據表,因此,系統采用內連接、外連接、交叉連接等方式將每口井散布在不同數據表里的數據根據外鍵關系連接在一起,并加以具體的條件約束,實現跨表聯合查詢。
2.3? 鉆完井數據的橫向統計分析
設計人員在長期的鉆完井設計工作中已經形成了固定的工作模板,開發人員分別根據這些報表模板編寫具體的代碼,形成了以下數據統計分析模塊
(1)基本概況統計。批量拉取井的基本信息,包括作業時間、完鉆地層、井深、作業平臺、鉆井周期等數據。
(2)井身結構統計。通過關聯查詢,批量拉取某井下全部井眼相對應的井段數據,包括井段直徑、套管下深等數據。
(3)鉆頭使用記錄統計。批量拉取某井所使用過的全部鉆頭信息,包括鉆頭類型、接頭尺寸、廠家型號、IADC代碼、鉆頭長度、待鉆井眼尺寸、出入井深度、進尺等數據。
(4)鉆井液密度分析。對用戶所選井的集合根據深度數值進行地層劃分,并分別針對上述地層,分析這些井在該地層的鉆井液密度變化及套管下深。
(5)鉆井工期分析。批量拉取對應井的鉆井工期、套管下深、套管層次數進行對比,繪制統計圖。
(6)完井/生產管柱信息統計。通過關聯查詢,批量拉取各完井/生產管柱及其對應組件的詳細施工數據,包括工具名稱、扣型、內徑、外徑、長度等數據。
系統功能模塊架構,如圖3所示。
2.4? 可視化圖表的生成與導出
數據可視化是本系統的另一核心功能,能夠借助于圖形化手段,清晰有效地將系統計算完畢后的信息傳達給用戶。本系統提供了兩種數據展示方式:網頁端圖表展示及直接在服務器端生成Excel報表的方式。
網頁端在線生成圖表的方式能夠實時生成包含各井數據的表格、折線圖或柱形圖,同時支持圖表類型及源數據的互相轉換、圖片導出等功能。此功能的實現主要是通過在服務器端完成數據的統計分析后,配合Ajax異步傳輸技術,以流的形式將計算結果傳輸到網頁端,并與基于JavaScript的JQuery圖表插件相綁定,將純數據轉化為生動直觀的表格或數據統計圖。
服務器端生成Excel報表的方式能夠方便用戶保存到本地電腦并進行修改使用,其生成Excel文件的全過程均是在服務器端依賴Apache POI函數庫完成的。Apache POI是一個能夠實現對Microsoft office文檔讀寫的開源函數庫。對于布局較為簡單,不需要進行合并單元格等操作的鉆完井報表模板,開發人員在系統邏輯處理層采用邊查詢數據庫邊排版的策略,逐行進行數據查詢并填充到Excel對應行中,但該策略會帶來數據庫查詢次數增多、Excel文件生成速度降低等問題。對于布局較為復雜的鉆完井報表模板而言,需要在邏輯處理層先完成對數據庫的查詢和具體數據的計算,而后針對結果集內的具體數據進行預處理,如數據排列方式的轉置、數值單位的轉換、數值顯示方式的修改等,最后遍歷預處理后的結果集,借助Apache POI完成Excel的排版及生成。
3? 系統應用
鉆完井數據統計分析系統借助權威的海洋石油鉆完井大數據支持,在內網狀態下進行單機部署試用,嚴防源程序及測試資料的外泄。此外,試用期間注重提升用戶體驗和數據準確度,不斷豐富系統內鉆完井報表模板的種類及提高系統易用性,及時根據用戶反饋進行漏洞修補,打破了以往設計工作者依賴人工統計的工作模式,顯著提高了鄰井資料收集的效率及準確率,為鉆完井設計工作者提供了穩定、精確的數據分析支持及決策參考,促進數據價值的最大化發揮。
4? 結? 論
鉆完井數據統計分析系統參考了國內外優秀的數據分析思想,遵循當前主流的J2EE技術規范,采用便于維護的B/S架構模式,結合中海油海上油氣田鉆完井作業的實際情況,形成了海上油氣田基本概況、井身結構、鉆頭使用情況、地層信息及鉆井液密度、鉆井工期、完井/生產管柱等海上一線工程數據的在線展示及報表導出模塊,為設計及決策的高效進行提供了可靠、準確的數據支持服務,是實現鉆完井數據信息化的成功嘗試,后期在持續升級過程中應加強系統安全性建設,增加用戶權限管控等管理模塊。另一方面,有效、準確的數據來源是數據分析的基礎,應將升級重點放在對基礎數據的校驗及預處理環節上,甄別無效數據,并進一步優化數據查詢、分析流程,提高系統的響應速度。
參考文獻:
[1] 魏剛.鉆完井持續改進系統的開發及應用 [J].海洋石油,2017,37(4):72-75.
[2] 王晶晶.大數據下的海洋石油鉆完井數據分析系統開發與應用 [J].中國石油和化工標準與質量,2016,36(21):60-61+63.
[3] 王偉.海上油氣田鉆完井數據管理系統開發及應用研究 [J].當代化工研究,2020(23):51-52.
[4] 張能.海洋鉆完井數據庫系統應用研究 [J].化工管理,2014(32):53+55.
[5] 胡永堂,張能.海洋鉆完井數據庫系統開發與應用 [J].內蒙古石油化工,2012,38(3):22-23.
作者簡介:陳美君(1994—),女,漢族,助理工程師,本科,研究方向:鉆完井信息化建設。