劉致彤,向 輝,丁克松,李 壯
(北京洛斯達(dá)科技發(fā)展有限公司,北京 100011)
大量的信息數(shù)據(jù)是工程項目的基礎(chǔ),也是目前工程項目管理難以突破的瓶頸。由于各個單位信息系統(tǒng)相互獨(dú)立,種類繁多而且沒有統(tǒng)一化、系統(tǒng)化、規(guī)范化的數(shù)據(jù)管理,導(dǎo)致數(shù)據(jù)往往會被孤立,隨著管理的項目越來越多,系統(tǒng)中數(shù)據(jù)量日益增長,數(shù)據(jù)的統(tǒng)一管理、交互工作也顯得格外重要。
以往的數(shù)據(jù)對接中只是針對某個項目進(jìn)行,依然沒有解決數(shù)據(jù)孤島的問題。而作為公司總部或者集團(tuán)型企業(yè)總部,往往需要對各級單位的工程項目數(shù)據(jù)進(jìn)行整合、匯總,形成以總部為核心的工程項目數(shù)據(jù)庫或數(shù)據(jù)湖,為總部統(tǒng)籌決策、資源調(diào)配以及分析評價各方面服務(wù)。因此如何在現(xiàn)有資源條件下,更好地實現(xiàn)各單位的數(shù)據(jù)對接,以什么方式進(jìn)行整合,是目前面臨的問題。
隨著中國能源建設(shè)集團(tuán)有限公司(以下簡稱“集團(tuán)”)信息化發(fā)展,各信息系統(tǒng)產(chǎn)生大量數(shù)據(jù)沉淀,存在數(shù)據(jù)共享效率不高等問題,使過去為集團(tuán)帶來工作效率提升的、孤島式的業(yè)務(wù)系統(tǒng)成為集團(tuán)變革轉(zhuǎn)型的阻力。數(shù)據(jù)交互成為打通各個業(yè)務(wù)系統(tǒng)、實現(xiàn)單位業(yè)務(wù)快速重組的內(nèi)在需求,也成為集團(tuán)制定數(shù)據(jù)政策、保障數(shù)據(jù)安全、促進(jìn)數(shù)據(jù)在組織內(nèi)無障礙共享、推進(jìn)數(shù)據(jù)戰(zhàn)略順利實施的重要保障。
面對日益增加的數(shù)據(jù)量以及復(fù)雜的異構(gòu)環(huán)境,如何更快、更方便地獲取原有沉積在各種異構(gòu)應(yīng)用系統(tǒng)孤島(silos)中的數(shù)據(jù),以及通過梳理、分類、管理、整合成為有價值的數(shù)據(jù)資源,更有效地應(yīng)用于實時分析報告、商業(yè)智能、大數(shù)據(jù)、智能AI 應(yīng)用以及對外共享等,企業(yè)需要方便易用的、可自主管理和可自我服務(wù)的、可統(tǒng)一管理的、可擴(kuò)展和可靠的、可快速部署于本地或云中的企業(yè)級數(shù)據(jù)復(fù)制同步和交互整合產(chǎn)品解決方案, 降低數(shù)據(jù)資源開發(fā)和使用的成本,避免陳舊傳統(tǒng)技術(shù)產(chǎn)品解決方案所帶來的困擾和問題。對于陳舊的基于ETL 的解決方案,我們常聽到諸如“黑箱技術(shù)、易用性差、效率低、實時性差、本身又造成孤島、缺乏集中統(tǒng)一管理”等許多來自用戶的差評。
根據(jù)IDC 研究報告的統(tǒng)計,客戶對于傳統(tǒng)的數(shù)據(jù)交互、復(fù)制、ETL 解決方案在性能方面的滿意度極低,滿意的用戶只占17%左右?;?0 多年前陳舊技術(shù)的ETL 解決方案面臨著許多挑戰(zhàn),主要有以下幾個方面:
1)日益增加的異構(gòu)數(shù)據(jù)源環(huán)境,包括各種關(guān)系型數(shù)據(jù)庫、結(jié)構(gòu)化及非結(jié)構(gòu)化數(shù)據(jù),以及NoSql、NewSql 數(shù)據(jù)庫和大數(shù)據(jù)平臺的應(yīng)用環(huán)境。
2)在企業(yè)私有云和混合云的計算環(huán)境下,傳統(tǒng)產(chǎn)品的C/S 架構(gòu)難以滿足構(gòu)建云與邊的數(shù)據(jù)交互,以及在云中心的部署并支持遠(yuǎn)程多租戶共享使用方式的要求。在一個現(xiàn)有的企業(yè)環(huán)境中,往往不同項目要購買多套ETL 產(chǎn)品,各自成為孤島,難以實現(xiàn)元數(shù)據(jù)集中的統(tǒng)一管理、共享和任務(wù)的監(jiān)控及運(yùn)維,造成元數(shù)據(jù)目錄管理與數(shù)據(jù)共享交互割裂的“二張皮”。
3)需要編寫二次開發(fā)腳本語言或所謂的“模板”組件,產(chǎn)品的使用對象主要是面向技術(shù)開發(fā)者的,易用性差、時間周期長、成本高,難以滿足業(yè)務(wù)部門對數(shù)據(jù)的快速需求;另一方面,越來越多的企業(yè)數(shù)據(jù)分析人員希望產(chǎn)品提供簡單易用的功能,并實現(xiàn)“自我服務(wù)”模式和數(shù)據(jù)“端到端”的可視化管理。
4)傳統(tǒng)的ETL 解決方案產(chǎn)品,往往采用批處理的數(shù)據(jù)釆集/抽取方式,實時性差,交互效率低。
因此如何高效、安全、簡單易用、滿足多方需求是目前我們首先要考慮的。
集團(tuán)前期依托計劃統(tǒng)計系統(tǒng),初步實現(xiàn)了各類數(shù)據(jù)收集工作。在“十三五”期間,通過建設(shè)集團(tuán)經(jīng)營業(yè)務(wù)數(shù)據(jù)展示平臺,初步實現(xiàn)了集團(tuán)生產(chǎn)經(jīng)營類數(shù)據(jù)的多維度展示與穿透查詢分析;依托現(xiàn)有(或在建)的計劃統(tǒng)計系統(tǒng)、國際業(yè)務(wù)系統(tǒng)、財務(wù)系統(tǒng)、電子采購平臺、工程項目平臺等業(yè)務(wù)系統(tǒng),初步建立了數(shù)據(jù)指標(biāo)體系;使用數(shù)據(jù)交換平臺開展了各單位工程項目類數(shù)據(jù)與總部系統(tǒng)的對接;依托財務(wù)信息化建設(shè)開展了財務(wù)及其他業(yè)務(wù)主數(shù)據(jù)梳理工作,并進(jìn)一步開展主數(shù)據(jù)管理平臺建設(shè)工作。
在接下來的數(shù)據(jù)交互工作中,需要進(jìn)一步加強(qiáng)數(shù)據(jù)源頭管理,確定數(shù)據(jù)指標(biāo)和標(biāo)準(zhǔn),推動管理數(shù)據(jù)互聯(lián)互通,實現(xiàn)實時動態(tài)采集;逐步拓展各類管理系統(tǒng)對各管理層級、業(yè)務(wù)領(lǐng)域、境內(nèi)外的覆蓋范圍和應(yīng)用深度,不斷提高企業(yè)管理效率和水平。
一般來說,數(shù)據(jù)交互工作包含5 大關(guān)鍵要素:組織結(jié)構(gòu)、崗位職責(zé)、數(shù)據(jù)交互標(biāo)準(zhǔn)、數(shù)據(jù)控制和使用、數(shù)據(jù)管理工具。根據(jù)信息化發(fā)展的現(xiàn)狀,結(jié)合數(shù)據(jù)交互的要求,集團(tuán)現(xiàn)階段數(shù)據(jù)交互方面仍存在以下的不足:
1)數(shù)據(jù)多頭管理:缺少專門對數(shù)據(jù)進(jìn)行管理、監(jiān)督和控制的組織。信息系統(tǒng)的建設(shè)和管理職能分散在各個業(yè)務(wù)部門,數(shù)據(jù)管理的職責(zé)分散,權(quán)責(zé)不明確。組織機(jī)構(gòu)各部門關(guān)注數(shù)據(jù)的角度不同,缺少一個組織從全局的視角對數(shù)據(jù)進(jìn)行管理,導(dǎo)致無法建立統(tǒng)一的數(shù)據(jù)管理規(guī)程、標(biāo)準(zhǔn)等,相應(yīng)的數(shù)據(jù)管理監(jiān)督措施無法得到落實。組織機(jī)構(gòu)的數(shù)據(jù)考核體系也尚未建立,無法保障數(shù)據(jù)管理標(biāo)準(zhǔn)和規(guī)程的有效執(zhí)行。
2)多系統(tǒng)獨(dú)立建設(shè):沒有規(guī)范統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn)和數(shù)據(jù)模型。各業(yè)務(wù)部門為應(yīng)對迅速變化的市場和管理需求,逐步建立了各自的信息系統(tǒng),各部門站在各自的立場生產(chǎn)、使用和管理數(shù)據(jù),數(shù)據(jù)分散在不同的部門和信息系統(tǒng)中,缺乏統(tǒng)一的數(shù)據(jù)規(guī)劃、可信的數(shù)據(jù)來源和數(shù)據(jù)標(biāo)準(zhǔn),導(dǎo)致數(shù)據(jù)不規(guī)范、不一致、冗余、無法共享等問題出現(xiàn),組織機(jī)構(gòu)各部門對數(shù)據(jù)的理解難以應(yīng)用一致的語言來描述,導(dǎo)致理解不一致。
3)尚未完成統(tǒng)一的主數(shù)據(jù)管理:核心系統(tǒng)間的主要信息并不是存儲在一個獨(dú)立的系統(tǒng)中,或者不是通過統(tǒng)一的業(yè)務(wù)管理流程在系統(tǒng)間維護(hù)。缺乏對主數(shù)據(jù)的管理,就無法保障主數(shù)據(jù)在整個業(yè)務(wù)范圍內(nèi)保持一致、完整和可控,導(dǎo)致業(yè)務(wù)數(shù)據(jù)的正確性無法得到保障。
4)缺乏統(tǒng)一的集團(tuán)型數(shù)據(jù)質(zhì)量管理流程體系:當(dāng)前現(xiàn)狀是數(shù)據(jù)質(zhì)量管理主要由各組織部門分頭進(jìn)行;跨部門的數(shù)據(jù)質(zhì)量溝通機(jī)制不完善;缺乏清晰的跨部門的數(shù)據(jù)質(zhì)量管控規(guī)范與標(biāo)準(zhǔn),數(shù)據(jù)分析隨機(jī)性強(qiáng),存在業(yè)務(wù)需求不清晰的現(xiàn)象,影響數(shù)據(jù)質(zhì)量;數(shù)據(jù)的自動采集尚未全面實行,處理過程存在人為干預(yù)問題,很多部門存在數(shù)據(jù)質(zhì)量管理人員不足、知識與經(jīng)驗不夠、監(jiān)管方式不全面等問題;缺乏完善的數(shù)據(jù)質(zhì)量管控流程和系統(tǒng)支撐能力。
5)數(shù)據(jù)全生命周期管理不完善:目前集團(tuán)數(shù)據(jù)的產(chǎn)生、使用、維護(hù)、備份到銷毀的生命周期管理還不完善,不能確定過期和無效數(shù)據(jù)的識別條件,并且非結(jié)構(gòu)化數(shù)據(jù)未納入數(shù)據(jù)生命周期的管理范疇;對于數(shù)據(jù)的全生命周期狀態(tài)的管理無信息化工具支撐。
平臺建設(shè)目標(biāo)是滿足工程項目管理系統(tǒng)的應(yīng)用需要,各個異構(gòu)信息系統(tǒng)通過ETL 工具向平臺提交標(biāo)準(zhǔn)化格式數(shù)據(jù),實現(xiàn)工程項目管理系統(tǒng)的統(tǒng)計分析與應(yīng)用。
本文研究建設(shè)的數(shù)據(jù)共享交互平臺是一款基于B/S 架構(gòu)的、高性能的、簡單易用的、支撐跨部門數(shù)據(jù)共享交互應(yīng)用的多部門服務(wù)和管理平臺,支持結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的接入、傳輸交互、整合,具有可擴(kuò)展性和支撐各種共享交互業(yè)務(wù)模式的能力,能快速有效地滿足項目的核心業(yè)務(wù)需求,并在最短時間內(nèi)上線運(yùn)行而產(chǎn)生社會和經(jīng)濟(jì)效益。
平臺的建設(shè)目標(biāo)及創(chuàng)新主要體現(xiàn)在以下幾個方面:
1)高效。底層采用最新的分布式服務(wù)容器先進(jìn)技術(shù)及流處理技術(shù),有效提高交互效率;實現(xiàn)任意部門節(jié)點(diǎn)間應(yīng)用系統(tǒng)和數(shù)據(jù)的即時聯(lián)通,支持?jǐn)?shù)據(jù)端到端實時(秒級)可達(dá)和可視化監(jiān)控管理。
2)安全。支持安全的數(shù)據(jù)交互、可靠傳輸;實現(xiàn)跨網(wǎng)絡(luò)節(jié)點(diǎn)之間的多層次安全數(shù)據(jù)交互機(jī)制,保障數(shù)據(jù)訪問安全。
3)簡單易用。面向參與數(shù)據(jù)交互共享業(yè)務(wù)的平臺中心和各業(yè)務(wù)部門,提供直觀易用、B/S圖形化的用戶設(shè)計、任務(wù)配置和運(yùn)行監(jiān)控管理界面,通過頁面“點(diǎn)擊式”的數(shù)據(jù)源連接和交互任務(wù)配置,支持部門應(yīng)用系統(tǒng)快速地接入平臺和實現(xiàn)接入數(shù)據(jù)的有效管理。
4)滿足多方管理需求。支持多種跨部門的共享交互應(yīng)用服務(wù)模式;為交互各方提供接入、運(yùn)行、運(yùn)維等各個階段的管理工作平臺,滿足數(shù)據(jù)交互各方的交互業(yè)務(wù)和運(yùn)行監(jiān)控的管理需求。
在課題研究過程中,首先研究ETL 工具等最近技術(shù),根據(jù)研究結(jié)果,選取合適的技術(shù)路線并進(jìn)行開發(fā)測試。同時,結(jié)合工程項目存儲與更新特點(diǎn),在工程項目指標(biāo)與工程項目數(shù)據(jù)成果基礎(chǔ)上,構(gòu)建工程項目數(shù)據(jù)自動化采集應(yīng)用框架,框架包括自動化采集所需的方法、技術(shù)路線、應(yīng)用工具和必要的應(yīng)用試驗。在數(shù)據(jù)交互工具研究過程中,主要對開源的ETL 工具進(jìn)行了研究。
ETL 是數(shù)據(jù)交互管理中非常重要的一環(huán),是承前啟后的必要的一步。ETL 過程中的主要環(huán)節(jié)就是數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換和加工、數(shù)據(jù)裝載。為了實現(xiàn)這些功能,各個ETL 工具一般會進(jìn)行一些功能上的擴(kuò)充,例如工作流、調(diào)度引擎、規(guī)則引擎、腳本支持、統(tǒng)計信息等。目前主流ETL 工具有Informatica、Datastage、ODI,OWB、Beeload、Kettle、久其ETL 等。這些產(chǎn)品主要特點(diǎn):均適用于將多個應(yīng)用系統(tǒng)的大批量的、異構(gòu)的數(shù)據(jù)進(jìn)行整合,有強(qiáng)大的數(shù)據(jù)轉(zhuǎn)換功能;高效適配多種類型的異構(gòu)數(shù)據(jù)庫、文件和應(yīng)用系統(tǒng); 快速構(gòu)建復(fù)雜數(shù)據(jù)集中應(yīng)用、無需編碼。
在研究過程中,對以下兩種ETL 工具進(jìn)行了研究與對比。
1)簡介
Kettle 以元數(shù)據(jù)驅(qū)動的方式提供強(qiáng)大的抽取、轉(zhuǎn)換和加載能力,本身提供了強(qiáng)大的圖形界面設(shè)計器,可以大大縮短數(shù)據(jù)抽取項目的開發(fā)周期,并且容易維護(hù),Kettle 設(shè)計界面友好,提供了工作設(shè)計模式,能滿足各種場景的實現(xiàn)。
2)特點(diǎn)
Kettle 是一款國外開源的ETL 工具,純java 編寫,可以在Window、Linux、Unix 上運(yùn)行,綠色無需安裝,數(shù)據(jù)抽取高效穩(wěn)定。
Kettle 這個ETL 工具集,它允許你管理來自不同數(shù)據(jù)庫的數(shù)據(jù),通過提供一個圖形化的用戶環(huán)境來描述你想做什么,而不是你想怎么做。
Kettle 中有兩種腳本文件,Transformation和Job,Transformation 完成針對數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,Job 則完成整個工作流的控制。
3)總體架構(gòu)
總體架構(gòu)分為數(shù)據(jù)源層、核心層和UI 層。
操作系統(tǒng):Windows; 數(shù)據(jù)庫:db2; 開發(fā)語言:java。
5)優(yōu)缺點(diǎn)
優(yōu)點(diǎn)為支持多種數(shù)據(jù)源; 核心組件豐富;支持多任務(wù)并發(fā),支持大數(shù)據(jù)的抽取轉(zhuǎn)換處理,執(zhí)行效率高; 成熟的異常處理流程; 可與java很好地結(jié)合。
缺點(diǎn)為Kettle 在異構(gòu)數(shù)據(jù)庫的處理能力比同構(gòu)數(shù)據(jù)庫的處理能力較慢,特別是跨服務(wù)之間就更慢了。
1)簡介
Informatica PowerCenter 使用戶能夠方便地從異構(gòu)的已有系統(tǒng)和數(shù)據(jù)源中抽取數(shù)據(jù),用來建立、部署、管理企業(yè)的數(shù)據(jù)倉庫,從而幫助企業(yè)做出快速、正確的決策。此產(chǎn)品為滿足企業(yè)級要求而設(shè)計,可以提供企業(yè)部門的數(shù)據(jù)和電子商務(wù)數(shù)據(jù)源之間的集成,如XML、網(wǎng)站日志、關(guān)系型數(shù)據(jù)、主機(jī)和遺留系統(tǒng)等數(shù)據(jù)源。此平臺性能可以滿足企業(yè)分析最嚴(yán)格的要求。
2)特點(diǎn)
① 功能強(qiáng)大的數(shù)據(jù)整合引擎
大伙兒都同意交物業(yè)費(fèi),就是阿強(qiáng)不同意。阿強(qiáng)覺得自己家安上了高檔防盜門,不要說小偷,就是一只蒼蠅也難以飛進(jìn)。由于他不肯出錢,請物業(yè)公司的事只得擱淺。
Informatica PowerCenter 擁有一個功能強(qiáng)大的數(shù)據(jù)整合引擎,所有的數(shù)據(jù)抽取轉(zhuǎn)換、整合、裝載的功能都是在內(nèi)存中執(zhí)行的,不需要開發(fā)者手工編寫這些過程的代碼。Informatica PowerCenter 數(shù)據(jù)整合引擎是元數(shù)據(jù)驅(qū)動的,通過知識庫和引擎的配對管理,可以保證數(shù)據(jù)整合過程能夠最優(yōu)化執(zhí)行,并且使數(shù)據(jù)倉庫管理員比較容易對系統(tǒng)進(jìn)行分析管理,從而適應(yīng)日益增加的數(shù)據(jù)裝載和用戶群。
② 積極的元數(shù)據(jù)管理
Informatica PowerCenter 充分利用元數(shù)據(jù)來驅(qū)動數(shù)據(jù)整合過程。它提供了一個單一的元數(shù)據(jù)驅(qū)動的知識庫,和數(shù)據(jù)整合引擎協(xié)同運(yùn)作,并且可使關(guān)鍵的整合過程能被簡單定義、修改、重用,從而提高開發(fā)生產(chǎn)力并縮短部署周期。活動元數(shù)據(jù)合并嚴(yán)格的文件,提供維護(hù)體系,允許沖突性分析,可以廣泛跟其他企業(yè)應(yīng)用程序以及系統(tǒng)整合。
③ 支持多數(shù)據(jù)源
通過輔助產(chǎn)品Informatica PowerConnect,Informatica PowerCenter 提供了對特殊數(shù)據(jù)源和格式的支持,包括SAP、Siebel、PeopleSoft、AS400 等。對于e-business 格式的數(shù)據(jù),可以直接通過分析DTD 或XML 格式數(shù)據(jù)文件來實現(xiàn)。
④ 高性能的運(yùn)行功能
將設(shè)計和運(yùn)行環(huán)境的性能特性分離,提供了較好的靈活性,不需要重新編碼,吞吐量可以通過服務(wù)器、并行引擎管理、最優(yōu)化CPU 資源等方式,盡快處理任務(wù)。數(shù)據(jù)高效并行功能使用戶具有自定義分區(qū)功能,提供了最優(yōu)化的數(shù)據(jù)并行處理。Informatica PowerCenter 提供了一個非編碼的圖形化設(shè)計工具方便用戶的調(diào)試使用。
⑤ 分布式體系結(jié)構(gòu)
作為企業(yè)級核心數(shù)據(jù)整合引擎,Informatica PowerCenter 可以單獨(dú)部署,也可以在分布式體系結(jié)構(gòu)中部署。如果在分布式體系結(jié)構(gòu)中部署,Informatica PowerCenter 要協(xié)調(diào)和管理多個基于主題的數(shù)據(jù)集市,而這些數(shù)據(jù)集市是在局域網(wǎng)或廣域網(wǎng)內(nèi)由Informatica PowerMart 或Informatica PowerCenter 引擎執(zhí)行的。
⑥ 安全的數(shù)據(jù)整合
PowerCenter for Remote Data 是Informatica PowerCenter 一個分布式數(shù)據(jù)整合選項,提供了高性能、安全的、投資回報率高的方法,使用戶可以跨廣域網(wǎng)與合作伙伴、供應(yīng)商以及其他遠(yuǎn)程數(shù)據(jù)源交換信息。
3)總體架構(gòu)圖
Informatica PowerCenter 總體架構(gòu)圖如圖1所示。
圖 1 Informatica PowerCenter總體框架圖
4)應(yīng)用環(huán)境
數(shù)據(jù)庫:oracle; 操作系統(tǒng):Linux。
5)優(yōu)缺點(diǎn)
優(yōu)點(diǎn):在正確的時間提供正確的信息,滿足業(yè)務(wù)部門的分析和運(yùn)營數(shù)據(jù)集成需求,滿足在全企業(yè)范圍實現(xiàn)任務(wù)關(guān)鍵型部署的安全性和可擴(kuò)展性要求,通過提高跨團(tuán)隊的工作效率和跨職能合作,降低IT 項目的開發(fā)和部署成本。
缺點(diǎn):改動比較費(fèi)時,特別是批量式的修改。
1)操作:Informatica 有四個開發(fā)管理組件,相對繁瑣。 如果對Job 作了改變之后,想要撤銷,返回到改變前是不可能的。相比Kettle 在測試調(diào)試的時候不太方便。
2)部署:Kettle 只需要JVM 環(huán)境,Informatica需要服務(wù)器和客戶端安裝。
3)數(shù)據(jù)處理的速度:大數(shù)據(jù)量下Informatica的處理速度是比較快的,比較穩(wěn)定; Kettle 的處理速度相比之下稍慢。
4)服務(wù):Informatica 有很好的商業(yè)化的技術(shù)支持,而Kettle 則沒有。商業(yè)軟件的售后服務(wù)上會比免費(fèi)的開源軟件好很多。
5)風(fēng)險: Informatica 屬于商業(yè)軟件,而Kettle 是開源軟件,所以風(fēng)險是與成本成反比。
6)擴(kuò)展:Kettle 的擴(kuò)展性好,因為是開源代碼,可以自己開發(fā)拓展它的功能,而Informatica 由于是商業(yè)軟件,基本上沒有。
7)Job 的監(jiān)控:兩者都有監(jiān)控和日志工具。
8)網(wǎng)上的技術(shù)文檔:相對來說,Informatica在遇到問題去網(wǎng)上找到解決方法的概率比較低,Kettle 則比較多。
本次設(shè)計主要是基于Web、流處理技術(shù)和微服務(wù)容器技術(shù)的數(shù)據(jù)交換軟件。提供元數(shù)據(jù)目錄、異構(gòu)數(shù)據(jù)庫復(fù)制、實時同步、交換整合、ELT/ETL 及跨網(wǎng)絡(luò)遠(yuǎn)程通道傳輸服務(wù)等集成一體化的功能,可用于數(shù)據(jù)復(fù)制、數(shù)據(jù)同步、數(shù)據(jù)備份/恢復(fù)、數(shù)據(jù)遷移、數(shù)據(jù)歸檔卸載、ELT/ETL、數(shù)據(jù)匯聚整合、讀寫分離、數(shù)據(jù)分發(fā)、數(shù)據(jù)服務(wù)、大數(shù)據(jù)集成(MPP、Hadoop、Kafka)等應(yīng)用場景,滿足各種應(yīng)用場景的統(tǒng)一使用和監(jiān)控管理需求。
對比發(fā)現(xiàn)Kettle 優(yōu)勢在于可擴(kuò)展性,可以很好地對它進(jìn)行二次開發(fā),而且不涉及商業(yè)化產(chǎn)品,避免后期使用過程中被供應(yīng)商“卡脖子”的問題。集團(tuán)選擇開源的ETL 工具。Kettle 具有基于Java 的圖形化界面,支持拖拽等方式的可視化設(shè)計,能方便使用者便捷地對從業(yè)務(wù)系統(tǒng)抽取到的數(shù)據(jù)進(jìn)行傳輸、清洗和加載等。同時,ETL 屏蔽了應(yīng)用系統(tǒng)中較為復(fù)雜的業(yè)務(wù)邏輯,為基于數(shù)據(jù)倉庫的分析和應(yīng)用提供了統(tǒng)一的數(shù)據(jù)接口。利用數(shù)據(jù)共享與交換平臺,ETL 在不同的業(yè)務(wù)系統(tǒng)之間搭建了一座橋梁,實現(xiàn)數(shù)據(jù)、業(yè)務(wù)的互聯(lián)互通。
平臺的工作流程設(shè)計如圖2 所示。
圖 2 平臺工作流程設(shè)計圖
從圖2 可以看出搭建的集團(tuán)一級平臺可以直接連接中心管理的應(yīng)用系統(tǒng),以及無縫銜接搭建的下級企業(yè)(二級)平臺(通過遠(yuǎn)程數(shù)據(jù)通道服務(wù)方式),最終構(gòu)成企業(yè)集團(tuán)數(shù)據(jù)共享交互平臺從集團(tuán)到下級企業(yè)的分層級的共享交互體系。
1)交互數(shù)據(jù)管理
平臺各節(jié)點(diǎn)均提供交互數(shù)據(jù)源的元數(shù)據(jù)釆集和梳理標(biāo)注等功能,形成本地數(shù)據(jù)目錄。支持查詢、查看實例數(shù)據(jù)、進(jìn)行數(shù)據(jù)分析、標(biāo)注中文語義等元數(shù)據(jù)操作,為數(shù)據(jù)整合交互提供必要的樣例分析服務(wù),并實現(xiàn)對交互數(shù)據(jù)結(jié)構(gòu)的管理和定義。
2)數(shù)據(jù)通道服務(wù)管理
平臺具有遠(yuǎn)程數(shù)據(jù)通道服務(wù)管理模塊(通道服務(wù)器),支持通道主題連接用戶的管理、通道主題配置、安全管理設(shè)置、數(shù)據(jù)授權(quán)等服務(wù)內(nèi)容,以及數(shù)據(jù)通道的運(yùn)行監(jiān)控。其中,通道用戶管理支持通道主題連接用戶的創(chuàng)建、管理和刪除,通道配置實現(xiàn)通道服務(wù)類型和通道消息處理方式的配置、連接用戶的數(shù)據(jù)權(quán)限和交互數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn)的選用。
3)數(shù)據(jù)源連接管理
平臺允許用戶管理數(shù)據(jù)源連接驅(qū)動包,支持動態(tài)加載不同版本的JDBC 驅(qū)動及參數(shù)配置,以適應(yīng)集成環(huán)境中同時具有不同版本的數(shù)據(jù)庫以及分布式數(shù)據(jù)庫和MPP 數(shù)據(jù)倉庫[1]。支持對各種異構(gòu)的關(guān)系型數(shù)據(jù)庫、 二進(jìn)制文件、Excel、CSV、TXT、JSON、XML 等數(shù)據(jù)文件以及Hadoop、Hive、HBase、Kafka、MongoDB、ElasticSearch 等大數(shù)據(jù)平臺多類型數(shù)據(jù)源的連接。
4)資料管理模塊任務(wù)管理
平臺實現(xiàn)復(fù)制同步任務(wù)管理、交互整合任務(wù)管理、文件傳輸任務(wù)管理、數(shù)據(jù)文件入庫任務(wù)管理以及任務(wù)調(diào)度管理,支持實時和定時的數(shù)據(jù)同步交互。
復(fù)制同步任務(wù)應(yīng)包括全量和日志模式增量CDC 任務(wù),支持Oracle、SQL Server、MySQL、PostgreSQL、Informix 等,支持按應(yīng)用系統(tǒng)處理事務(wù)的時間次序交互數(shù)據(jù),保證業(yè)務(wù)數(shù)據(jù)的完整性和一致性[2]。交互整合任務(wù),支持觸發(fā)器、標(biāo)識位、時間戳、全量比對等增量模式,以及對物理表和視圖的交互、多表整合。文件傳輸任務(wù)實現(xiàn)指定系統(tǒng)目錄下及FTP、HDFS 文件服務(wù)器下文件的高效流傳輸交互。任務(wù)調(diào)度管理能夠設(shè)置任務(wù)定時,并按設(shè)置的時間周期智能啟動任務(wù)的執(zhí)行。
復(fù)制同步任務(wù)和交互整合任務(wù)中提供兩個重要的數(shù)據(jù)處理功能,即過濾和轉(zhuǎn)換。過濾功能針對源數(shù)據(jù)庫中的庫表字段的值設(shè)定過濾條件,平臺采用了先進(jìn)的流式過濾技術(shù),能夠大大提升過濾的處理效率。圖形化數(shù)據(jù)轉(zhuǎn)換功能,允許用戶自定義源與目標(biāo)之間的數(shù)據(jù)轉(zhuǎn)換關(guān)系,并自動進(jìn)行轉(zhuǎn)換處理[3],如包括重新命名目標(biāo)Schema、目標(biāo)表及字段、增刪字段、改變數(shù)據(jù)類型和長度等;在源和目標(biāo)為異構(gòu)數(shù)據(jù)庫時,缺省情況下,平臺提供智能匹配技術(shù),自動進(jìn)行異構(gòu)數(shù)據(jù)庫類型的轉(zhuǎn)換處理。支持DDL 復(fù)制和動態(tài)表數(shù)據(jù)的同步復(fù)制功能。
5)數(shù)據(jù)通道服務(wù)管理傳輸服務(wù)管理
平臺支持?jǐn)?shù)據(jù)壓縮、WAN 多線程傳輸加速,實現(xiàn)跨網(wǎng)段的高速實時數(shù)據(jù)交互[4]。支持遠(yuǎn)程安全通道服務(wù)功能,有效分離源和目標(biāo)數(shù)據(jù)庫權(quán)限,實現(xiàn)跨網(wǎng)絡(luò)節(jié)點(diǎn)之間的安全數(shù)據(jù)交互,能夠與第三方數(shù)據(jù)通道如Kafka、MQ 服務(wù)對接。支持?jǐn)?shù)據(jù)加/解密和數(shù)據(jù)遠(yuǎn)程傳輸?shù)目煽啃?,支持?jǐn)帱c(diǎn)續(xù)傳和“傳且傳一次”的特性[5]。
6)實時監(jiān)控和統(tǒng)計分析
平臺實現(xiàn)接入節(jié)點(diǎn)數(shù)據(jù)源和全網(wǎng)的實時運(yùn)行監(jiān)控、運(yùn)營統(tǒng)計分析、報警通知和成果展現(xiàn)。實時運(yùn)行監(jiān)控支持對主機(jī)、交互任務(wù)、通道主題的運(yùn)行監(jiān)控以及對交互數(shù)據(jù)流轉(zhuǎn)的跟蹤[6]。運(yùn)維分析支持對設(shè)定時間段的任務(wù)運(yùn)行情況、交互業(yè)務(wù)運(yùn)行情況等提供多視角、多維度的統(tǒng)計分析,并以圖表方式展現(xiàn),作為科學(xué)分析交互應(yīng)用及相關(guān)決策的有效輔助手段。報警通知實現(xiàn)對運(yùn)行異常情況進(jìn)行報警,對運(yùn)行狀況定時告知。成果展現(xiàn)面向領(lǐng)導(dǎo)提供交互數(shù)據(jù)動態(tài)展示、交互任務(wù)和業(yè)務(wù)運(yùn)行展示以及交互業(yè)績展示功能[7]。
7)平臺管理
平臺還設(shè)計包括平臺用戶管理、用戶授權(quán)管理、機(jī)構(gòu)管理、日志管理、參數(shù)配置等功能。其中,日志管理支持從不同角度提供相應(yīng)的日志記錄功能,從而可方便快捷地跟蹤查詢平臺運(yùn)行情況,包括登錄日志、操作日志、任務(wù)日志等。參數(shù)配置支持平臺運(yùn)行、軟件配置、數(shù)據(jù)字典等各類參數(shù)的設(shè)置。
平臺提供兩種數(shù)據(jù)交換的技術(shù)實現(xiàn)方式,一是數(shù)據(jù)庫對數(shù)據(jù)庫的配置方式,適用于對交互的源和目標(biāo)數(shù)據(jù)庫有訪問權(quán)限的場景,通常一個部門內(nèi)部的應(yīng)用系統(tǒng)之間的交換采用這種方式。二是數(shù)據(jù)通道服務(wù)方式,通過數(shù)據(jù)通道有效解耦交換的源和目標(biāo)數(shù)據(jù)的訪問權(quán)限,適用于對交互對方的數(shù)據(jù)庫無直接訪問權(quán)限的場景,通常跨部門(域)之間的數(shù)據(jù)交換采用這種方式。
平臺采用最新的基于Web、流處理和微服務(wù)的架構(gòu)技術(shù)。整體架構(gòu)由三個域組成:數(shù)據(jù)源、中心服務(wù)及交互目標(biāo)。用戶通過簡單易用的Web 設(shè)計界面和控制臺與中心服務(wù)后臺交互。核心功能包括:數(shù)據(jù)源連接、元數(shù)據(jù)目錄、數(shù)據(jù)樣例查看、復(fù)制同步、交互整合、文件傳輸交互、結(jié)構(gòu)化文件加載、Kafka 對接、任務(wù)管理、任務(wù)調(diào)度等功能模塊。技術(shù)特點(diǎn)包括:異構(gòu)數(shù)據(jù)庫全量復(fù)制同步、非侵入式增量CDC 同步、數(shù)據(jù)虛擬化及大數(shù)據(jù)整合、多線程并行流式處理、優(yōu)化的可擴(kuò)展性和靈活性,以及方便易用的基于Web B/S 的任務(wù)配置和實時監(jiān)控管理界面[8]。
從功能上,平臺分為數(shù)據(jù)源連接管理模塊、元數(shù)據(jù)管理模塊、交換任務(wù)管理模塊、數(shù)據(jù)服務(wù)管理模塊、監(jiān)控統(tǒng)計模塊和平臺系統(tǒng)管理模塊等幾大部分。
采用上述方法建設(shè)的數(shù)據(jù)交互平臺已經(jīng)成功使用在工程項目管理PRP 系統(tǒng)、GRP 系統(tǒng)中。完成對工程類項目的項目立項、項目基本信息、計劃經(jīng)營、協(xié)同經(jīng)營、合同管理、預(yù)算管理、采購管理、設(shè)計與技術(shù)、進(jìn)度管理、安全管理、質(zhì)量管理、環(huán)保管理、稅務(wù)管理、資源管理、風(fēng)險管理等19 大模塊進(jìn)行統(tǒng)一標(biāo)準(zhǔn)的共享平臺建設(shè)。并與計劃統(tǒng)計系統(tǒng)、3 家單位對接了原本獨(dú)立的工程類項目信息數(shù)據(jù)總計30 余萬條。
以下為工程項目管理系統(tǒng)中數(shù)據(jù)交互流程:
1)數(shù)據(jù)庫連接配置
該功能顯示平臺中所有關(guān)系型數(shù)據(jù)庫及其它類型的連接信息,用戶可以對連接信息進(jìn)行新建、編輯、刪除等操作。
2)二進(jìn)制文件連接配置
該功能顯示平臺中所有二進(jìn)制文件存儲的服務(wù)器連接信息,用戶可以對連接信息進(jìn)行新建、編輯、刪除等操作。
3)數(shù)據(jù)同步任務(wù)配置
任務(wù)類型包括全量交換、增量捕獲CDC 兩部分。全量是對源庫表到目標(biāo)庫表所有表數(shù)據(jù)的交換,等同一對一的復(fù)制。增量CDC 則是基于非侵入式的方式,通過對源數(shù)據(jù)庫的日志數(shù)據(jù)的捕獲、分析,當(dāng)發(fā)現(xiàn)源表數(shù)據(jù)發(fā)生變動時,對目標(biāo)庫表進(jìn)行實時同步更新操作。對于在線運(yùn)行中的應(yīng)用系統(tǒng),在全量交換過程中可能持續(xù)有新的數(shù)據(jù)進(jìn)入, 為了保證源和目標(biāo)的數(shù)據(jù)一致性,則應(yīng)選擇全量+增量并行的任務(wù)方式。該方式任務(wù)啟動時,增量同時啟動開始捕獲數(shù)據(jù), 但此時并不加載于目標(biāo),而是等全量交換完成后再將增量數(shù)據(jù)加載,從而確保了源和目標(biāo)數(shù)據(jù)的一致性。
4)數(shù)據(jù)過濾
數(shù)據(jù)過濾可實現(xiàn)按指定條件對源數(shù)據(jù)進(jìn)行過濾,未滿足條件的數(shù)據(jù)不予以交換。
5)任務(wù)運(yùn)行
完成上述任務(wù)配置后,在對應(yīng)任務(wù)中“設(shè)計”頁面點(diǎn)擊運(yùn)行即可啟動該任務(wù)。同時也可以進(jìn)入“任務(wù)管理”對應(yīng)模塊中,如“復(fù)制同步模塊”、“交換整合模塊”等 ,批量啟動編輯完成的任務(wù)。
6)任務(wù)監(jiān)控
任務(wù)監(jiān)控是在任務(wù)運(yùn)行后自動實時展示的功能,可以查看到每條任務(wù)的執(zhí)行狀態(tài),數(shù)據(jù)傳輸?shù)木唧w條目,出現(xiàn)異常的任務(wù)或數(shù)據(jù)可以通過點(diǎn)擊異常任務(wù)進(jìn)行詳情查看。并通過異常任務(wù)的日志提供修改思路,以及數(shù)據(jù)回補(bǔ)功能。
7)任務(wù)調(diào)度
交換任務(wù)的運(yùn)行有兩種啟動方式,一是前述的通過用戶點(diǎn)擊“運(yùn)行”按鈕啟動,第二則是通過任務(wù)調(diào)度功能設(shè)置交換任務(wù)自動啟動的規(guī)則,如時間、頻率等,任務(wù)將在滿足規(guī)則時自動啟動。
數(shù)據(jù)交互平臺在數(shù)據(jù)對接中優(yōu)勢體現(xiàn)在以下幾個方面:
1)平臺采用國內(nèi)首創(chuàng)基于Web、內(nèi)存流處理和服務(wù)容器的技術(shù)架構(gòu),靈活性、可擴(kuò)展性強(qiáng),交互性能高。
2)直觀易用的B/S 用戶界面是區(qū)別于其他同類產(chǎn)品的重要特色,而且還屏蔽了數(shù)據(jù)交互復(fù)雜的操作過程,無需高級DBA 或技術(shù)人員提供咨詢或編寫不透明的定制腳本代碼,通過“點(diǎn)擊式”界面操作,就可實現(xiàn)數(shù)據(jù)交互復(fù)制/整合的應(yīng)用場景,簡單易用、可維護(hù)性是產(chǎn)品的顯著特點(diǎn)。
3)支持連接用戶名/密碼、數(shù)據(jù)授權(quán)、數(shù)據(jù)加/解密、數(shù)據(jù)壓縮,以及節(jié)點(diǎn)IP 過濾等全方位的數(shù)據(jù)交互安全功能,并提供可視化監(jiān)控管理。
在信息化建設(shè)過程中,各職能部門通常采用不同的技術(shù)和體系結(jié)構(gòu)來構(gòu)建自身的信息系統(tǒng),雖然為各自業(yè)務(wù)發(fā)展起到了很好的促進(jìn)作用,但各信息系統(tǒng)數(shù)據(jù)獨(dú)立存儲形成一個個信息孤島,使得各業(yè)務(wù)系統(tǒng)之間很難實現(xiàn)數(shù)據(jù)共享。如何在不改變原有系統(tǒng)的基礎(chǔ)上實現(xiàn)跨平臺數(shù)據(jù)訪問也成為信息化建設(shè)道路上必須思考的一個問題。
集團(tuán)于2021 年進(jìn)行了數(shù)據(jù)交互平臺的建設(shè)。該平臺是整個數(shù)字化央企建設(shè)的重要組成部分,利用此平臺對集團(tuán)分布的數(shù)據(jù)進(jìn)行集成化整合,同時將原來分散、利用率低的信息資源進(jìn)行數(shù)據(jù)挖掘。通過數(shù)據(jù)交換平臺的建立可以打破當(dāng)前的“信息孤島”現(xiàn)象,建立不同業(yè)務(wù)系統(tǒng)的數(shù)據(jù)共享平臺,形成集團(tuán)綜合信息庫。同時,通過統(tǒng)一的數(shù)據(jù)交換平臺實現(xiàn)各業(yè)務(wù)系統(tǒng)之間數(shù)據(jù)交換的單一安全通道,在實現(xiàn)信息共享的基礎(chǔ)上也確保了各自數(shù)據(jù)信息的安全。