[摘 要] 本文在大慶油田試井數據庫的基礎上,提出了分布式存儲的采油廠與測試分公司試井數據庫到EPDM模型主數據庫的遷移方法。通過對模型的分析,提出了數據字典獲取方法與數據映射方法,介紹了一種基于Oracle PL/SQL的存儲過程的遷移方法及流程,保證了試井數據遷移的完整性和準確性。
[關鍵詞] 試井;Oracle;PL/SQL;數據遷移:數據映射
[中圖分類號] F270.7 [文獻標識碼] A [文章編號] 1673 - 0194(2013)03- 0054- 04
試井是油田開發過程中一種重要的作業方式,在油田勘探開發數據庫中,試井數據與生產測井數據隸屬于開發庫中的油田監測類數據。EPDM試井模型是大慶油田2010年在中石油PCEDM試井模型的基礎上修訂的模型,根據大慶油田試井數據庫現狀在PCEDM的基礎上對表和字段做了一定的擴充。由于EPDM的上線應用,原有試井數據的遷移已成為首要的工作任務。本文從模型分析、字典獲取、數據映射、數據遷移4方面詳細介紹EPDM試井數據的遷移。
1 試井模型分析
1.1 原試井模型
大慶油田原試井模型采用的是2003年修訂的《開發數據庫邏輯結構與填寫規定》中的油田監測模型。模型中包括DCA類的試井數據和DCB類的生產測井數據。其中試井涵蓋抽油機示功圖、動靜液面、靜液面恢復數據、流靜壓數據和不穩定試井解釋成果等15張數據表。
2003版的試井模型采用的是一種松耦合方式設計的關系數據庫,不同于EPDM模型的緊耦合,松耦合是指表與表之間的關聯程度較低,可以獨立應用,表的設計完全是基于實際應用中數據獲取的需求而設計。對于這種面向實際應用的數據庫設計方式,表間無約束,能夠方便數據的錄入,但錯誤數據出現的概率大。
1.2 EPDM試井模型
A1主庫模型包含基本實體、地質油藏、油氣田注采、測試等17個部分,試井隸屬于測試模塊,由試井項目、動靜液面測試數據、井筒溫度壓力測試等28張表組成。EPDM試井模型數據表見表1。
EPDM試井模型參照數據庫分表設計理論,按照主從表、緊耦合的方式設計。其中試井項目表為主索引表,其他表根據具體試井項目和數據類別(包含現場測試數據、過程化數據和成果數據)來劃分,并且作為試井項目表的從表存在。不同從表以ID字段作為主鍵字段,與試井項目表中的主鍵字段關聯。在原試井模型中頻繁出現的主鍵組合字段(井號、測試日期、監測代碼和層段序號組合)則只在主索引表中存儲,在從表中不再存儲具體數據,僅以ID關聯的方式來間接獲取這些字段的數據。這種存儲方式盡可能地減少了數據項的冗余,設計更加理論化。但是在習慣了原模型數據存儲的管理方式后,新模型在初次應用時難免會覺得有點不方便。而且由于有過多的主外鍵約束,數據遷移入庫較難,但是相對而言,數據一旦進庫后則錯誤較少。
1.3 兩種存儲方案的對比
1.3.1 主鍵的差異
主鍵是保證數據唯一及非空,用來唯一區分表的記錄的字段,它主要用于外鍵的關聯、記錄的增刪改等操作。從性能上來講,在主鍵的設計上應該遵循以下幾個原則:主鍵的無意義性、不應包含動態變化的數據、敏感信息不能選做主鍵、主鍵應該是單列的(為了提高連接和篩選操作的效率)。從實際應用上來講,有意義的主鍵、多列的主鍵反而更易于數據的使用。
原試井模型多采用井號、測試日期、監測代碼和層段序號來作為主鍵。這種有實際意義的主鍵的組合唯一標識了數據表的一條記錄,防止了記錄的重復。雖然容易理解,但是從性能上考慮,執行效率很低。EPDM試井模型應用無實際意義的字段ID來作為主、外鍵,不同表之間通過ID關聯,未與主索引表直接關聯的表以子表連接父表,父表與主索引表直接關聯。ID是一種由不同字符和數字等組成的字符型隨機數,可以由Oralce的隨機函數自動生成。由于用程序生成的鍵值不能重復,在數據庫系統中新入庫數據與舊數據的區分以及數據庫系統的集成上較為方便,執行效率很高。
1.3.2 表級別的差異
原試井模型和EPDM試井模型均按試井施工和資料解釋劃分,但在表級別上有所區分。原模型均為同級別的表,按油水井測壓、分層測試和井間監測等劃分。EPDM則按主從表設計,最多劃分為4級。主表即是試井項目表的主索引表,從表根據試井項目劃分。從表中又劃分為父子表。以流靜壓數據為例,流靜壓測試臺階數據為流靜壓測試基礎數據的子表,流靜壓測試結果信息為流靜壓測試基礎數據的父表。這3張表均為主索引表試井項目表的從表。
1.3.3 表內容設計的差異
EPDM模型比原模型增加了水驅前緣、示蹤劑、投井下取探深/探砂面、驗封等測試項目。由試油結果分析解釋表管理原模型的不穩定試井解釋成果和干擾試井解釋成果數據以及邊界數據。為了與試油表和試井的計量工具表建立關聯,增加了壓力測量與分析和壓力測量與壓力計兩張表作為專門的連接用表。EPDM模型在原模型的基礎上增加了臺階數據,方便臺階深度、壓力、溫度等數據字段的增減。臺階數據的使用雖然減少了字段的個數,但是也導致記錄數隨著臺階序號的個數翻番,是在犧牲存儲空間的前提下減少了字段冗余。
1.4 EPDM試井模型E-R圖
EPDM試井模型關系圖描述了試井項目所涉及的業務實體關系,共36張數據表。其中井筒、完井層位、井筒地層、井作業階段、計量數據表、計量工具表、試油/中途測試結果分析共8張表分別引自基本實體、單井地質及試油作業數據。
EPDM試井模型的E-R圖見圖1。
2 EPDM試井數據字典的獲取
在EPDM試井數據模型的應用中,數據字典是數據遷移中不可或缺的工具。下面介紹3種獲取數據字典的方式。
2.1 利用Oracle動態性能表獲取字典
應用模型文檔整理出建表的SQL語句,在Oracle建表時在comments字段填寫漢字字段名稱,利用系統數據字典可得到實時的PCEDM表數據字典。
2.2 利用PowerDesigne生成數據字典
PowerDesigner可以方便地對管理信息系統進行分析設計,包括了數據庫模型設計的全過程。可以制作數據流程圖、概念數據模型、物理數據模型。當把PowerDesigner 與用戶數據庫連接成功之后,通過菜單中的Generate Database 命令可以在DBMS 中生成數據庫表。
2.3 利用PDMReader生成數據字典
PDMReader是瀏覽速查pDM文件的軟件,具備ADO連接數據庫的基本功能,提供了SQL腳本導出,xls,doc,html,txt文件導出等功能。在PDMReader中導入PDM字典文件,打開DM數據庫(access數據庫),得到數據字典表,導入Oracle。即可利用系統數據字典得到實時的PCEDM表數據字典。
3 數據映射
數據映射是從源數據庫表到目的數據庫表的字段之間的對應關系。在數據遷移過程中,源數據庫表即是原試井模型管理的數據表,目的數據庫表即是在數據庫中建立的EPDM試井模型數據表。映射關系的確定也就是為兩種模型搭建一個關聯的橋梁,為后續數據遷移做準備。數據映射按照遷移方向分為正向與反向兩類。正向是從原模型到EPDM,反向是從EPDM到原模型。映射類型分為直接映射、一對多、多對一、計算字段、合并字段、拆分字段、擴展字段、外關鍵字段、類型轉換字段、單位轉換字段、無用字段、代碼表的映射字段、轉置字段等十多種類型。為每種類型的映射指定操作公式,在映射表中按公式填寫。正向映射表的截圖如圖2所示。