陳柯宇,呂昕蓓,孫 韻,秦 超
(中國石油西南油氣田分公司通信與信息技術中心,四川 成都 610051)
西南油氣田分公司經過多年的信息化建設,積累了大量的系統與數據,目前面臨著“信息系統多、數據庫多、孤立應用多”的三多局面,亟需開展數據湖的建設,實現A1、A2、A4、A5等統建系統和勘探開發成果數據采集系統、作業區數字化管理平臺、頁巖氣共享平臺等分公司核心自建系統的共享數據和油田特色數據入湖,打破數據壁壘,實現數據共享,并與集團總部主湖構成連環湖架構,最終實現和主湖數據邏輯統一、分布存儲、互聯互通、就近訪問的目標。
結構化數據共享存儲采用MPP(大規模并行處理器Massively Parallel Processor)數據庫技術,能夠將任務均衡分解到多個節點同時進行運算,有效的解決了大規模的數據作業計算,緩存和IO帶來的性能問題[1]。
結構化數據入湖前需要先開展數據模型的建設和主數據入湖。各數據源系統的數據通過ETL工具,匯聚到數據湖的貼源層,在貼源層進行歸一化處理后,數據推送至數據治理區,進行業務質控審核,審核通過的數據進入到共享存儲層,再推送至分析層,實現數據入湖。

圖1 結構化數據入湖
數據湖中非結構化數據存儲,采用基于S3(簡單存儲服務Simple Storage Service)標準協議的軟件定義分布式文件存儲架構,主湖主控保證邏輯統一,用戶基于統一的RESTful服務訪問文件內容,支持軟件定義數據多鏡像與就近訪問,滿足地震等大塊數據存儲與高效應用[2]。
非結構化數據包括物探數據體、測井曲線和文檔文件三類,按照存儲方式可分為文件索引部分(文件名稱、文件大小、作者等)和文件體部分(數據文件本身)。
(1)文件索引入湖:源數據索引通過DSB同步到FSS管理庫,源數據管理庫變更觸發DBZ產生變化數據,處理程序1將DBZ產生得變化數據,變換格式后推送到RabbitMQ,處理程序2將RabbitMQ數據推送到ElasticSearch。
(2)文件體入湖:處理程序把數據體從源數據存儲同步到數據湖的對象存儲,同步配置對象存儲集群同步策略,文件自動從數據湖對象存儲同步到總部對象存儲。

圖2 非結構化數據入湖
數據湖時序數據存儲,采用主流時序數據庫技術,通過使用Kakfa開展時序數據流接收,清洗,標記,分析等功能。來源數據進入Kafka中,通過各種訂閱進行處理;通過Hadoop 對歷史數據進行保存;處理程序對時序數據整理標記,按照模型進行數據映射;掛接流處理引擎,對數據進行處理分析;標記后的時序數據進行寫入數據湖中時序庫保存,并進行查詢應用。

圖3 時序數據入湖
建立數據入湖形象進度展示模式,以地質導航為驅動,按照西南油氣田分公司、區塊、小區塊層層遞進的方式對各層人員關注的已入湖數據情況進行數據資產可視化展示,包括油田數據總體概覽、基本實體的數量以及非結構化文檔的展示等。

圖4
針對不同類型的數據,采用成熟的技術,設計具有可操作性的數據入湖方案,保證數據能夠全自動、無縫入湖。數據入湖經過實踐,取得了良好的應用效果,對實現數據標準的統一,提升數據質量,支持數據共享,改變油田有數據無資產的被動局面具有重要的意義。