李婧璇
(中國(guó)石油大港油田信息中心,天津 300280)
隨著專業(yè)研究不斷深入和信息技術(shù)快速發(fā)展,石油領(lǐng)域的企業(yè)往往存在多個(gè)涉及開(kāi)發(fā)生產(chǎn)的業(yè)務(wù)系統(tǒng)。這些系統(tǒng)建設(shè)于企業(yè)發(fā)展的不同階段,針對(duì)不同的業(yè)務(wù)側(cè)重點(diǎn)進(jìn)行開(kāi)發(fā),其中沉淀的大量數(shù)據(jù)足夠?yàn)橹鳡I(yíng)業(yè)務(wù)的輔助決策提供可靠而豐富的數(shù)據(jù)支撐。然而,這些系統(tǒng)的底層數(shù)據(jù)存在如下問(wèn)題。
(1)數(shù)據(jù)存儲(chǔ)問(wèn)題:業(yè)務(wù)系統(tǒng)大多相互獨(dú)立,導(dǎo)致數(shù)據(jù)的存儲(chǔ)位置分散,難以實(shí)現(xiàn)數(shù)據(jù)集成。
(2)數(shù)據(jù)質(zhì)量問(wèn)題:缺乏有效的數(shù)據(jù)管理規(guī)劃和規(guī)范的標(biāo)準(zhǔn)流程,出現(xiàn)業(yè)務(wù)對(duì)象定義不一致、編碼格式不同、數(shù)據(jù)冗余或數(shù)據(jù)缺失、管理責(zé)任主體不明確等情況。此外,跨系統(tǒng)數(shù)據(jù)口徑不一致,使得數(shù)據(jù)關(guān)聯(lián)性無(wú)法保障。
(3)數(shù)據(jù)應(yīng)用問(wèn)題:從用戶提出需求一直到交付成果的過(guò)程中,存在數(shù)據(jù)源頭取數(shù)難,跨部門(mén)數(shù)據(jù)共享性差、時(shí)效性低等缺點(diǎn),需要花費(fèi)大量時(shí)間來(lái)打破壁壘。
這些問(wèn)題都導(dǎo)致數(shù)據(jù)資源無(wú)法及時(shí)滿足業(yè)務(wù)人員的個(gè)性化分析需求,阻礙了企業(yè)智能化發(fā)展的進(jìn)程。因此,如何對(duì)數(shù)據(jù)進(jìn)行集中化、統(tǒng)一化、標(biāo)準(zhǔn)化的管理,并借助快速構(gòu)建主題分析模型的手段,形成系統(tǒng)化的協(xié)同應(yīng)用成為研究的方向。
企業(yè)的發(fā)展除帶來(lái)規(guī)模的擴(kuò)張,還必然伴隨著業(yè)務(wù)數(shù)據(jù)量的激增。為了管理好這些數(shù)據(jù)“金礦”,更好地針對(duì)用戶需求提供服務(wù),企業(yè)就需要設(shè)計(jì)一套完善的數(shù)據(jù)集成架構(gòu),作為指導(dǎo)數(shù)據(jù)集成管理的基礎(chǔ)。數(shù)據(jù)集成架構(gòu)的思路是:首先,根據(jù)實(shí)際業(yè)務(wù)場(chǎng)景需要進(jìn)行數(shù)據(jù)集成,然后依托維度建模技術(shù)建立數(shù)據(jù)模型和數(shù)據(jù)倉(cāng)庫(kù),最后通過(guò)統(tǒng)一的數(shù)據(jù)服務(wù)管理支撐數(shù)據(jù)應(yīng)用。文章以石油行業(yè)的開(kāi)發(fā)生產(chǎn)數(shù)據(jù)為例進(jìn)行說(shuō)明,架構(gòu)由底至頂依次包括5 個(gè)層級(jí)。
在數(shù)據(jù)源層,企業(yè)需要基于現(xiàn)有的開(kāi)發(fā)生產(chǎn)應(yīng)用系統(tǒng)開(kāi)展數(shù)據(jù)體系建設(shè),這是為業(yè)務(wù)提供全面、穩(wěn)定、高效的數(shù)據(jù)支撐的基礎(chǔ)。這個(gè)環(huán)節(jié)的主要工作是明確業(yè)務(wù)指標(biāo)的數(shù)據(jù)來(lái)源,確保每個(gè)指標(biāo)源頭的唯一性,同時(shí)盡可能全面覆蓋現(xiàn)有數(shù)據(jù)資源,將在用系統(tǒng),尤其是高頻使用的系統(tǒng)數(shù)據(jù)都納入管理。
數(shù)據(jù)源層的構(gòu)建主要考慮兩方面的因素:一是數(shù)據(jù)標(biāo)準(zhǔn)的相對(duì)獨(dú)立性,二是現(xiàn)有數(shù)據(jù)資源的集成性。目前,中石油的統(tǒng)建系統(tǒng)經(jīng)過(guò)多年推廣和應(yīng)用,已經(jīng)具備相當(dāng)豐富的數(shù)據(jù)資源,尤其是數(shù)據(jù)量大、采集頻度高的生產(chǎn)數(shù)據(jù)。因?yàn)榛谶@部分?jǐn)?shù)據(jù)的日常應(yīng)用較多,數(shù)據(jù)質(zhì)量和及時(shí)性都有保障,所以幾乎不需要開(kāi)展數(shù)據(jù)質(zhì)量檢驗(yàn)和數(shù)據(jù)整理方面的工作,就可以對(duì)其直接使用。另外,還存在部分企業(yè)自建的數(shù)據(jù),如生產(chǎn)運(yùn)行數(shù)據(jù)庫(kù)、工程基礎(chǔ)數(shù)據(jù)庫(kù)等,應(yīng)用時(shí)也會(huì)涉及這些系統(tǒng)的部分?jǐn)?shù)據(jù),因此要納入數(shù)據(jù)源層的組織中。
數(shù)據(jù)集成層主要承擔(dān)數(shù)據(jù)ETL任務(wù),負(fù)責(zé)從數(shù)據(jù)源層讀取數(shù)據(jù),將數(shù)據(jù)本地化,并定期將相關(guān)數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)中。這個(gè)環(huán)節(jié)的主要工作是,基于用戶制定的規(guī)則,實(shí)現(xiàn)各類數(shù)據(jù)資源的數(shù)據(jù)識(shí)別、數(shù)據(jù)抽取、數(shù)據(jù)清洗、映射轉(zhuǎn)換、定時(shí)遷移及版本控制,從而達(dá)到整合來(lái)源于多個(gè)系統(tǒng)的業(yè)務(wù)數(shù)據(jù)的目的。其中涉及的幾個(gè)方面如下所述。
①數(shù)據(jù)識(shí)別是從數(shù)據(jù)源中獲取結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)的組織方式的過(guò)程。②數(shù)據(jù)抽取是從數(shù)據(jù)源中抽取數(shù)據(jù)的過(guò)程,具體來(lái)說(shuō),就是全局搜索數(shù)據(jù)源,挑選其中符合標(biāo)準(zhǔn)的數(shù)據(jù),并把這些數(shù)據(jù)傳送到目的文件中。③數(shù)據(jù)清洗需要針對(duì)“臟數(shù)據(jù)”的產(chǎn)生原因和存在形式進(jìn)行分析,利用現(xiàn)有技術(shù)手段和方法來(lái)清洗“臟數(shù)據(jù)”,從而將原本不符合要求的數(shù)據(jù)轉(zhuǎn)化為滿足數(shù)據(jù)質(zhì)量或應(yīng)用要求的數(shù)據(jù),達(dá)到提升數(shù)據(jù)質(zhì)量的目的。數(shù)據(jù)清洗是數(shù)據(jù)集成層必不可少的一個(gè)環(huán)節(jié),能夠防止無(wú)用數(shù)據(jù)占用存儲(chǔ)空間,進(jìn)而優(yōu)化數(shù)據(jù)架構(gòu)。數(shù)據(jù)清洗通常由格式內(nèi)容清洗、邏輯錯(cuò)誤清洗、非需求數(shù)據(jù)清洗及關(guān)聯(lián)性驗(yàn)證幾方面內(nèi)容組成。④映射轉(zhuǎn)換主要指從一個(gè)數(shù)據(jù)庫(kù)將字段匹配到另一個(gè)數(shù)據(jù)庫(kù),或?qū)?shù)據(jù)從源格式轉(zhuǎn)換為目標(biāo)格式的過(guò)程。映射轉(zhuǎn)換中的一個(gè)錯(cuò)誤可能引發(fā)連鎖反應(yīng),并且因重復(fù)的錯(cuò)誤和不準(zhǔn)確的分析造成企業(yè)損失。⑤定時(shí)遷移是指對(duì)系統(tǒng)之間批量移動(dòng)數(shù)據(jù)的行為制訂時(shí)間計(jì)劃,按照周期自動(dòng)執(zhí)行數(shù)據(jù)遷移任務(wù)。⑥版本控制是指對(duì)ETL 過(guò)程中各種元數(shù)據(jù)、配置文件、說(shuō)明文檔等文件變更的管理。ETL 環(huán)節(jié)的每一部分都要確定一個(gè)主版本號(hào),以便當(dāng)某天執(zhí)行的版本有嚴(yán)重錯(cuò)誤時(shí),可以快速恢復(fù)到之前的一個(gè)正確版本。
數(shù)據(jù)倉(cāng)庫(kù)的定義是,在企業(yè)管理和決策中面向主題的、集成的、與時(shí)間相關(guān)的、不可修改的數(shù)據(jù)集合。這里的數(shù)據(jù)倉(cāng)庫(kù)層主要用于將開(kāi)發(fā)生產(chǎn)指標(biāo)按照不同業(yè)務(wù)主題進(jìn)行劃分,通過(guò)維度與事實(shí)建模,快速搭建主題分析模型,從而建立起若干數(shù)據(jù)集市。具體地說(shuō),這個(gè)過(guò)程主要分為以下5 個(gè)步驟。
①明確數(shù)據(jù)分析主題。主題能夠體現(xiàn)出分析角度和統(tǒng)計(jì)數(shù)據(jù)之間的關(guān)系。它通常來(lái)源于相應(yīng)的數(shù)據(jù)集市,如生產(chǎn)動(dòng)態(tài)分析就是一個(gè)主題。②確定量度。根據(jù)分析主題選擇的統(tǒng)計(jì)指標(biāo)即量度,通常取數(shù)值型數(shù)據(jù)。③確定最小數(shù)據(jù)粒度。由于量度在不同維度下的聚合程度不同,因此需采用“最小粒度原則”,將量度的數(shù)據(jù)粒度設(shè)置到最小,以便向上聚合匯總。④確定維度。維度是指不同的分析角度?;诓煌木S度,可以考察各量度的匯總情況,也可以基于維度的組合進(jìn)行交叉分析。對(duì)開(kāi)發(fā)生產(chǎn)數(shù)據(jù)分析而言,常見(jiàn)的維度包括時(shí)間維度、井維度、單元維度、單位維度等。⑤創(chuàng)建事實(shí)表。將原始表與維度表相關(guān)聯(lián),原始表包含量度數(shù)據(jù),維度表包含維度代理鍵,根據(jù)主題建立事實(shí)表。事實(shí)表作為數(shù)據(jù)倉(cāng)庫(kù)的核心,需要精心維護(hù)。當(dāng)事實(shí)表的記錄數(shù)比較多時(shí),可以為其設(shè)置復(fù)合主鍵和索引,以實(shí)現(xiàn)優(yōu)化數(shù)據(jù)的完整性和基于數(shù)據(jù)倉(cāng)庫(kù)的查詢性。
事實(shí)表與維度表共同存放于數(shù)據(jù)倉(cāng)庫(kù)中,通過(guò)分析維度和指標(biāo)量度的多種組合,就能滿足用戶多層次、多角度的數(shù)據(jù)分析需求。
數(shù)據(jù)處理層主要承擔(dān)數(shù)據(jù)計(jì)算任務(wù),負(fù)責(zé)定時(shí)執(zhí)行數(shù)據(jù)加工處理任務(wù),完成相關(guān)數(shù)據(jù)處理和計(jì)算。如果前端提出連接數(shù)據(jù)倉(cāng)庫(kù)的要求,還可以在該層建立一些中間匯總表或物化視圖,以便查詢。經(jīng)過(guò)數(shù)據(jù)處理層的數(shù)據(jù)既能面向用戶、貼近業(yè)務(wù),也能快速響應(yīng)分析需求,直接用來(lái)進(jìn)行服務(wù)開(kāi)發(fā)。
基于數(shù)據(jù)處理層的輸出結(jié)果,數(shù)據(jù)應(yīng)用層可以形成數(shù)據(jù)服務(wù)和應(yīng)用服務(wù),從而實(shí)現(xiàn)數(shù)據(jù)的綜合應(yīng)用分析。數(shù)據(jù)應(yīng)用層直接面向用戶需求,可以結(jié)合業(yè)務(wù)數(shù)據(jù)多角度、個(gè)性化、精細(xì)化的分析特點(diǎn),自由選取分析維度和關(guān)注指標(biāo),迅速完成分主題圖表定制與數(shù)據(jù)分析;也可以利用商業(yè)智能(Business Intelligence,BI)自助分析工具來(lái)開(kāi)發(fā)支持業(yè)務(wù)和分析場(chǎng)景的應(yīng)用。常見(jiàn)應(yīng)用包括管理駕駛艙、多維分析、數(shù)據(jù)挖掘、圖表協(xié)同等。
對(duì)開(kāi)發(fā)生產(chǎn)數(shù)據(jù)集成架構(gòu)進(jìn)行管理,能夠提升企業(yè)數(shù)據(jù)的共享性、一致性及完整性,實(shí)現(xiàn)數(shù)據(jù)互融互通,滿足業(yè)務(wù)人員多角度、個(gè)性化的應(yīng)用需求,最終形成需求完善數(shù)據(jù)模型、模型引導(dǎo)數(shù)據(jù)集市、集市支撐業(yè)務(wù)分析、分析引導(dǎo)業(yè)務(wù)需求的良性循環(huán)。
①油田生產(chǎn)中的業(yè)務(wù)對(duì)象主體應(yīng)與其他系統(tǒng)的描述對(duì)等。例如,井號(hào)在任何一個(gè)系統(tǒng)中,無(wú)論以何種形式來(lái)描述,實(shí)際上指代的都是同一業(yè)務(wù)對(duì)象主體。因此,業(yè)務(wù)對(duì)象的主體數(shù)據(jù)和之間的關(guān)系描述不能重復(fù)建設(shè)。②必要的數(shù)據(jù)需在本系統(tǒng)內(nèi)進(jìn)行采集。通常情況下,避免數(shù)據(jù)重復(fù)建設(shè),不僅指現(xiàn)有數(shù)據(jù)資源不能重復(fù)錄入,還要考慮到今后其他系統(tǒng)擴(kuò)大應(yīng)用范圍后,數(shù)據(jù)建設(shè)內(nèi)容的完善性。一般來(lái)說(shuō),某項(xiàng)業(yè)務(wù)內(nèi)容的擴(kuò)展,需要盡量在原有系統(tǒng)中進(jìn)行,但由于架構(gòu)等方面的歷史問(wèn)題,必然會(huì)建設(shè)新的、更先進(jìn)的應(yīng)用系統(tǒng)替代舊的應(yīng)用模式。
針對(duì)部分已經(jīng)在現(xiàn)有系統(tǒng)中完成建設(shè)的數(shù)據(jù),需要充分協(xié)調(diào),避免數(shù)據(jù)形成“孤島”,實(shí)現(xiàn)信息共享。
環(huán)境數(shù)據(jù)變化的最理想應(yīng)對(duì)狀態(tài),就是在原應(yīng)用系統(tǒng)甚至原屬性界面上增加幾個(gè)字段,顯然這是過(guò)于理想化的情況。當(dāng)環(huán)境數(shù)據(jù)范圍或結(jié)構(gòu)發(fā)生變化,如原來(lái)需要錄入的數(shù)據(jù)在其他或本系統(tǒng)中已經(jīng)存在,或者原來(lái)引用于某系統(tǒng)的數(shù)據(jù)項(xiàng)在該系統(tǒng)中的命名或存儲(chǔ)表發(fā)生了變化,都可能涉及算法調(diào)整和引用關(guān)系的調(diào)整。
①充分把握業(yè)務(wù)對(duì)象主體。不同的應(yīng)用系統(tǒng)對(duì)業(yè)務(wù)對(duì)象主體的描述存在差別,這種差別只是形式上的不同,本質(zhì)上指的是同一個(gè)業(yè)務(wù)對(duì)象。對(duì)于地質(zhì)單元、組織機(jī)構(gòu)、井等主務(wù)對(duì)象主體的描述要科學(xué)準(zhǔn)確,與主流系統(tǒng)保持絕對(duì)一致。②準(zhǔn)備數(shù)據(jù)錄入界面。對(duì)于引用的屬性數(shù)據(jù),除建立可維護(hù)的數(shù)據(jù)交換接口程序,還要有相應(yīng)的錄入界面。在數(shù)據(jù)交換不能正常進(jìn)行時(shí),啟動(dòng)錄入界面進(jìn)行數(shù)據(jù)錄入,以備應(yīng)對(duì)。
隨著業(yè)務(wù)研究逐漸深入,數(shù)據(jù)模型體量增大,需要對(duì)其進(jìn)行定期維護(hù)和觀察,以便能與開(kāi)發(fā)生產(chǎn)數(shù)據(jù)集成架構(gòu)相匹配。因此,有必要按照下面的數(shù)據(jù)模型優(yōu)化流程進(jìn)行規(guī)范,以最大限度保證數(shù)據(jù)變化、版本更新不至于對(duì)系統(tǒng)的正常運(yùn)行造成不利影響。
3.4.1 梳理數(shù)據(jù)字典
開(kāi)發(fā)生產(chǎn)數(shù)據(jù)集成系統(tǒng)的數(shù)據(jù)字典設(shè)計(jì)一定要有前瞻性,要為系統(tǒng)的拓展留有余地。對(duì)于已上線的系統(tǒng),可以從4 個(gè)方面進(jìn)行優(yōu)化:①明確數(shù)據(jù)字典。信息系統(tǒng)在建設(shè)時(shí)應(yīng)該編寫(xiě)完整的數(shù)據(jù)字典,用以詳細(xì)說(shuō)明數(shù)據(jù)庫(kù)現(xiàn)有的用戶和對(duì)象。當(dāng)新版本發(fā)布時(shí),需要同步更新數(shù)據(jù)字典資料。②梳理無(wú)用索引、無(wú)用表及無(wú)用存儲(chǔ)過(guò)程。如有必要,可以對(duì)系統(tǒng)的索引使用情況進(jìn)行監(jiān)控。③清理無(wú)用對(duì)象。由系統(tǒng)維護(hù)人員確認(rèn)無(wú)用數(shù)據(jù)庫(kù)對(duì)象并清理,確保庫(kù)中不存在業(yè)務(wù)系統(tǒng)不需要的對(duì)象。另外,可以從版本發(fā)布定時(shí)審閱、數(shù)據(jù)字典發(fā)布版本定期更新、及時(shí)存檔系統(tǒng)數(shù)據(jù)字典等管理角度來(lái)保持系統(tǒng)的優(yōu)化效果和架構(gòu)的合理性。④梳理、整合系統(tǒng)常用業(yè)務(wù)數(shù)據(jù),使系統(tǒng)架構(gòu)清晰明了。
3.4.2 優(yōu)化物理模型
數(shù)據(jù)量激增、運(yùn)行系統(tǒng)的增刪改等操作都會(huì)導(dǎo)致數(shù)據(jù)的碎片化程度加劇,并產(chǎn)生大量的垃圾數(shù)據(jù),從而威脅開(kāi)發(fā)生產(chǎn)數(shù)據(jù)系統(tǒng)的正常運(yùn)行。建議采取以下措施應(yīng)對(duì):①歷史數(shù)據(jù)分離。通過(guò)合理規(guī)劃系統(tǒng)架構(gòu),建立一套歷史數(shù)據(jù)遷移機(jī)制,及時(shí)將歷史數(shù)據(jù)從運(yùn)行數(shù)據(jù)庫(kù)遷移到歷史數(shù)據(jù)庫(kù),使業(yè)務(wù)表中所存放的有效期內(nèi)的數(shù)據(jù)量不至于太龐大,不會(huì)隨時(shí)間推移而使系統(tǒng)性能大幅下降。②根據(jù)數(shù)據(jù)表的業(yè)務(wù)特性,按照時(shí)限要求,定期進(jìn)行數(shù)據(jù)清理。③表和索引的碎片化會(huì)占用大量存儲(chǔ)空間,增加I/O 訪問(wèn)量,影響系統(tǒng)性能。因此,企業(yè)需要定期進(jìn)行碎片整理,避免碎片化程度過(guò)高。
3.4.3 加強(qiáng)系統(tǒng)架構(gòu)變更管理
在版本發(fā)布前,企業(yè)需要確保數(shù)據(jù)結(jié)構(gòu)的變更不會(huì)破壞系統(tǒng)整體架構(gòu)。此外,為了確保系統(tǒng)的穩(wěn)定性,還要加強(qiáng)對(duì)新增或變更結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language,SQL)語(yǔ)句的審核,如有必要,應(yīng)對(duì)SQL 語(yǔ)句的執(zhí)行效率和上線之后的性能進(jìn)行跟蹤評(píng)估。
3.4.4 開(kāi)展日常性能監(jiān)控
一是通過(guò)自動(dòng)工作負(fù)載信息庫(kù)(Automatic Workload Repository,AWR)、自動(dòng)數(shù)據(jù)庫(kù)性能監(jiān)視器(Automatic Database Diagnostic Monitor AWR,ADDM)對(duì)數(shù)據(jù)庫(kù)進(jìn)行性能監(jiān)控,保證系統(tǒng)持續(xù)健康運(yùn)行。二是定期檢查消耗資源過(guò)多的SQL 語(yǔ)句并及時(shí)優(yōu)化。三是根據(jù)業(yè)務(wù)需求,定期分析特殊業(yè)務(wù)表的定時(shí)任務(wù)。數(shù)據(jù)庫(kù)中經(jīng)常使用定時(shí)任務(wù)來(lái)按周期自動(dòng)執(zhí)行存儲(chǔ)過(guò)程,當(dāng)涉及同一個(gè)表的多個(gè)定時(shí)任務(wù)同時(shí)執(zhí)行時(shí),有可能會(huì)造成死鎖。如何避免資源沖突,合理分配這些定時(shí)任務(wù),是優(yōu)化數(shù)據(jù)模型的一個(gè)方面。
探索開(kāi)發(fā)生產(chǎn)數(shù)據(jù)集成架構(gòu)設(shè)計(jì),構(gòu)建不同業(yè)務(wù)主題的數(shù)據(jù)集市,能夠逐步消滅“信息孤島”,實(shí)現(xiàn)海量數(shù)據(jù)的整合,為項(xiàng)目建設(shè)和智能分析提供更加可靠、快速、便捷的底層數(shù)據(jù)支持,確保數(shù)據(jù)應(yīng)用環(huán)境可知、可控、可用、可靠,用科學(xué)的方法加快企業(yè)邁向數(shù)字化和智能化的發(fā)展步伐。