王 輝
中國石化河南油田分公司研究院,河南南陽 473132
Oracle數(shù)據(jù)庫與油藏模擬的集成應(yīng)用研究
王 輝
中國石化河南油田分公司研究院,河南南陽 473132
隨著我國部分油田進入高含水開發(fā)后期,油藏數(shù)值模擬技術(shù)的應(yīng)用也越來越深入細(xì)致,而由此需要處理的數(shù)據(jù)量也越來越大、越來越復(fù)雜。本文通過對數(shù)據(jù)庫與數(shù)值模擬工作的結(jié)合應(yīng)用問題加以研究探索,利用PRO*C和Oracle數(shù)據(jù)庫技術(shù)在Unix平臺下對兩方面的結(jié)合加以研究,從而可以提高生產(chǎn)、科研工作效率。
油藏模擬;PRO*C;oracle數(shù)據(jù)庫
如何提高油田最終采收率,尋找剩余油分布,尋求最佳布井方案,獲得好的注聚效果以及最佳的蒸汽吞吐周期,得到高的投資回報率等等,這一切的一切離不開油藏數(shù)值模擬技術(shù),它也是國內(nèi)外油田開發(fā)中后期尋找剩余油分布指導(dǎo)方案部署通用和慣用的技術(shù)手段。油田開發(fā)數(shù)據(jù)庫建設(shè)已經(jīng)進行了很多年,在科研生產(chǎn)中的應(yīng)用葉越來越多,整個系統(tǒng)逐漸成熟起來,將之與數(shù)值模擬技術(shù)的結(jié)合應(yīng)用前景廣闊。
按照傳統(tǒng)的UNIX交互界面模型進行設(shè)計,用主菜單加多分支判斷語句switch連接而成。ORACLE數(shù)據(jù)庫查詢程序用Pro*C語言編制,由靜態(tài)數(shù)據(jù)查詢、動態(tài)數(shù)據(jù)查詢、生成ECLIPSE文件、生成CMG文件、數(shù)模成果建檔入庫、數(shù)模成果瀏覽查詢、用戶使用幫助等幾個模塊組成。
建立于ORACLE數(shù)據(jù)庫連接的設(shè)計思路的設(shè)計過程中,采用了經(jīng)典的設(shè)計方法,其設(shè)計思路與流程如下主程序與連接服務(wù)器模塊數(shù)據(jù)通過輸入數(shù)據(jù)庫服務(wù)器名、unix用戶名、ORACLE用戶名、ORACLE用戶口令dbasepw,連接服務(wù)器執(zhí)行碼以及數(shù)據(jù)查詢執(zhí)行碼,連接到ORACLE數(shù)據(jù)庫發(fā)送執(zhí)行碼信息,結(jié)果返回到log.msg記錄中,以判定是否正確。
2.3.1 查詢子模塊設(shè)計
查詢數(shù)據(jù)的模塊,包括動態(tài)數(shù)據(jù)查詢和靜態(tài)數(shù)據(jù)查詢以及對專門的數(shù)模成果庫的查詢,3個子功能的設(shè)計思路是一樣的,數(shù)據(jù)查詢子程序的職能是利用開發(fā)數(shù)據(jù)庫系統(tǒng)用戶sjk查詢數(shù)據(jù)庫的表數(shù)據(jù)。該數(shù)據(jù)查詢子程序由3個獨立的Pro*C程序組成,分別查詢4個表:daa02、daa05、dba04、dba05。表數(shù)據(jù)由以井名為代表的數(shù)據(jù)記錄組成,一口井一個記錄,一個記錄由表示井的與表屬性相關(guān)數(shù)據(jù)組成。因此數(shù)據(jù)查詢時要給出表名、井名以及數(shù)據(jù)名。
2.3.2 文件生成模塊設(shè)計
文件生成模塊由主程序和數(shù)據(jù)予處理子模塊組成,它的職能是分別生成CMG、VIP、ECLIPSE數(shù)模軟件的靜態(tài)、動態(tài)輸入數(shù)據(jù)文件。由于ECLIPSE等數(shù)模軟件數(shù)據(jù)的特殊性,首先要對這些數(shù)據(jù)格式進行分析,,雖然3個數(shù)模軟件的動態(tài)數(shù)據(jù)格式不同,但它們的數(shù)據(jù)組成規(guī)律相同,都是以井為一數(shù)據(jù)段且按順序排列。針對各種數(shù)模軟件的數(shù)據(jù)格式類型,調(diào)整轉(zhuǎn)換機制,生成數(shù)模軟件的靜態(tài)、動態(tài)輸入數(shù)據(jù)文件。雖然3個數(shù)模軟件的動態(tài)數(shù)據(jù)格式不同,但它們的數(shù)據(jù)組成規(guī)律相同,都是以井為一數(shù)據(jù)段且按順序排列。針對各種數(shù)模軟件的數(shù)據(jù)格式類型,調(diào)整轉(zhuǎn)換機制,生成所需的靜態(tài)、動態(tài)輸入數(shù)據(jù)文件。
數(shù)模成果是指應(yīng)用不同數(shù)模軟件完成歷史擬合以及各開發(fā)方案預(yù)測的計算結(jié)果,該結(jié)果由一系列數(shù)據(jù)文件組成。針對數(shù)模成果的這種特點,確定了數(shù)模成果數(shù)據(jù)庫的性質(zhì),即以軟件名、數(shù)模區(qū)塊名分類存放的文件庫,成果數(shù)據(jù)的錄入、瀏覽以及提取以文件組的形式進行。
利用SUN的Solaris操作系統(tǒng)命令創(chuàng)建數(shù)模成果數(shù)據(jù)庫:
1)在數(shù)模成果數(shù)據(jù)庫的home目錄/SMSJK下創(chuàng)建一個成果錄入記錄文件;
2)建立文檔說明文件;
3)在數(shù)模成果數(shù)據(jù)錄入時自動將系統(tǒng)時間加在文件后如sh320091120,用來避免文件名重名造成的錯誤。
在Solaris系統(tǒng)終端對話框中,命令提示符下輸入/usr/smpt/ bin/smjcyy彈出菜單,在其中選擇功能模塊,如圖1所示。
在界面繼續(xù)選擇所需使用的功能選項,如選擇1,代表生成ECLIPSE文件選項,在提示符處輸入所要處理的文件名,程序查詢模塊會向數(shù)據(jù)庫提交查詢,在返回的數(shù)據(jù)中,程序控制模塊會對輸出數(shù)據(jù)的進行參數(shù)控制, 包括輸出那些時間的數(shù)據(jù), 那些關(guān)鍵字參數(shù)的數(shù)據(jù),以及對數(shù)據(jù)的處理、挑選可用數(shù)據(jù)。輸出的結(jié)果文件會保存在數(shù)模成果庫中,以便查詢使用。如圖2所示。
圖2
通過本項目的研究在一定程度上解決了長期以來油藏數(shù)值模擬的前期數(shù)據(jù)準(zhǔn)備工作效率低下的問題,直接提高工作效率幾十倍。實現(xiàn)了數(shù)模數(shù)據(jù)資源的高度互補與共享,使數(shù)模數(shù)據(jù)資源的再次利用更為方便快捷,這又間接提高工作效率。通過本項目的研究成果來看,對ECLIPSE 軟件計算的油氣田開發(fā)指標(biāo)預(yù)測數(shù)據(jù)進行此類處理是非常有意義的。
[1]陳月明.油藏數(shù)值模擬基礎(chǔ).石油工業(yè)出版社,1989,9.
[2][美]富爾斯汀.龔波,張平,潘顯俊,譯.ORACLE PL/SQL最佳實踐[M].1版.機械工業(yè)出版社,2008,3.
TE319
A
1674-6708(2010)24-0139-02