師偉 林茂春 王向輝 李軍茹 程實
(東方地球物理公司物探技術研究中心 河北省涿州市 072750)
近年來,隨著“兩寬一高”(寬頻帶的激發(fā)震源,寬方位的觀測排列,高密度的空間采樣)[1]地震勘探一體化技術在人工地震采集領域的發(fā)展和應用,使地震數(shù)據(jù)采集量呈幾何級數(shù)增長。目前,單一海洋或陸地工區(qū)的地震采集數(shù)據(jù)量已經(jīng)高達數(shù)十TB 級,甚至數(shù)百TB 級。同時,隨著歷年地震數(shù)據(jù)采集和生產(chǎn)開發(fā)過程中的配套成果數(shù)據(jù)的積累,數(shù)據(jù)量級躍升至PB 級。海量勘探數(shù)據(jù)對于企業(yè)級數(shù)據(jù)庫的存儲管理提出了嚴苛的考驗。
Oracle 數(shù)據(jù)庫作為全球數(shù)據(jù)庫產(chǎn)品最大供應商,占據(jù)著國內(nèi)外許多核心行業(yè)的數(shù)據(jù)庫市場。在國內(nèi)地震勘探行業(yè)中Oracle9、Oracle10 等系列數(shù)據(jù)庫產(chǎn)品提供了優(yōu)質(zhì)且昂貴的數(shù)據(jù)服務。但隨著外部環(huán)境的變化(技術封鎖、國外政策限制等)、市場監(jiān)管的要求、以及開源、自研數(shù)據(jù)庫的興起等多種因素,地震勘探領域需要一款具有開源許可協(xié)議的、技術趨勢開放先進的、性能指標接近Oracle的企業(yè)級數(shù)據(jù)庫來應對PB 級海量勘探數(shù)據(jù)的管理。
PG 數(shù)據(jù)庫是加州大學伯克利分校開發(fā)的對象‐關系型數(shù)據(jù)庫管理系統(tǒng)[2],是目前世界上最先進、應用最廣泛的開源關系數(shù)據(jù)庫,在全球互聯(lián)網(wǎng)、能源、商業(yè)等多種應用領域都有成功示例,且展現(xiàn)出良好的應用效果。在國內(nèi)多個核心行業(yè)和多家大企業(yè)的數(shù)據(jù)庫產(chǎn)品中,PG 數(shù)據(jù)庫或其衍生產(chǎn)品已經(jīng)非常常見。其最具有商業(yè)應用價值的特點有以下三點:
PG 數(shù)據(jù)庫的許可協(xié)議是自由開源的許可(a liberal Open Source license)[3],能夠在任何目的下免費使用、復制、修改和分發(fā)軟件,且無須任何書面協(xié)議。在該許可協(xié)議下的直接應用或者二次開發(fā)產(chǎn)品不受技術封鎖、版權或政策限制,對于商業(yè)集成有著天然的優(yōu)勢,為深度參與國際競爭的跨國性企業(yè)提供了良好的基礎技術支持。
PG 數(shù)據(jù)庫是唯一能做到數(shù)據(jù)零丟失的開源數(shù)據(jù)庫,也是最接近工業(yè)標準 SQL92 的查詢語言,并且在逐步兼容最新的SQL 標準:SQL2003[4]。不僅許多互聯(lián)網(wǎng)企業(yè)廣泛地使用了PG 數(shù)據(jù)庫,國內(nèi)外銀行、金融、交易等數(shù)據(jù)慎重型行業(yè)也在開始向PG 數(shù)據(jù)庫轉移,例如在商業(yè)交易系統(tǒng)中,蘇寧基于“PostgreSQL+Citus”的大規(guī)模分布式應用。
PG 作為一款功能強大的開源許可協(xié)議數(shù)據(jù)庫系統(tǒng),由600 多位貢獻者組成的團隊,提交代碼50000+次,截止目前為止PG 最新版本是13.1。在近5年時間內(nèi),平均每年升級一個大版本,更新迭代的頻次接近于Oracle 數(shù)據(jù)庫。同時,基于PG 的許多第三方開源軟件,插件,擴展,中間件等項目層出不窮,極大的豐富了PG的功能,如PostGIS 地理信息擴展功能模塊能夠提供豐富且高效的GIS 服務,Greenplum、Citus、PostgreSQL‐XL 等項目支持了PG 的大規(guī)模分布式業(yè)務。活躍的開源社區(qū)和豐富的開源產(chǎn)品讓PG 的發(fā)展空間更具有可持續(xù)性。
對于 PG 和Oracle 兩款數(shù)據(jù)庫目前石油地質(zhì)勘探行業(yè)中應用特點對比如表1所示。
表1:行業(yè)應用特點比較
根據(jù)當前數(shù)據(jù)庫技術的發(fā)展和國內(nèi)外行業(yè)應用情況,PG 數(shù)據(jù)庫是目前公認的Oracle 數(shù)據(jù)庫的最佳替代方案。
GeoEast 多學科數(shù)據(jù)管理系統(tǒng)作為GeoEast 地震處理解釋一體化超大型勘探軟件[5]的數(shù)據(jù)管理平臺,是基于PG 構建的數(shù)據(jù)管理系統(tǒng),給PB級海量數(shù)據(jù)提供了企業(yè)級的高效管理服務,同時為地震、地質(zhì)、測井、油藏等領域的應用軟件提供盆地級多學科數(shù)據(jù)共享服務。
GeoEast 多學科數(shù)據(jù)管理系統(tǒng)整體設計如圖1所示。
圖1:系統(tǒng)整體設計結構圖
GeoEast 多學科數(shù)據(jù)管理系統(tǒng)實現(xiàn)了從業(yè)務數(shù)據(jù)對象到物理數(shù)據(jù)庫的完整層次結構,根據(jù)多學科數(shù)據(jù)管理系統(tǒng)應有的內(nèi)容和應具備的功能,將整體分為三層,由存儲層、映射層、接口層構成。存儲層是整個數(shù)據(jù)平臺系統(tǒng)運行的物理基礎,是具體存放GeoEast 系統(tǒng)存儲和管理勘探數(shù)據(jù)的地方,由IO 節(jié)點、存儲陣列、數(shù)據(jù)庫、文件系統(tǒng)等組成,其中核心數(shù)據(jù)庫采用的是PG。存儲層針對地球物理計算的特點,通過配置適合勘探行業(yè)海量數(shù)據(jù)存儲和訪問的具有大容量存儲空間、高網(wǎng)絡帶寬的IO 節(jié)點,為本行業(yè)海量數(shù)據(jù)提供足夠的存儲空間、高IO 帶寬和高網(wǎng)絡帶寬,以滿足勘探應用對海量數(shù)據(jù)的存儲能力和吞吐能力。存儲層在整體結構上為海量地震數(shù)據(jù)的高效處理解釋提供了基礎的物質(zhì)條件,其中PG 為存儲層提供了強有力的數(shù)據(jù)管理服務。映射層是整個平臺系統(tǒng)的物理存儲和數(shù)據(jù)對象的交換管理中樞。向上為應用軟件提供統(tǒng)一的物理數(shù)據(jù)訪問底層,通過屏蔽物理存儲介質(zhì)差異,從而簡化應用實現(xiàn),提高擴展性和部署靈活性,向下將應用軟件提出的數(shù)據(jù)持久化請求進行響應,并將應用對象數(shù)據(jù)寫入物理存儲介質(zhì)。通過開發(fā)統(tǒng)一的物理存儲、數(shù)據(jù)交換和數(shù)據(jù)管理接口,管理整個系統(tǒng)的應用數(shù)據(jù),確保其數(shù)據(jù)訪問的靈活性。業(yè)務對象層是一個通用的數(shù)據(jù)對象和接口層,所有應用軟件都通過對象層來訪問或交換數(shù)據(jù)。它提供整個GeoEast 系統(tǒng)應用軟件運行應用對象和應用接口,為了方便C 程序和Fortran 程序的訪問,同時提供以C 語言開發(fā)接口。
數(shù)據(jù)中心采用的是(C/S)架構,服務端由數(shù)據(jù)庫和文件系統(tǒng)構成,數(shù)據(jù)中心服務端架設在單獨的數(shù)據(jù)節(jié)點上,通過對地震勘探數(shù)據(jù)的分類、組織、編碼、存儲、檢索和有效維護,能夠管理項目數(shù)據(jù)庫也能夠管理大規(guī)模成果數(shù)據(jù)庫。GeoEast 系統(tǒng)勘探應用通過PG通信協(xié)議封裝請求來訪問數(shù)據(jù)節(jié)點獲取數(shù)據(jù)。
數(shù)據(jù)中心的整體結構如圖2。
圖2:數(shù)據(jù)中心整體結構
數(shù)據(jù)中心的數(shù)據(jù)庫存儲空間是用來存儲實體物理模型的,是信息世界的邏輯模型通過建模技術,轉換為計算機世界的物理模型,該物理模型一共分為四個部分如圖3,分別是用于管理的項目數(shù)據(jù)模型、用于存儲用戶數(shù)據(jù)的用戶數(shù)據(jù)模型、用于規(guī)范GeoEast 系統(tǒng)數(shù)據(jù)取值的標準數(shù)據(jù)模型和用于確定當前模型版本信息的元數(shù)據(jù)模型。其中項目數(shù)據(jù)中管理著地震、地質(zhì)、測井、油藏等多種領域的數(shù)據(jù)實體。
圖3:數(shù)據(jù)中心物理模型圖
在數(shù)據(jù)中心的物理模型的基礎上,結合PG 數(shù)據(jù)庫系統(tǒng)的語法和SQL92 工業(yè)級SQL 標準的要求,而建立的一套可以在PG 數(shù)據(jù)庫中建立各種GeoEast 數(shù)據(jù)類型的PG 數(shù)據(jù)庫對象,如Schema、表、視圖、列、主鍵、唯一鍵、外鍵、索引等。通過PG 數(shù)據(jù)庫對象實現(xiàn)對地震、地質(zhì)、測井、油藏等領域的數(shù)據(jù)對象進行業(yè)務封裝,對PG 數(shù)據(jù)庫對象的屬性和特性開放出接口,并融合成有機的結構體系,統(tǒng)一的提供給應用開發(fā)人員。
GeoEast 多學科數(shù)據(jù)管理系統(tǒng)通常應用于大規(guī)模機群環(huán)境下,PG 數(shù)據(jù)庫管理著海量地震勘探數(shù)據(jù)和配套成果數(shù)據(jù)的存儲。在收集了用戶使用過程中反饋的性能瓶頸和存在質(zhì)疑的用戶接口,針對上一代最新版本的基于Oracle 的數(shù)據(jù)接口和基于PG 的數(shù)據(jù)接口進行應用接口對比測試。基于不同數(shù)據(jù)庫的數(shù)據(jù)管理系統(tǒng)的應用接口性能測試方案整體上是在華為II 集群進行對比測試,環(huán)境硬件配置如表2,軟件配置如表3。
表2:集群環(huán)境硬件配置表
表3:集群環(huán)境軟件配置表
4.3.1 數(shù)據(jù)組織
為了更好的檢驗PG 在GeoEast 多學科數(shù)據(jù)管理系統(tǒng)中的負載和性能,結合地球物理勘探數(shù)據(jù)存儲和計算的特征,采用特殊的數(shù)據(jù)組織方法如圖4,結合多學科數(shù)據(jù)類型、海量數(shù)據(jù)規(guī)模、復雜數(shù)據(jù)結構、多樣化現(xiàn)場數(shù)據(jù)格式等實際產(chǎn)生模式下的數(shù)據(jù)特點,模擬出更貼近實際產(chǎn)生模式下的數(shù)據(jù)規(guī)模。
圖4:數(shù)據(jù)組織流程圖
對中國西北部某些石油勘探區(qū)域的項目數(shù)據(jù)進行評估,對探區(qū)面積、采集方式、地質(zhì)環(huán)境等因素進行篩選,從中選出結構復雜、類型多樣的基礎數(shù)據(jù)樣本,采取多次復制合并的操作,將不同數(shù)據(jù)量接規(guī)模的數(shù)據(jù)分別導入到PG 和ORACLE 數(shù)據(jù)庫中,組合成一個規(guī)模龐大、各類型數(shù)據(jù)量級階梯明顯的測試數(shù)據(jù)中心,其各項數(shù)據(jù)類型的最大數(shù)據(jù)規(guī)模大于等于盆地級勘探數(shù)據(jù)規(guī)模。
4.3.2 測試設計
整體設計采用控制變量的白盒測試,在相同的軟硬件條件下,對不同GeoEast 多學科數(shù)據(jù)管理平臺(PG 新平臺和ORACLE 老平臺)功能相同的應用中實際使用的數(shù)據(jù)接口編寫測試用例。測試過程中,不同平臺數(shù)據(jù)規(guī)模,代碼路徑,計時范圍基本一致。
測試過程中使用具有代表性的、多組階梯數(shù)據(jù)量級的實際測試數(shù)據(jù),分別在兩個不同的平臺上運行并記錄相應時間。對高密度高精度數(shù)據(jù)類型采用批量輪詢訪問的方法,對部分成果數(shù)據(jù)采用均值來表示實際相應時間,最終分析基于不同數(shù)據(jù)庫應用的多學科數(shù)據(jù)管理平臺性能和效率。測試要求要符合以下5 條內(nèi)容:
(1)測試結果要真實可靠;
(2)測試中用例選取應能夠覆蓋接口的全部功能;
(3)測試中用例能夠體現(xiàn)性能效率方面的要求;
(4)測試邏輯能達到實際應用需求的標準;
(5)測試中以測試用例正常結束并符合期望輸出作為評價標準來確定測試是否完成。
4.3.3 測試結果
測試結果如表4、圖5,其中ORACLE 縮寫為ORA。
表4:PostgreSQL 和ORACLE 應用接口對比測試結果表
圖5:PostgreSQL 和ORACLE 應用接口對比測試結果圖
測試結果表明,GeoEast 多學科數(shù)據(jù)管理平臺基于ORACLE 和PG 的應用接口性能各有優(yōu)勢。在層位、斷層、井等類型數(shù)據(jù)的應用接口有較好的表現(xiàn),大體上能夠和ORACLE 數(shù)據(jù)應用接口持平。但是針對多學科數(shù)據(jù)類型,海量數(shù)據(jù)規(guī)模,復雜數(shù)據(jù)結構的地震勘探數(shù)據(jù),PG 對數(shù)據(jù)的組織管理仍然有優(yōu)化空間。面對數(shù)據(jù)規(guī)模的快速遞增,ORACLE 數(shù)據(jù)較為穩(wěn)定,對數(shù)據(jù)規(guī)模遞增變化較小。面對大規(guī)模密集讀取請求時,PG 的性能需要根據(jù)對應的業(yè)務需求調(diào)整,以達到最優(yōu)性能。ORACLE 能夠按照業(yè)務量推薦出合理的參數(shù)。
PG 在GeoEast 多學科數(shù)據(jù)管理系統(tǒng)的成功應用,實現(xiàn)了應用接口性能提升、接口穩(wěn)定、功能正確的情況下,使用PG 數(shù)據(jù)庫成功取代了ORACLE 數(shù)據(jù)庫,從而完全拋開了ORACLE 數(shù)據(jù)庫的商業(yè)和技術限制。隨著GeoEast 多學科數(shù)據(jù)管理系統(tǒng)持續(xù)的升級和優(yōu)化,性能和效率將會不斷提升,給上層應用提供更高效的數(shù)據(jù)服務。
介紹一種開源企業(yè)級數(shù)據(jù)庫PostgreSQL,采用一種通過企業(yè)級SQL 標準封裝了多學科數(shù)據(jù)業(yè)務對象的方案,實現(xiàn)了對地震、地質(zhì)、測井、油藏等領域數(shù)據(jù)的組織管理?;赑G 數(shù)據(jù)庫在GeoEast 多學科數(shù)據(jù)管理系統(tǒng)的成功應用能夠給石油勘探行業(yè)兩點啟示:
數(shù)據(jù)庫作為石油地震勘探領域現(xiàn)代信息化軟件的不可缺少的基礎性軟件,在商業(yè)數(shù)據(jù)庫的行業(yè)沖擊下,存在著商業(yè)成本高、銷售政策限制、核心技術無法自主可控等問題。開源數(shù)據(jù)庫的應用,完全避開了ORACLE 數(shù)據(jù)庫的限制,給勘探應用軟件提供了良好的商業(yè)價值。同時,針對石油勘探領域企業(yè)級數(shù)據(jù)庫服務,PG 數(shù)據(jù)庫給二次開發(fā)提供了完全自主知識產(chǎn)權和很高的商業(yè)潛在價值。
面對日益發(fā)展的石油勘探技術所帶來的勘探數(shù)據(jù)量級的躍升和油田大數(shù)據(jù)的應用[6],PG 以高可靠性,事務安全,兼容眾多SQL標準等優(yōu)勢[7],管理了PB 級石油勘探數(shù)據(jù)。同時,PG 以活躍的社區(qū)和國內(nèi)外豐富的分布式大規(guī)模應用解決方案,能夠給規(guī)模在 PB級以上的地震勘探數(shù)據(jù)提供良好的解決方案。