張 蕓
(中國石油大港油田信息中心,天津 300280)
自20 世紀80 年代以來,我國石油上游信息化建設歷經30 多年的探索發展,經歷從分散到集中、從集中到集成、從集成到共享的發展階段,目前已邁入共享智能新發展階段。油氣田企業數據類型種類繁多,數據組織形式復雜,數據分析應用手段落后,傳統的數據存儲、管理和應用技術無法最大限度地發揮數據價值,油氣田企業需要尋求新的方式提高數據利用效率。
油氣田企業勘探開發數據總體可以分為3 類:結構化數據、非結構化數據和時序數據。油氣田企業對于這3 類數據的管理存在一些問題。
(1)結構化數據。結構化數據多為表格數據,通過人工填報后提交到系統中,如套管結構數據、巖屑描述記錄等,這些數據通過Oracle、SQL server 等關系型數據庫存儲管理,存儲和管理技術相對成熟。但由于油氣田企業信息系統眾多,各系統之間存在信息“孤島”現象,各個關系型數據庫中的數據存在主數據不統一、數據重復錄入等問題。
(2)非結構化數據。油氣田企業的非結構化數據分為兩類,一類是數量多而單文件小的文件,如文檔報告、多媒體PPT 等;還有一類是需要專業軟件解析的大數據體,如地震數據體、測井曲線數據等,這類數據單文件較大,屬于大塊非結構化數據。油氣田企業一般使用文件傳輸協議(File Transfer Protocol,FTP)技術對文件進行存儲和管理,這種存儲方式會導致非結構化數據和企業主數據的管理相脫節,在應用的時候無法有效檢索和定位到所需要的非結構化數據,且FTP 技術存儲效率較低,無法提供良好的應用效果。
(3)時序數據。時序數據為時間序列數據,如井口物聯網設備定時產生的數據,這類數據產生的頻率快,由時間驅動產生,應用的時候主要是看它們的數據趨勢和異常值。對于時序數據管理,目前有兩種管理方法:一種方法是根據設備廠商所提供的時序數據庫軟件對時序數據進行存儲和管理,不同的物聯網設備會對應不同的時序軟件,不同的時序數據庫之間有著技術壁壘,不利于數據的集成和應用;另一種方法是直接采用關系型數據庫對時序數據進行存儲和管理,這種方法在實時數據量大的時候會出現查詢效率低、讀寫卡頓等問題,無法滿足時序數據查詢的時效性要求。
數據湖(Data Lake)這個概念由Pentaho 公司的創始人兼首席技術官詹姆斯?狄克遜提出,其主要思想是對企業中所有數據進行統一存儲,從原始數據轉換為用于報告、可視化、分析和機器學習等各種任務的轉換數據,這些數據包括關系數據庫中的結構化數據、半結構化數據、非結構化數據和二進制數據等,從而形成一個集中化數據存儲系統來容納所有形式的數據。
本文結合數據湖的概念,針對當前大數據時代背景下油氣田企業勘探開發數據管理中的問題,提出一種基于數據湖理念的油氣田企業勘探開發數據湖架構,通過主數據將油氣田企業的各類數據集成起來,再通過大數據技術豐富數據利用手段,充分發揮數據價值,滿足油氣田企業勘探開發數據智能共享需求。
油氣田企業勘探開發數據湖架構如圖1 所示,數據湖架構分為4 層,包括數據采集層、數據集成層、數據存儲層和數據應用層。數據采集層為源數據采集的一層,是數據的來源。數據集成層對數據源層的數據進行數據質量的檢查和主數據的統一,同時和數據存儲層的數據模型建立映射關系,數據集成層將多源的數據整合到一起,通過主數據建立不同類型數據之間的關系。數據存儲層將數據存儲到數據庫中。數據應用層利用大數據分析技術,充分利用數據湖中的各類數據。

圖1 油氣田企業勘探開發數據湖架構
自信息化建設以來,油氣田企業已建成多個采集系統,包括主數據采集系統、鉆井數據采集系統、錄井數據采集系統等,這些系統采集的數據有的是結構化數據,有的是地震體大文件,有的是設備產生的時序數據。
這些系統平穩運行了許多年,對于這類系統,數據湖要充分考慮系統采集的數據結構,獲取系統元數據,厘清企業數據資產,形成企業數據清單,明確油氣田企業中的數據采集內容、采集方式、存儲方式、管理方式。
數據集成層主要包括主數據統一、重復錄入檢查、數據質量檢查、數據映射、建立同步和定時任務功能。
(1)主數據統一。主數據為企業數據的核心數據,其他所有業務數據都是以主數據展開的業務活動數據,從理論上來說,不同系統中的同一主數據應該是一致的,所以對于已建成的系統來說,其需要進行主數據的統一梳理,保證在企業范圍內主數據的唯一性和準確性。對于油氣田企業而言,其主數據可分為以下幾類(見表1)。

表1 油氣田企業主數據分類
表1 中,屬性規范值為代碼表,如“井別”“井型”數據,這種數據有標準的內容填寫限制范圍,在同一油氣田企業中應該是規范的、統一的。
數據湖建立完成后,主數據的錄入應嚴格按照主數據的錄入流程,老系統的主數據錄入端關閉,統一從數據湖中獲取所需主數據,新系統也不需要重復進行主數據采集,要從已有主數據中獲取數據,從而保證主數據的一致性。
(2)重復錄入檢查。重復錄入檢查主要是針對業務數據的采集內容進行檢查,對多源頭錄入的系統選擇確認,取其中一個源頭的業務數據作為數據來源。
(3)數據質量檢查。對于入湖數據進行質量檢查,不符合質量要求的數據不予入湖,由此保證數據湖的數據質量。
(4)數據映射。數據采集層的數據分散在各個采集系統中,每個系統都有一套單獨的數據結構,但對于數據來說,數據湖是綜合考慮油氣田企業勘探開發數據而建成的數據結構,數據內容包含數據采集層的數據內容,但數據結構和數據采集層的結構并不一致。因此,油氣田企業需要梳理數據采集層和數據湖的數據結構映射關系,形成數據映射表。
(5)建立同步、定時任務。根據數據映射表建立同步接口,設置定時同步任務。根據數據兼容性,可以選擇相應的數據同步工具,如開源的Kettle 或者閉源的ODI 等。
數據存儲層將經過數據清洗、轉換、集成后的數據進行存儲,以主數據為核心,存儲結構化數據、時序數據和非結構化數據,總共涉及3 類數據庫,即傳統結構化數據庫、非結構化數據庫和時序數據庫3 種。
(1)結構化數據庫。結構化數據庫存儲主數據、業務結構化數據、時序數據的歸檔類數據和非結構化數據解析出的結構化數據。主數據是整個數據存儲層的核心實體數據,不論是結構化數據還是非結構化數據、時序數據,都要圍繞主數據展開。業務結構化數據是從采集端采集、數據集成層集成后的數據。時序數據抽稀出的能代表時序數據整體數據變化趨勢和特點的數據和根據時序數據生成的總結、評估類數據報表等生成頻率和數據量遠低于時序數據,可以直接采用結構化數據庫進行存儲,并將時序數據和由它而來的這類數據通過身份標識號(Identity Document,ID)映射建立關系。
非結構化數據可以通過專業軟件的解析模塊和服務解析出相關結構化數據,如測井WIS 數據體解析成LAS 格式數據,就可將單根曲線按照深度存儲到結構化數據表中,將非結構化文件ID 與解析出的可用結構化數據內容進行對應,可以不用下載文件體本身就能抽提出部分可用數據,提高了非結構化數據的利用效率。
(2)非結構化數據體存儲。非結構化數據體的存儲可以選擇簡單存儲服務(Simple Storage Service,S3)協議或者Minio 對象存儲,相較于FTP 存儲,其讀寫效率更高,容災備份更加方便,易于管理。
(3)時序數據存儲。物聯網設備產生的時序數據可存于時序數據庫中。目前,市面上的時序數據庫種類較多,筆者對時序數據庫產品進行了調研和實驗,并從存儲、擴展、實時寫入效率、存儲效率、離線導入、高可用等方面對4 類常用時序數據庫進行了評價對比,得出的時序數據庫對比結果如表2 所示。

表2 4 類時序數據庫對比結果
通過對時序數據庫進行對比,油氣田企業可根據自身需求選取需要的時序數據庫類型。從平臺的擴展性和開源性來看,本文推薦使用OpenTSDB 時序數據庫存儲時序數據。
數據應用層包括數據查詢基本功能,還包括項目庫、高速索引等深層次應用,也提供了領域知識庫、大數據分析等工具,同時提供數據微服務,為其他系統提供獲取數據湖中數據的方式。
(1)數據查詢。提供數據湖中數據多角度的查詢方式,包括根據主數據查詢數據、數據查詢報表;根據查詢維度生成動態目錄查詢等。
(2)項目庫。數據倉庫僅支持結構化數據按照主題查詢,在數據倉庫的理念之上提出項目庫,根據用戶的研究項目和主題,將用戶所需的數據,包括結構化數據、非結構化數據和時序數據打包給用戶,供其查詢和下載,為用戶提供多種數據和數據形式的下載服務。
(3)高速索引。采用ElasticSearch 等高速索引技術,將數據湖中用戶常用數據建立索引,提高數據查詢效率。
(4)大數據分析。集成Mahout、R 語言等開源大數據分析工具包,將數據的預處理、建模、應用的過程放到線上,降低業務人員對大數據分析的難度,讓用戶可以自行探索數據湖中的數據。
(5)領域知識庫。立足于數據湖數據,建立油氣田企業的領域知識庫,為研究人員和方案制訂人員提供參考。
(6)數據湖微服務。將數據湖的數據查詢、獲取及非結構化數據解析等功能模塊發布成數據服務,方便其他系統的調用。
數據湖的建設,以及數據從產生到銷毀的全生命周期都離不開數據治理理念作保障和指導,數據湖中提供數據管理工具,結合數據標準和體系,保證數據湖中數據的及時性、齊全性和準確性。
(1)數據湖管理工具。數據湖管理工具需要包含以下幾個功能:權限控制、數據同步監控、質量規則庫管理、元數據管理、數據公報。
權限控制功能控制用戶和系統訪問數據湖的權限,保證數據湖的數據安全性。數據同步監控反映數據從數據源進入數據湖的情況,保證數據湖中數據的及時性和齊全性。質量規則庫管理功能確定數據湖中數據入庫的質量規則,保證數據的準確性和規范性。元數據管理功能管理數據源和數據湖中的數據結構,存儲數據映射關系,通過元數據管理可以繪制出數據血緣關系圖,方便管理人員厘清數據的來龍去脈。數據公報為數據湖的管理人員提供數據湖現狀和數據入湖的情況。
(2)數據入湖體系。數據入湖體系規范了數據由誰產生、由誰負責、由誰管理,數據湖數據的生命周期離不開體系的約束。
(3)數據標準。數據湖的數據質量規則庫建設和數據的組織形式必須遵守一定的數據標準,如規定錄井數據提報的《錄井資料采集處理解釋規范》等,規范的數據標準為數據質量規則庫的建設提供依據。
數據湖將結構化數據、非結構化數據和時序數據進行全方位的集成,可以最大限度地發揮油氣田企業的數據價值,打破系統壁壘,避免“數據孤島”問題的出現。數據湖建設完成后,數據應用人員通過數據湖應用層的各種功能,可以縮短各個系統中收集、整理數據的時間,更好地滿足數據需求,提高數據應用人員的數據應用效率。同時,跨平臺、跨業務的數據集成,為大數據挖掘奠定了良好的基礎。