師偉 林茂春 王向輝 李軍茹 程實(shí)
(東方地球物理公司物探技術(shù)研究中心 河北省涿州市 072750)
近年來,隨著“兩寬一高”(寬頻帶的激發(fā)震源,寬方位的觀測排列,高密度的空間采樣)[1]地震勘探一體化技術(shù)在人工地震采集領(lǐng)域的發(fā)展和應(yīng)用,使地震數(shù)據(jù)采集量呈幾何級(jí)數(shù)增長。目前,單一海洋或陸地工區(qū)的地震采集數(shù)據(jù)量已經(jīng)高達(dá)數(shù)十TB 級(jí),甚至數(shù)百TB 級(jí)。同時(shí),隨著歷年地震數(shù)據(jù)采集和生產(chǎn)開發(fā)過程中的配套成果數(shù)據(jù)的積累,數(shù)據(jù)量級(jí)躍升至PB 級(jí)。海量勘探數(shù)據(jù)對(duì)于企業(yè)級(jí)數(shù)據(jù)庫的存儲(chǔ)管理提出了嚴(yán)苛的考驗(yàn)。
Oracle 數(shù)據(jù)庫作為全球數(shù)據(jù)庫產(chǎn)品最大供應(yīng)商,占據(jù)著國內(nèi)外許多核心行業(yè)的數(shù)據(jù)庫市場。在國內(nèi)地震勘探行業(yè)中Oracle9、Oracle10 等系列數(shù)據(jù)庫產(chǎn)品提供了優(yōu)質(zhì)且昂貴的數(shù)據(jù)服務(wù)。但隨著外部環(huán)境的變化(技術(shù)封鎖、國外政策限制等)、市場監(jiān)管的要求、以及開源、自研數(shù)據(jù)庫的興起等多種因素,地震勘探領(lǐng)域需要一款具有開源許可協(xié)議的、技術(shù)趨勢(shì)開放先進(jìn)的、性能指標(biāo)接近Oracle的企業(yè)級(jí)數(shù)據(jù)庫來應(yīng)對(duì)PB 級(jí)海量勘探數(shù)據(jù)的管理。
PG 數(shù)據(jù)庫是加州大學(xué)伯克利分校開發(fā)的對(duì)象‐關(guān)系型數(shù)據(jù)庫管理系統(tǒng)[2],是目前世界上最先進(jìn)、應(yīng)用最廣泛的開源關(guān)系數(shù)據(jù)庫,在全球互聯(lián)網(wǎng)、能源、商業(yè)等多種應(yīng)用領(lǐng)域都有成功示例,且展現(xiàn)出良好的應(yīng)用效果。在國內(nèi)多個(gè)核心行業(yè)和多家大企業(yè)的數(shù)據(jù)庫產(chǎn)品中,PG 數(shù)據(jù)庫或其衍生產(chǎn)品已經(jīng)非常常見。其最具有商業(yè)應(yīng)用價(jià)值的特點(diǎn)有以下三點(diǎn):
PG 數(shù)據(jù)庫的許可協(xié)議是自由開源的許可(a liberal Open Source license)[3],能夠在任何目的下免費(fèi)使用、復(fù)制、修改和分發(fā)軟件,且無須任何書面協(xié)議。在該許可協(xié)議下的直接應(yīng)用或者二次開發(fā)產(chǎn)品不受技術(shù)封鎖、版權(quán)或政策限制,對(duì)于商業(yè)集成有著天然的優(yōu)勢(shì),為深度參與國際競爭的跨國性企業(yè)提供了良好的基礎(chǔ)技術(shù)支持。
PG 數(shù)據(jù)庫是唯一能做到數(shù)據(jù)零丟失的開源數(shù)據(jù)庫,也是最接近工業(yè)標(biāo)準(zhǔn) SQL92 的查詢語言,并且在逐步兼容最新的SQL 標(biāo)準(zhǔn):SQL2003[4]。不僅許多互聯(lián)網(wǎng)企業(yè)廣泛地使用了PG 數(shù)據(jù)庫,國內(nèi)外銀行、金融、交易等數(shù)據(jù)慎重型行業(yè)也在開始向PG 數(shù)據(jù)庫轉(zhuǎn)移,例如在商業(yè)交易系統(tǒng)中,蘇寧基于“PostgreSQL+Citus”的大規(guī)模分布式應(yīng)用。
PG 作為一款功能強(qiáng)大的開源許可協(xié)議數(shù)據(jù)庫系統(tǒng),由600 多位貢獻(xiàn)者組成的團(tuán)隊(duì),提交代碼50000+次,截止目前為止PG 最新版本是13.1。在近5年時(shí)間內(nèi),平均每年升級(jí)一個(gè)大版本,更新迭代的頻次接近于Oracle 數(shù)據(jù)庫。同時(shí),基于PG 的許多第三方開源軟件,插件,擴(kuò)展,中間件等項(xiàng)目層出不窮,極大的豐富了PG的功能,如PostGIS 地理信息擴(kuò)展功能模塊能夠提供豐富且高效的GIS 服務(wù),Greenplum、Citus、PostgreSQL‐XL 等項(xiàng)目支持了PG 的大規(guī)模分布式業(yè)務(wù)。活躍的開源社區(qū)和豐富的開源產(chǎn)品讓PG 的發(fā)展空間更具有可持續(xù)性。
對(duì)于 PG 和Oracle 兩款數(shù)據(jù)庫目前石油地質(zhì)勘探行業(yè)中應(yīng)用特點(diǎn)對(duì)比如表1所示。

表1:行業(yè)應(yīng)用特點(diǎn)比較
根據(jù)當(dāng)前數(shù)據(jù)庫技術(shù)的發(fā)展和國內(nèi)外行業(yè)應(yīng)用情況,PG 數(shù)據(jù)庫是目前公認(rèn)的Oracle 數(shù)據(jù)庫的最佳替代方案。
GeoEast 多學(xué)科數(shù)據(jù)管理系統(tǒng)作為GeoEast 地震處理解釋一體化超大型勘探軟件[5]的數(shù)據(jù)管理平臺(tái),是基于PG 構(gòu)建的數(shù)據(jù)管理系統(tǒng),給PB級(jí)海量數(shù)據(jù)提供了企業(yè)級(jí)的高效管理服務(wù),同時(shí)為地震、地質(zhì)、測井、油藏等領(lǐng)域的應(yīng)用軟件提供盆地級(jí)多學(xué)科數(shù)據(jù)共享服務(wù)。
GeoEast 多學(xué)科數(shù)據(jù)管理系統(tǒng)整體設(shè)計(jì)如圖1所示。

圖1:系統(tǒng)整體設(shè)計(jì)結(jié)構(gòu)圖
GeoEast 多學(xué)科數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)了從業(yè)務(wù)數(shù)據(jù)對(duì)象到物理數(shù)據(jù)庫的完整層次結(jié)構(gòu),根據(jù)多學(xué)科數(shù)據(jù)管理系統(tǒng)應(yīng)有的內(nèi)容和應(yīng)具備的功能,將整體分為三層,由存儲(chǔ)層、映射層、接口層構(gòu)成。存儲(chǔ)層是整個(gè)數(shù)據(jù)平臺(tái)系統(tǒng)運(yùn)行的物理基礎(chǔ),是具體存放GeoEast 系統(tǒng)存儲(chǔ)和管理勘探數(shù)據(jù)的地方,由IO 節(jié)點(diǎn)、存儲(chǔ)陣列、數(shù)據(jù)庫、文件系統(tǒng)等組成,其中核心數(shù)據(jù)庫采用的是PG。存儲(chǔ)層針對(duì)地球物理計(jì)算的特點(diǎn),通過配置適合勘探行業(yè)海量數(shù)據(jù)存儲(chǔ)和訪問的具有大容量存儲(chǔ)空間、高網(wǎng)絡(luò)帶寬的IO 節(jié)點(diǎn),為本行業(yè)海量數(shù)據(jù)提供足夠的存儲(chǔ)空間、高IO 帶寬和高網(wǎng)絡(luò)帶寬,以滿足勘探應(yīng)用對(duì)海量數(shù)據(jù)的存儲(chǔ)能力和吞吐能力。存儲(chǔ)層在整體結(jié)構(gòu)上為海量地震數(shù)據(jù)的高效處理解釋提供了基礎(chǔ)的物質(zhì)條件,其中PG 為存儲(chǔ)層提供了強(qiáng)有力的數(shù)據(jù)管理服務(wù)。映射層是整個(gè)平臺(tái)系統(tǒng)的物理存儲(chǔ)和數(shù)據(jù)對(duì)象的交換管理中樞。向上為應(yīng)用軟件提供統(tǒng)一的物理數(shù)據(jù)訪問底層,通過屏蔽物理存儲(chǔ)介質(zhì)差異,從而簡化應(yīng)用實(shí)現(xiàn),提高擴(kuò)展性和部署靈活性,向下將應(yīng)用軟件提出的數(shù)據(jù)持久化請(qǐng)求進(jìn)行響應(yīng),并將應(yīng)用對(duì)象數(shù)據(jù)寫入物理存儲(chǔ)介質(zhì)。通過開發(fā)統(tǒng)一的物理存儲(chǔ)、數(shù)據(jù)交換和數(shù)據(jù)管理接口,管理整個(gè)系統(tǒng)的應(yīng)用數(shù)據(jù),確保其數(shù)據(jù)訪問的靈活性。業(yè)務(wù)對(duì)象層是一個(gè)通用的數(shù)據(jù)對(duì)象和接口層,所有應(yīng)用軟件都通過對(duì)象層來訪問或交換數(shù)據(jù)。它提供整個(gè)GeoEast 系統(tǒng)應(yīng)用軟件運(yùn)行應(yīng)用對(duì)象和應(yīng)用接口,為了方便C 程序和Fortran 程序的訪問,同時(shí)提供以C 語言開發(fā)接口。
數(shù)據(jù)中心采用的是(C/S)架構(gòu),服務(wù)端由數(shù)據(jù)庫和文件系統(tǒng)構(gòu)成,數(shù)據(jù)中心服務(wù)端架設(shè)在單獨(dú)的數(shù)據(jù)節(jié)點(diǎn)上,通過對(duì)地震勘探數(shù)據(jù)的分類、組織、編碼、存儲(chǔ)、檢索和有效維護(hù),能夠管理項(xiàng)目數(shù)據(jù)庫也能夠管理大規(guī)模成果數(shù)據(jù)庫。GeoEast 系統(tǒng)勘探應(yīng)用通過PG通信協(xié)議封裝請(qǐng)求來訪問數(shù)據(jù)節(jié)點(diǎn)獲取數(shù)據(jù)。
數(shù)據(jù)中心的整體結(jié)構(gòu)如圖2。

圖2:數(shù)據(jù)中心整體結(jié)構(gòu)
數(shù)據(jù)中心的數(shù)據(jù)庫存儲(chǔ)空間是用來存儲(chǔ)實(shí)體物理模型的,是信息世界的邏輯模型通過建模技術(shù),轉(zhuǎn)換為計(jì)算機(jī)世界的物理模型,該物理模型一共分為四個(gè)部分如圖3,分別是用于管理的項(xiàng)目數(shù)據(jù)模型、用于存儲(chǔ)用戶數(shù)據(jù)的用戶數(shù)據(jù)模型、用于規(guī)范GeoEast 系統(tǒng)數(shù)據(jù)取值的標(biāo)準(zhǔn)數(shù)據(jù)模型和用于確定當(dāng)前模型版本信息的元數(shù)據(jù)模型。其中項(xiàng)目數(shù)據(jù)中管理著地震、地質(zhì)、測井、油藏等多種領(lǐng)域的數(shù)據(jù)實(shí)體。

圖3:數(shù)據(jù)中心物理模型圖
在數(shù)據(jù)中心的物理模型的基礎(chǔ)上,結(jié)合PG 數(shù)據(jù)庫系統(tǒng)的語法和SQL92 工業(yè)級(jí)SQL 標(biāo)準(zhǔn)的要求,而建立的一套可以在PG 數(shù)據(jù)庫中建立各種GeoEast 數(shù)據(jù)類型的PG 數(shù)據(jù)庫對(duì)象,如Schema、表、視圖、列、主鍵、唯一鍵、外鍵、索引等。通過PG 數(shù)據(jù)庫對(duì)象實(shí)現(xiàn)對(duì)地震、地質(zhì)、測井、油藏等領(lǐng)域的數(shù)據(jù)對(duì)象進(jìn)行業(yè)務(wù)封裝,對(duì)PG 數(shù)據(jù)庫對(duì)象的屬性和特性開放出接口,并融合成有機(jī)的結(jié)構(gòu)體系,統(tǒng)一的提供給應(yīng)用開發(fā)人員。
GeoEast 多學(xué)科數(shù)據(jù)管理系統(tǒng)通常應(yīng)用于大規(guī)模機(jī)群環(huán)境下,PG 數(shù)據(jù)庫管理著海量地震勘探數(shù)據(jù)和配套成果數(shù)據(jù)的存儲(chǔ)。在收集了用戶使用過程中反饋的性能瓶頸和存在質(zhì)疑的用戶接口,針對(duì)上一代最新版本的基于Oracle 的數(shù)據(jù)接口和基于PG 的數(shù)據(jù)接口進(jìn)行應(yīng)用接口對(duì)比測試。基于不同數(shù)據(jù)庫的數(shù)據(jù)管理系統(tǒng)的應(yīng)用接口性能測試方案整體上是在華為II 集群進(jìn)行對(duì)比測試,環(huán)境硬件配置如表2,軟件配置如表3。

表2:集群環(huán)境硬件配置表

表3:集群環(huán)境軟件配置表
4.3.1 數(shù)據(jù)組織
為了更好的檢驗(yàn)PG 在GeoEast 多學(xué)科數(shù)據(jù)管理系統(tǒng)中的負(fù)載和性能,結(jié)合地球物理勘探數(shù)據(jù)存儲(chǔ)和計(jì)算的特征,采用特殊的數(shù)據(jù)組織方法如圖4,結(jié)合多學(xué)科數(shù)據(jù)類型、海量數(shù)據(jù)規(guī)模、復(fù)雜數(shù)據(jù)結(jié)構(gòu)、多樣化現(xiàn)場數(shù)據(jù)格式等實(shí)際產(chǎn)生模式下的數(shù)據(jù)特點(diǎn),模擬出更貼近實(shí)際產(chǎn)生模式下的數(shù)據(jù)規(guī)模。

圖4:數(shù)據(jù)組織流程圖
對(duì)中國西北部某些石油勘探區(qū)域的項(xiàng)目數(shù)據(jù)進(jìn)行評(píng)估,對(duì)探區(qū)面積、采集方式、地質(zhì)環(huán)境等因素進(jìn)行篩選,從中選出結(jié)構(gòu)復(fù)雜、類型多樣的基礎(chǔ)數(shù)據(jù)樣本,采取多次復(fù)制合并的操作,將不同數(shù)據(jù)量接規(guī)模的數(shù)據(jù)分別導(dǎo)入到PG 和ORACLE 數(shù)據(jù)庫中,組合成一個(gè)規(guī)模龐大、各類型數(shù)據(jù)量級(jí)階梯明顯的測試數(shù)據(jù)中心,其各項(xiàng)數(shù)據(jù)類型的最大數(shù)據(jù)規(guī)模大于等于盆地級(jí)勘探數(shù)據(jù)規(guī)模。
4.3.2 測試設(shè)計(jì)
整體設(shè)計(jì)采用控制變量的白盒測試,在相同的軟硬件條件下,對(duì)不同GeoEast 多學(xué)科數(shù)據(jù)管理平臺(tái)(PG 新平臺(tái)和ORACLE 老平臺(tái))功能相同的應(yīng)用中實(shí)際使用的數(shù)據(jù)接口編寫測試用例。測試過程中,不同平臺(tái)數(shù)據(jù)規(guī)模,代碼路徑,計(jì)時(shí)范圍基本一致。
測試過程中使用具有代表性的、多組階梯數(shù)據(jù)量級(jí)的實(shí)際測試數(shù)據(jù),分別在兩個(gè)不同的平臺(tái)上運(yùn)行并記錄相應(yīng)時(shí)間。對(duì)高密度高精度數(shù)據(jù)類型采用批量輪詢?cè)L問的方法,對(duì)部分成果數(shù)據(jù)采用均值來表示實(shí)際相應(yīng)時(shí)間,最終分析基于不同數(shù)據(jù)庫應(yīng)用的多學(xué)科數(shù)據(jù)管理平臺(tái)性能和效率。測試要求要符合以下5 條內(nèi)容:
(1)測試結(jié)果要真實(shí)可靠;
(2)測試中用例選取應(yīng)能夠覆蓋接口的全部功能;
(3)測試中用例能夠體現(xiàn)性能效率方面的要求;
(4)測試邏輯能達(dá)到實(shí)際應(yīng)用需求的標(biāo)準(zhǔn);
(5)測試中以測試用例正常結(jié)束并符合期望輸出作為評(píng)價(jià)標(biāo)準(zhǔn)來確定測試是否完成。
4.3.3 測試結(jié)果
測試結(jié)果如表4、圖5,其中ORACLE 縮寫為ORA。

表4:PostgreSQL 和ORACLE 應(yīng)用接口對(duì)比測試結(jié)果表

圖5:PostgreSQL 和ORACLE 應(yīng)用接口對(duì)比測試結(jié)果圖
測試結(jié)果表明,GeoEast 多學(xué)科數(shù)據(jù)管理平臺(tái)基于ORACLE 和PG 的應(yīng)用接口性能各有優(yōu)勢(shì)。在層位、斷層、井等類型數(shù)據(jù)的應(yīng)用接口有較好的表現(xiàn),大體上能夠和ORACLE 數(shù)據(jù)應(yīng)用接口持平。但是針對(duì)多學(xué)科數(shù)據(jù)類型,海量數(shù)據(jù)規(guī)模,復(fù)雜數(shù)據(jù)結(jié)構(gòu)的地震勘探數(shù)據(jù),PG 對(duì)數(shù)據(jù)的組織管理仍然有優(yōu)化空間。面對(duì)數(shù)據(jù)規(guī)模的快速遞增,ORACLE 數(shù)據(jù)較為穩(wěn)定,對(duì)數(shù)據(jù)規(guī)模遞增變化較小。面對(duì)大規(guī)模密集讀取請(qǐng)求時(shí),PG 的性能需要根據(jù)對(duì)應(yīng)的業(yè)務(wù)需求調(diào)整,以達(dá)到最優(yōu)性能。ORACLE 能夠按照業(yè)務(wù)量推薦出合理的參數(shù)。
PG 在GeoEast 多學(xué)科數(shù)據(jù)管理系統(tǒng)的成功應(yīng)用,實(shí)現(xiàn)了應(yīng)用接口性能提升、接口穩(wěn)定、功能正確的情況下,使用PG 數(shù)據(jù)庫成功取代了ORACLE 數(shù)據(jù)庫,從而完全拋開了ORACLE 數(shù)據(jù)庫的商業(yè)和技術(shù)限制。隨著GeoEast 多學(xué)科數(shù)據(jù)管理系統(tǒng)持續(xù)的升級(jí)和優(yōu)化,性能和效率將會(huì)不斷提升,給上層應(yīng)用提供更高效的數(shù)據(jù)服務(wù)。
介紹一種開源企業(yè)級(jí)數(shù)據(jù)庫PostgreSQL,采用一種通過企業(yè)級(jí)SQL 標(biāo)準(zhǔn)封裝了多學(xué)科數(shù)據(jù)業(yè)務(wù)對(duì)象的方案,實(shí)現(xiàn)了對(duì)地震、地質(zhì)、測井、油藏等領(lǐng)域數(shù)據(jù)的組織管理。基于PG 數(shù)據(jù)庫在GeoEast 多學(xué)科數(shù)據(jù)管理系統(tǒng)的成功應(yīng)用能夠給石油勘探行業(yè)兩點(diǎn)啟示:
數(shù)據(jù)庫作為石油地震勘探領(lǐng)域現(xiàn)代信息化軟件的不可缺少的基礎(chǔ)性軟件,在商業(yè)數(shù)據(jù)庫的行業(yè)沖擊下,存在著商業(yè)成本高、銷售政策限制、核心技術(shù)無法自主可控等問題。開源數(shù)據(jù)庫的應(yīng)用,完全避開了ORACLE 數(shù)據(jù)庫的限制,給勘探應(yīng)用軟件提供了良好的商業(yè)價(jià)值。同時(shí),針對(duì)石油勘探領(lǐng)域企業(yè)級(jí)數(shù)據(jù)庫服務(wù),PG 數(shù)據(jù)庫給二次開發(fā)提供了完全自主知識(shí)產(chǎn)權(quán)和很高的商業(yè)潛在價(jià)值。
面對(duì)日益發(fā)展的石油勘探技術(shù)所帶來的勘探數(shù)據(jù)量級(jí)的躍升和油田大數(shù)據(jù)的應(yīng)用[6],PG 以高可靠性,事務(wù)安全,兼容眾多SQL標(biāo)準(zhǔn)等優(yōu)勢(shì)[7],管理了PB 級(jí)石油勘探數(shù)據(jù)。同時(shí),PG 以活躍的社區(qū)和國內(nèi)外豐富的分布式大規(guī)模應(yīng)用解決方案,能夠給規(guī)模在 PB級(jí)以上的地震勘探數(shù)據(jù)提供良好的解決方案。