張 蕓
(大港油田信息中心,天津 300280)
隨著大數(shù)據(jù)技術(shù)的發(fā)展,單一的數(shù)據(jù)形式不再滿足人們對(duì)數(shù)據(jù)利用的需要,多種多樣的數(shù)據(jù)以不同的形式存儲(chǔ)起來,有數(shù)據(jù)表形式的結(jié)構(gòu)化數(shù)據(jù),有圖像、視頻等非結(jié)構(gòu)化數(shù)據(jù),還有具有時(shí)間規(guī)律和標(biāo)簽的時(shí)序數(shù)據(jù)。多種多樣的數(shù)據(jù)形式,讓結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方式不再滿足人們的需求,數(shù)據(jù)湖的概念開始興起。
數(shù)據(jù)湖(Data Lake)這個(gè)術(shù)語由Pentaho 公司的創(chuàng)始人兼首席技術(shù)官詹姆斯·狄克遜(James Dixon)提出,他對(duì)數(shù)據(jù)湖的定義是,可以把所有的數(shù)據(jù)都放入數(shù)據(jù)湖中,應(yīng)用數(shù)據(jù)時(shí)定義它的數(shù)據(jù)結(jié)構(gòu)。也就是說,對(duì)于存儲(chǔ)的數(shù)據(jù),數(shù)據(jù)湖并不定義它的數(shù)據(jù)類型,這樣數(shù)據(jù)湖就可以存儲(chǔ)各種類型的數(shù)據(jù),并且通過統(tǒng)一的存儲(chǔ),讓不同的數(shù)據(jù)都有相同的存儲(chǔ)方式,而在數(shù)據(jù)應(yīng)用的時(shí)候定義其數(shù)據(jù)結(jié)構(gòu),讓應(yīng)用方便連接到數(shù)據(jù)湖上獲取數(shù)據(jù)。
目前,在通用行業(yè)中的數(shù)據(jù)湖建設(shè)多和大數(shù)據(jù)平臺(tái)Hadoop 結(jié)合,利用其開源、組件豐富、分布式存儲(chǔ)、并行處理等特點(diǎn),來實(shí)現(xiàn)數(shù)據(jù)湖定義中的存儲(chǔ)多種類型的數(shù)據(jù)方式。
目前市面上常見的數(shù)據(jù)湖產(chǎn)品有微軟的Azure Data Lake、IBM 的數(shù)據(jù)湖產(chǎn)品、靈雀云數(shù)據(jù)湖等相關(guān)產(chǎn)品。
面對(duì)新的數(shù)據(jù)湖技術(shù),結(jié)合石油勘探行業(yè)的數(shù)據(jù)特點(diǎn)和自身需求,石油勘探領(lǐng)域的數(shù)據(jù)湖建設(shè)正如火如荼展開。
2018 中國(guó)石油夢(mèng)想云一期建設(shè)已完成,在二期的規(guī)劃中將遵循“兩統(tǒng)一、一通用”原則,上游信息總體架構(gòu)由數(shù)據(jù)源、數(shù)據(jù)湖、基礎(chǔ)底臺(tái)與服務(wù)中臺(tái)、應(yīng)用前臺(tái)和門戶入口組成。油氣田負(fù)責(zé)數(shù)據(jù)源、特色應(yīng)用、擴(kuò)展應(yīng)用及相關(guān)服務(wù)中臺(tái)功能的建設(shè),其他內(nèi)容由總部統(tǒng)一建設(shè)。
2019 年中石油旗下各分公司開展區(qū)域湖建設(shè),一方面集成各油田所有類型數(shù)據(jù),為各油田提供數(shù)據(jù)湖服務(wù);另一方面和總湖互通,成為總湖的數(shù)據(jù)源頭。真正做到了集小水源匯聚成江海,數(shù)據(jù)湖建設(shè)遍地開花,成為中石油數(shù)據(jù)湖建設(shè)和應(yīng)用的數(shù)據(jù)基礎(chǔ)。
在數(shù)據(jù)湖建設(shè)之前,各油田均有各自的數(shù)據(jù)存儲(chǔ)和管理系統(tǒng),包括中石油總部統(tǒng)建和自建系統(tǒng),這些系統(tǒng)是各油田信息化的成果,是珍貴的數(shù)據(jù)資源和重要數(shù)據(jù)來源。而數(shù)據(jù)湖的結(jié)構(gòu)化數(shù)據(jù)的集成,則面臨如何將這些系統(tǒng)的主數(shù)據(jù)統(tǒng)一、屬性數(shù)據(jù)統(tǒng)一、多源數(shù)據(jù)擇取其一的問題。
主數(shù)據(jù)統(tǒng)一的問題主要集中在不同系統(tǒng)的主數(shù)據(jù)存在不一致的現(xiàn)象,以井號(hào)舉例,在A 系統(tǒng)和B 系統(tǒng)中都存在同樣的一口井,但這口井在各個(gè)系統(tǒng)中都有不同的井唯一編碼。在數(shù)據(jù)湖建設(shè)中,既需要通過系統(tǒng)A 中的該井編碼查詢系統(tǒng)A 中的業(yè)務(wù)數(shù)據(jù),也需要系統(tǒng)B 中的該井編碼查詢?cè)摼谙到y(tǒng)B中的業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)湖在集成這兩個(gè)系統(tǒng)的數(shù)據(jù)時(shí),需要統(tǒng)一它們的主數(shù)據(jù)編碼。
屬性數(shù)據(jù)是每個(gè)系統(tǒng)中的代碼表,比如套管名稱、巖石顏色、巖石名稱等,這些屬性都有固定的屬性值的枚舉范圍,但不同系統(tǒng)間的屬性范圍可能會(huì)有所不同,數(shù)據(jù)湖需要對(duì)這類數(shù)據(jù)進(jìn)行統(tǒng)一。
多源數(shù)據(jù)的問題,主要指的是同一個(gè)業(yè)務(wù)數(shù)據(jù)在不同的系統(tǒng)中重復(fù)采集。數(shù)據(jù)湖進(jìn)行數(shù)據(jù)集成的時(shí)候,不僅僅是將數(shù)據(jù)按照系統(tǒng)中固有的模型進(jìn)行簡(jiǎn)單的數(shù)據(jù)遷移,更是要考慮不同的系統(tǒng)中如何把它們科學(xué)地、合理地組織成一個(gè)整體,對(duì)多源的數(shù)據(jù)需要確定唯一來源,避免重復(fù)數(shù)據(jù)入庫。
除此之外,如何對(duì)現(xiàn)有數(shù)據(jù)尤其是現(xiàn)存系統(tǒng)中的歷史數(shù)據(jù)進(jìn)行入湖的質(zhì)量控制,讓優(yōu)質(zhì)數(shù)據(jù)入湖、存疑數(shù)據(jù)進(jìn)行確認(rèn)和整改,是數(shù)據(jù)湖數(shù)據(jù)資源建設(shè)過程中需要注意的重要問題之一。
石油勘探行業(yè)非結(jié)構(gòu)化數(shù)據(jù)(如文檔、視頻、地震資料等)主數(shù)據(jù)如何管理,非結(jié)構(gòu)化數(shù)據(jù)尤其是大塊數(shù)據(jù)在數(shù)據(jù)湖中如何保證讀取速度的問題。
時(shí)序數(shù)據(jù)多以時(shí)間為標(biāo)簽,而時(shí)序數(shù)據(jù)的數(shù)據(jù)庫大多是非關(guān)系型數(shù)據(jù)庫,時(shí)序數(shù)據(jù)如何和數(shù)據(jù)湖中的數(shù)據(jù)建立主數(shù)據(jù)的聯(lián)系,如何能利用時(shí)序數(shù)據(jù)自身的特點(diǎn)開展大數(shù)據(jù)應(yīng)用,都是需要解決的問題。
數(shù)據(jù)湖的數(shù)據(jù)應(yīng)用問題主要集中在如何低成本地切換已建應(yīng)用系統(tǒng)從數(shù)據(jù)庫連接到數(shù)據(jù)湖連接,保證已建系統(tǒng)更換數(shù)據(jù)源后的可用性。
各大油田存在著眾多的老的應(yīng)用系統(tǒng),采用直連或傳統(tǒng)WebService 的方式多頭連接不同數(shù)據(jù)庫或數(shù)據(jù)服務(wù),在統(tǒng)一切換成數(shù)據(jù)湖提供服務(wù)的方式之前,需要充分考慮到這些老數(shù)據(jù)應(yīng)用系統(tǒng)的數(shù)據(jù)源切換問題,盡可能降低數(shù)據(jù)源切換成本,切實(shí)保證數(shù)據(jù)應(yīng)用系統(tǒng)的正常服務(wù)。
在數(shù)據(jù)湖中必須集成主數(shù)據(jù)管理模塊或系統(tǒng),來管理整個(gè)數(shù)據(jù)湖的主數(shù)據(jù)。對(duì)于原有數(shù)據(jù)湖中的數(shù)據(jù),建立映射表,將數(shù)據(jù)源庫中的主數(shù)據(jù)和數(shù)據(jù)湖中的主數(shù)據(jù)建立映射關(guān)系,在數(shù)據(jù)湖中,同一主數(shù)據(jù)采用唯一的主數(shù)據(jù)ID,但通過映射表,可查到該主數(shù)據(jù)對(duì)應(yīng)到各系統(tǒng)中的主數(shù)據(jù)ID,來保證各系統(tǒng)主數(shù)據(jù)在數(shù)據(jù)湖中的統(tǒng)一。對(duì)于有矛盾或不能映射的主數(shù)據(jù),需要由業(yè)務(wù)人員進(jìn)行確認(rèn)后入庫,保證主數(shù)據(jù)的數(shù)據(jù)質(zhì)量。
除此之外,要杜絕除主數(shù)據(jù)管理模塊以外的系統(tǒng)對(duì)主數(shù)據(jù)進(jìn)行采集,新的主數(shù)據(jù)入庫需要通過主數(shù)據(jù)管理模塊的審核,由主數(shù)據(jù)模塊提供給需要主數(shù)據(jù)的業(yè)務(wù)數(shù)采集系統(tǒng),杜絕主數(shù)據(jù)多源頭采集的問題。
將數(shù)據(jù)同步到數(shù)據(jù)的過程中,要有相應(yīng)字段記錄該條數(shù)據(jù)的來源,在查出問題后可以及時(shí)、方便地進(jìn)行數(shù)據(jù)的來源回溯,對(duì)有問題的數(shù)據(jù)進(jìn)行源頭整改,保證數(shù)據(jù)湖中數(shù)據(jù)的準(zhǔn)確性。
在數(shù)據(jù)整改的過程中,要保存整改記錄,在一段時(shí)間整改數(shù)據(jù)應(yīng)用平穩(wěn)后,才可將整改記錄歸檔或刪除。
消除信息孤島是數(shù)據(jù)湖建設(shè)的目的之一。在各油田自建的系統(tǒng)中,因?yàn)樾畔⒐聧u而重復(fù)錄入數(shù)據(jù)的現(xiàn)象很多,數(shù)據(jù)湖的結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)模型,要充分考慮各系統(tǒng)的采集和存儲(chǔ)數(shù)據(jù)模型,以主數(shù)據(jù)為中心,梳理各系統(tǒng)的數(shù)據(jù)模型,建立集成的結(jié)構(gòu)化存儲(chǔ)模型,并通過對(duì)各系統(tǒng)數(shù)據(jù)內(nèi)容的整理,確定能涵蓋各系統(tǒng)同類數(shù)據(jù)內(nèi)容的屬性規(guī)范值進(jìn)行統(tǒng)一的存儲(chǔ)管理。以此來解決多源數(shù)據(jù)問題和屬性值統(tǒng)一的問題。
同時(shí),通過數(shù)據(jù)流向和數(shù)據(jù)血緣關(guān)系,建立數(shù)據(jù)地圖,將數(shù)據(jù)流經(jīng)的各個(gè)節(jié)點(diǎn)清晰明了地展示出來,尤其是各數(shù)據(jù)源系統(tǒng)到數(shù)據(jù)湖的映射關(guān)系,需要妥善保存,在映射關(guān)系修改之前,應(yīng)先修改映射關(guān)系文件,并及時(shí)修正數(shù)據(jù)地圖。
數(shù)據(jù)地圖的建立,可以有效地幫助用戶進(jìn)行數(shù)據(jù)血緣分析和影響性分析。數(shù)據(jù)血緣分析便于用戶追查數(shù)據(jù)錯(cuò)誤源頭;影響性分析有助于在數(shù)據(jù)發(fā)生變化時(shí),立刻確定該數(shù)據(jù)所影響的系統(tǒng)有哪些。
根據(jù)勘探開發(fā)業(yè)務(wù)邏輯,建立跨庫、跨專業(yè)的質(zhì)量規(guī)則庫,數(shù)據(jù)質(zhì)量不再局限于某一專業(yè)內(nèi),而是需要同一組數(shù)據(jù)同一階段產(chǎn)生的不同專業(yè)數(shù)據(jù)進(jìn)行互相印證,來實(shí)現(xiàn)跨專業(yè)的質(zhì)量規(guī)則檢查。
質(zhì)量規(guī)則庫僅存業(yè)務(wù)規(guī)則質(zhì)量,如 “井段頂深<井段底深”,而不是某個(gè)表的某個(gè)字段的規(guī)則,而是把質(zhì)量規(guī)則和表的字段進(jìn)行配置,用質(zhì)量規(guī)則約束字段的數(shù)據(jù)合理性,它應(yīng)該是靈活的、可配置的。
同時(shí),質(zhì)量規(guī)則庫是數(shù)據(jù)湖的一個(gè)模塊,它應(yīng)該是可定制的、可服務(wù)化的,不僅服務(wù)于數(shù)據(jù)湖的質(zhì)量檢查,更可以服務(wù)于其他系統(tǒng)的質(zhì)量檢查。
對(duì)數(shù)據(jù)湖中的數(shù)據(jù)應(yīng)建立反饋和定期考核的機(jī)制。數(shù)據(jù)問題僅靠質(zhì)量規(guī)則庫還不夠,還需要用戶在應(yīng)用數(shù)據(jù)湖中數(shù)據(jù)時(shí)發(fā)現(xiàn)問題并及時(shí)反饋,從而通過應(yīng)用來反查數(shù)據(jù)湖中的問題。
除此之外,應(yīng)當(dāng)建立數(shù)據(jù)湖數(shù)據(jù)質(zhì)量的定期考核機(jī)制,結(jié)合數(shù)據(jù)質(zhì)量規(guī)則庫掃描和用戶反饋,來建立數(shù)據(jù)湖中數(shù)據(jù)質(zhì)量的良性循環(huán)。
非結(jié)構(gòu)化數(shù)據(jù)主數(shù)據(jù)可以利用數(shù)據(jù)湖中的主數(shù)據(jù)模塊進(jìn)行管理,通過訪問地址建立映射表,存儲(chǔ)在數(shù)據(jù)湖的結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)部分,同時(shí),為非結(jié)構(gòu)化數(shù)據(jù)的屬性信息建立非結(jié)構(gòu)化數(shù)據(jù)的信息庫,該信息庫作為結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)湖的結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)部分,利用結(jié)構(gòu)化數(shù)據(jù)擅長(zhǎng)的信息統(tǒng)計(jì)的功能特點(diǎn),便于非結(jié)構(gòu)化數(shù)據(jù)的查找和定位。
非結(jié)構(gòu)化數(shù)據(jù)可采用異地存儲(chǔ)、本地備份的方式,對(duì)于經(jīng)常訪問的非結(jié)構(gòu)化數(shù)據(jù)在本地進(jìn)行緩存,來提高常用非結(jié)構(gòu)化數(shù)據(jù)的讀取速度和效率,對(duì)于不常用的非結(jié)構(gòu)化數(shù)據(jù)可采用僅存其基本信息表,數(shù)據(jù)體可以歸檔模式存放在其他存儲(chǔ)設(shè)備上。異地存儲(chǔ)和備份的策略,可以提高非結(jié)構(gòu)化數(shù)據(jù)的容災(zāi)能力。
時(shí)序數(shù)據(jù)本身大多存儲(chǔ)在NoSQL 數(shù)據(jù)庫中,這種類型數(shù)據(jù)庫本身并不擅長(zhǎng)關(guān)系管理,需要通過主數(shù)據(jù)管理模塊的關(guān)系型數(shù)據(jù)庫對(duì)時(shí)序數(shù)據(jù)庫的主數(shù)據(jù)關(guān)系進(jìn)行關(guān)聯(lián)和管理。和非結(jié)構(gòu)化數(shù)據(jù)類似,時(shí)序數(shù)據(jù)的主數(shù)據(jù)信息表可以作為結(jié)構(gòu)化數(shù)據(jù)存在數(shù)據(jù)湖的結(jié)構(gòu)化數(shù)據(jù)庫中。
時(shí)序數(shù)據(jù)以時(shí)間為標(biāo)簽,而數(shù)據(jù)湖多以Hadoop 為架構(gòu)。可以將時(shí)序數(shù)據(jù)的時(shí)間字段設(shè)置為Key 值,將時(shí)序數(shù)據(jù)放到HBase 上進(jìn)行管理,Hadoop 對(duì)HBase 數(shù)據(jù)庫的查詢和定位效率較高,可以根據(jù)時(shí)間快速查找和定位時(shí)序數(shù)據(jù)的位置。同時(shí),基于Hadoop 的開源數(shù)據(jù)挖掘組件,可以連接HBase 對(duì)其上面的數(shù)據(jù)進(jìn)行應(yīng)用和數(shù)據(jù)挖掘。
在數(shù)據(jù)湖的應(yīng)用層需要建立和數(shù)據(jù)源庫的表同構(gòu)的數(shù)據(jù)應(yīng)用視圖,同時(shí)根據(jù)原庫的數(shù)據(jù)應(yīng)用方式和應(yīng)用模式,建立鏡像的數(shù)據(jù)湖服務(wù)模式,包括同樣的服務(wù)名稱、同樣的訪問視圖名稱,減少新老系統(tǒng)切換的復(fù)雜度。
數(shù)據(jù)湖的建設(shè)是現(xiàn)今多元化數(shù)據(jù)時(shí)代的必然趨勢(shì),只有將不同結(jié)構(gòu)、不同來源、不同系統(tǒng)、不同形式的數(shù)據(jù)有機(jī)、統(tǒng)一地結(jié)合起來,數(shù)據(jù)湖結(jié)合數(shù)據(jù)治理思想,才能為大數(shù)據(jù)應(yīng)用打造良好的數(shù)據(jù)環(huán)境。數(shù)據(jù)湖的建設(shè),是信息技術(shù)和計(jì)算機(jī)科學(xué)不斷發(fā)展和更迭進(jìn)程中必不可少的一環(huán),它一方面需要兼顧已有系統(tǒng)的正常運(yùn)行,另一方面又要立足于未來,將數(shù)據(jù)應(yīng)用到新的技術(shù)中去,用新的技術(shù)和系統(tǒng)來保障企業(yè)的數(shù)據(jù)建設(shè)從信息化時(shí)代平穩(wěn)地邁向大數(shù)據(jù)時(shí)代,在這個(gè)過程中,要時(shí)刻重視數(shù)據(jù)治理的問題,這樣才能保證數(shù)據(jù)湖的數(shù)據(jù)基石健康、穩(wěn)固。