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