徐 瑞, 張紅博, 邢 亮
(1.航空工業(yè)西安航空計算技術(shù)研究所, 陜西 西安 710000;2.西安翔迅科技有限責(zé)任公司, 陜西 西安 710068)
企業(yè)在信息化實施過程中,建設(shè)了大量的異構(gòu)系統(tǒng),產(chǎn)生了大量的數(shù)據(jù)。如何在擁有這些海量數(shù)據(jù)的基礎(chǔ)上挖掘有用信息、提高運營效率,數(shù)據(jù)治理是關(guān)鍵技術(shù)。這些異構(gòu)系統(tǒng)基于不同的開發(fā)語言、不同的底層數(shù)據(jù)庫,運行在不同的平臺上,系統(tǒng)彼此分離、數(shù)據(jù)源相互獨立,運行業(yè)務(wù)完全封閉,數(shù)據(jù)難以在系統(tǒng)之間交流、共享和融合,造成企業(yè)信息化各自為營的煙囪效應(yīng),從而形成信息孤島。信息化在支撐企業(yè)業(yè)務(wù)發(fā)展到一定階段后,迫切需要對各信息系統(tǒng)進行整合,打通信息孤島,滿足企業(yè)內(nèi)部之間,企業(yè)內(nèi)部和外部的信息交互需求,從而助力企業(yè)整體戰(zhàn)略目標的實現(xiàn)[1]。數(shù)據(jù)治理是解決上述瓶頸問題的有效手段,可以為多源、異構(gòu)、跨界數(shù)據(jù)應(yīng)用夯實基礎(chǔ),確保數(shù)據(jù)資產(chǎn)管理活動始終處于規(guī)范、有序、可控的狀態(tài),將海量數(shù)據(jù)應(yīng)用于決策、營銷、成本節(jié)約和產(chǎn)品創(chuàng)新上。
數(shù)據(jù)治理是指將數(shù)據(jù)作為企業(yè)的重要核心資產(chǎn)和資源而開展的一系列活動,是對數(shù)據(jù)的全生命周期進行管理。在信息化實施過程中,由于各個業(yè)務(wù)系統(tǒng)分散建設(shè),數(shù)據(jù)也分散于不同的系統(tǒng)中,缺乏統(tǒng)一的標準和規(guī)范,并且各個系統(tǒng)的數(shù)據(jù)存在冗余和矛盾,導(dǎo)致企業(yè)存在大量的數(shù)據(jù),但數(shù)據(jù)利用率卻很低。企業(yè)的數(shù)據(jù)問題可以集中歸結(jié)為數(shù)據(jù)不一致性、數(shù)據(jù)冗余、數(shù)據(jù)不完整和數(shù)據(jù)不合規(guī)四個方面。數(shù)據(jù)治理通過對企業(yè)數(shù)據(jù)架構(gòu)進行規(guī)劃,建立統(tǒng)一的元數(shù)據(jù)標準,提升數(shù)據(jù)質(zhì)量,控制數(shù)據(jù)使用權(quán)限,產(chǎn)生不同維度的數(shù)據(jù)服務(wù),從而為企業(yè)的戰(zhàn)略目標落地提供支撐[2]。而企業(yè)數(shù)字化轉(zhuǎn)型,構(gòu)建數(shù)字化企業(yè),更要基于數(shù)據(jù)驅(qū)動。數(shù)據(jù)治理作為信息化發(fā)展過程中的必經(jīng)階段,也成為當(dāng)前信息化研究的熱門課題。
航空電子類企業(yè)在信息化建設(shè)過程中,由于大量的業(yè)務(wù)數(shù)據(jù)分散在ERP、PDM、OA 和HR 等不同應(yīng)用系統(tǒng),業(yè)務(wù)部門關(guān)注的數(shù)據(jù)信息散落在各個業(yè)務(wù)系統(tǒng)中,導(dǎo)致科研交付、研制生產(chǎn)和物資配送等方面的信息無法關(guān)聯(lián)展示,從而無法對項目執(zhí)行過程中各類信息進行整體的協(xié)調(diào)控制。因此,需要通過數(shù)據(jù)治理手段,建立科研、生產(chǎn)、物資等主要業(yè)務(wù)流程全信息集成的數(shù)據(jù)報表,以便適時掌握項目進度、生產(chǎn)進度等統(tǒng)計信息,提升決策支持能力。
數(shù)據(jù)治理從實施方案上來講,主要分為分析、設(shè)計和執(zhí)行三個不同的階段[3],在不同的階段有不同的任務(wù)和行動項,如圖1 所示。
圖1 數(shù)據(jù)治理實施方案
在分析階段,主要進行項目調(diào)研和分析,明確通過數(shù)據(jù)治理達成的任務(wù)和目標。
在設(shè)計階段,主要工作是數(shù)據(jù)管理體系的構(gòu)建實施。數(shù)據(jù)管理體系主要工作在于打造數(shù)據(jù)標準體系。具體包括構(gòu)建數(shù)據(jù)管理的組織體系,明確各類業(yè)務(wù)數(shù)據(jù)由哪些業(yè)務(wù)部門進行負責(zé)。構(gòu)建數(shù)據(jù)業(yè)務(wù)模型,設(shè)計統(tǒng)一的數(shù)據(jù)編碼體系,明確數(shù)據(jù)的私有屬性和交換屬性。構(gòu)建數(shù)據(jù)管理的質(zhì)量標準體系,明確數(shù)據(jù)的驗證范圍和驗證方法。
在執(zhí)行階段,主要工作是數(shù)據(jù)交換體系的設(shè)計實現(xiàn)。數(shù)據(jù)交換體系工作主要從技術(shù)層面入手,通過數(shù)據(jù)采集、數(shù)據(jù)清洗等技術(shù)手段,實現(xiàn)各個業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)對接,形成數(shù)據(jù)的自由流動以及數(shù)據(jù)的規(guī)范使用和運維[4]。最后,通過數(shù)據(jù)分析,形成數(shù)據(jù)分析報告、數(shù)據(jù)報表和圖表等,為企業(yè)領(lǐng)導(dǎo)決策提供科學(xué)、精準、高效的數(shù)據(jù)支撐。
在數(shù)據(jù)治理實施過程中,首先需要對企業(yè)內(nèi)部的數(shù)據(jù)情況進行調(diào)研和分析,明確不同業(yè)務(wù)數(shù)據(jù)的源頭。如在人員方面,企業(yè)人員、組織結(jié)構(gòu)數(shù)據(jù)的源頭是HR 系統(tǒng),而其他應(yīng)用系統(tǒng)作為人員數(shù)據(jù)、組織數(shù)據(jù)的使用方,需要及時獲取人員信息的更新情況。在產(chǎn)品數(shù)據(jù)方面,企業(yè)產(chǎn)品數(shù)據(jù)的來源是PDM系統(tǒng)。在客戶信息方面,客戶數(shù)據(jù)的源頭可以是CRM系統(tǒng)。在供應(yīng)商信息方面,供應(yīng)商數(shù)據(jù)的源頭可以是ERP 系統(tǒng),在項目信息方面,項目數(shù)據(jù)的源頭是項目管理系統(tǒng)。
其次,要進行具體的數(shù)據(jù)分析工作。主要從以下幾個維度展開,如表1 所示。
表1 數(shù)據(jù)治理質(zhì)量維度
數(shù)據(jù)完整性:確保業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)正確完整,例如,人員信息的工號必須有值且唯一,當(dāng)人員離職后,該信息可以參照映射到其他業(yè)務(wù)系統(tǒng)中,確保其余業(yè)務(wù)系統(tǒng)對該用戶關(guān)閉。數(shù)據(jù)冗余性:針對同一個業(yè)務(wù)實體信息,在不同的應(yīng)用系統(tǒng)中,分別對該業(yè)務(wù)實體進行維護,導(dǎo)致存在一對多的數(shù)據(jù)冗余對應(yīng)關(guān)系。數(shù)據(jù)及時性:當(dāng)數(shù)據(jù)發(fā)生變更時,是否應(yīng)該在規(guī)定的時間范圍內(nèi),將數(shù)據(jù)變更及時同步到相應(yīng)的業(yè)務(wù)系統(tǒng)中,主要針對的是業(yè)務(wù)數(shù)據(jù)的動態(tài)屬性,如產(chǎn)品的庫存信息、人員的在崗信息等。數(shù)據(jù)一致性:當(dāng)企業(yè)中人員組織機構(gòu)發(fā)生調(diào)整時,需要同步更新到其他應(yīng)用系統(tǒng)中,確保數(shù)據(jù)訪問的一致性、正確性。
最后,要設(shè)定數(shù)據(jù)治理的目標和計劃,該目標和計劃以解決業(yè)務(wù)部門的痛點為主,而不是單純的以數(shù)據(jù)作為落腳點[5]。如提高物料信息盤庫的準確率、實現(xiàn)所有產(chǎn)品信息的狀態(tài)實時更新顯示等。通過實現(xiàn)一個個小目標,助推企業(yè)的數(shù)字化運營大目標落地實現(xiàn)。
數(shù)據(jù)治理設(shè)計階段是在前期分析階段的基礎(chǔ)上構(gòu)建數(shù)據(jù)標準體系和數(shù)據(jù)模型體系[6]。數(shù)據(jù)標準體系的設(shè)計是從宏觀出發(fā),依據(jù)企業(yè)組織架構(gòu),搭建符合數(shù)據(jù)治理要求的數(shù)據(jù)架構(gòu),從數(shù)據(jù)的全生命周期出發(fā),根據(jù)不同部門崗位對數(shù)據(jù)的生產(chǎn)、使用、存儲情況,設(shè)計符合企業(yè)內(nèi)部數(shù)據(jù)需求的管理體系,確保數(shù)據(jù)治理工作有章可循[7]。數(shù)據(jù)模型體系是在數(shù)據(jù)標準體系的基礎(chǔ)上針對具體的業(yè)務(wù)領(lǐng)域和數(shù)據(jù)環(huán)境,從微觀層面對企業(yè)內(nèi)部不同屬性的數(shù)據(jù)進行分類。針對基礎(chǔ)類型的字典數(shù)據(jù),確保數(shù)據(jù)的分類編碼準確無誤。針對動態(tài)生成的業(yè)務(wù)類型數(shù)據(jù),對其屬性進行細化,并賦以不同的權(quán)限進行控制[8]。針對指標層面的數(shù)據(jù),則進行匯總計算。企業(yè)的數(shù)據(jù)標準體系設(shè)計和數(shù)據(jù)模型設(shè)計如圖2 所示。
圖2 企業(yè)的數(shù)據(jù)標準體系設(shè)計和數(shù)據(jù)模型設(shè)計
從數(shù)據(jù)標準體系設(shè)計到數(shù)據(jù)模型的設(shè)計是數(shù)據(jù)治理首先進行的重要工作,通過開展一系列數(shù)據(jù)治理設(shè)計工作,可以為數(shù)據(jù)治理和數(shù)據(jù)應(yīng)用工作打下良好的基礎(chǔ),從而保障數(shù)據(jù)質(zhì)量。在數(shù)據(jù)標準的設(shè)計過程中,首先從整個企業(yè)組織層面考慮組建數(shù)據(jù)管理組織,包括數(shù)據(jù)管理制度、流程,然后確定設(shè)計組織內(nèi)的相關(guān)職責(zé),以及不同崗位人員對各類數(shù)據(jù)的維護、審核流程。在數(shù)據(jù)模型層面,從業(yè)務(wù)域到數(shù)據(jù)主題,再到數(shù)據(jù)實體、數(shù)據(jù)屬性,對數(shù)據(jù)進行層層分解梳理、提煉數(shù)據(jù)標準,就可以設(shè)計出針對不同業(yè)務(wù)領(lǐng)域的數(shù)據(jù)模型。如在設(shè)計領(lǐng)域,針對產(chǎn)品數(shù)據(jù),提煉出設(shè)計業(yè)務(wù)相關(guān)的數(shù)據(jù)對象。實體的數(shù)據(jù)都有相應(yīng)的屬性信息,需要把它的每一項屬性信息從業(yè)務(wù)角度、技術(shù)角度和管理角度進行統(tǒng)一梳理,歸納出與實體之間的關(guān)系,形成數(shù)據(jù)的整體模型[9],如圖3 所示。
圖3 數(shù)據(jù)的整體模型
數(shù)據(jù)治理實施主要包含數(shù)據(jù)采集技術(shù)、數(shù)據(jù)清洗技術(shù)、數(shù)據(jù)導(dǎo)入技術(shù)以及數(shù)據(jù)可視化技術(shù)[10]。
數(shù)據(jù)采集技術(shù)分為實時數(shù)據(jù)采集技術(shù)和非實時數(shù)據(jù)采集技術(shù)。實時數(shù)據(jù)采集主要強調(diào)了數(shù)據(jù)采集的時效性,強調(diào)系統(tǒng)能夠?qū)崟r完成數(shù)據(jù)入庫。非實時采集基于傳統(tǒng)的數(shù)據(jù)倉庫技術(shù),完成數(shù)據(jù)從面向事務(wù)類的OLTP 數(shù)據(jù)庫到面向分析類OLAP 數(shù)據(jù)庫的轉(zhuǎn)換。數(shù)據(jù)治理層面的數(shù)據(jù)采集主要面對的是非實時采集方式[11]。下面就介紹一種典型的基于Web 異構(gòu)系統(tǒng)的數(shù)據(jù)采集技術(shù)。
當(dāng)前,企業(yè)信息系統(tǒng)架構(gòu)主要采用瀏覽器、服務(wù)器模式,是基于B/S 架構(gòu)的系統(tǒng)架構(gòu)方式。采用的具體技術(shù)架構(gòu)比較多樣化,有基于Java 語言的Java EE技術(shù)架構(gòu),基于C#語言的Net 技術(shù)架構(gòu),或者基于Python 語言的Django 架構(gòu)。而瀏覽器/服務(wù)器架構(gòu)系統(tǒng)訪問技術(shù)建立在超文本傳輸協(xié)議HTTP 之上,HTTP 是一個基于請求與相應(yīng)模式的、無狀態(tài)的、應(yīng)用層的協(xié)議,建立在TCP 協(xié)議的連接之上。一次完整的HTTP 請求過程,從TCP 三次握手建立連接成功后開始,客戶端按照指定的格式開始向服務(wù)端發(fā)送HTTP請求,服務(wù)端收到請求后,解析HTTP 請求,處理完業(yè)務(wù)邏輯,最后返回一個HTTP 響應(yīng)給客戶端。數(shù)據(jù)采集技術(shù)通過構(gòu)造基于HTTP 協(xié)議的HttpClient 數(shù)據(jù)訪問器訪問應(yīng)用系統(tǒng)的URL 地址,通過Get 方式執(zhí)行請求獲取響應(yīng)狀態(tài),并且將響應(yīng)信息中的消息正文從網(wǎng)絡(luò)數(shù)據(jù)流中讀取出來[12]。整個數(shù)據(jù)采集方案架構(gòu)如圖4 所示。
圖4 數(shù)據(jù)集成應(yīng)用系統(tǒng)基本架構(gòu)圖
HttpClient 是利用Java 語言實現(xiàn)的支持HTTP 協(xié)議的客戶端編程開發(fā)工具包,實現(xiàn)了HTTP 的訪問方法,并且可以通過對HTTP 返回的狀態(tài)碼進行判斷,當(dāng)返回的狀態(tài)碼正確時,即取得響應(yīng)內(nèi)容。其抓取應(yīng)用系統(tǒng)返回信息可分為5 個步驟進行。
1)構(gòu)建HttpClient 類的實例:
HttpClient httpclient=newHttpClient();
2)創(chuàng)建Get 連接方法的實例,實例通過URL 地址訪問應(yīng)用系統(tǒng)請求資源:
GetMethod getMethod=new GetMethod(“應(yīng)用系統(tǒng)URL 地址”);
3)調(diào)用第一步創(chuàng)建好實例的execute 方法,獲得狀態(tài)響應(yīng)碼:
Int statusCode=httpclient.executeMethod(getMethod);
4)根據(jù)狀態(tài)響應(yīng)碼進行判斷,200 代表請求已成功,讀取響應(yīng)內(nèi)容:
System.out.println(“response=”+getMethod.getResponseBodyAsString());
5)釋放連接:
GetMehod.releaseConnection();
針對從其他異構(gòu)系統(tǒng)采集上來的數(shù)據(jù),往往會存在數(shù)據(jù)質(zhì)量問題,如數(shù)據(jù)不一致、不完整、不合規(guī)或數(shù)據(jù)冗余。因此,下一步的工作即是數(shù)據(jù)清洗。在數(shù)據(jù)清洗過程中,最重要的工作是建立一套數(shù)據(jù)的管道工具——ETL 工具[13]。將采集來的數(shù)據(jù)通過這個數(shù)據(jù)的管道工具,完成抽取、轉(zhuǎn)換、加載映射的過程,從而生成符合治理要求的干凈數(shù)據(jù)。管道工具加載數(shù)據(jù)的策略包含流水式加載、全量加載、增量加載和拉式加載等。
ETL 工具可以自己開發(fā),互聯(lián)網(wǎng)上也提供了許多開源產(chǎn)品。如Kettle,是一款國外免費開源的、可視化的、功能強大的ETL 工具,純Java 語言編寫,可以在Windows、Linux 和Unix 服務(wù)器上運行,具有高效穩(wěn)定的特性。Streamsets 是一個大數(shù)據(jù)實時采集ETL 工具,可以實現(xiàn)不寫一行代碼就能完成數(shù)據(jù)的采集和流轉(zhuǎn)。通過拖拽式的可視化界面,實現(xiàn)數(shù)據(jù)管道(Pipelines)設(shè)計和定時任務(wù)的調(diào)度。數(shù)據(jù)源支持MySQL、Oracle等結(jié)構(gòu)化和半/非結(jié)構(gòu)化,目標源支持HDFS、Hive、Hbase、Kudu、Solr 和Elasticserach 等。創(chuàng)建一個Pipelines管道需要配置數(shù)據(jù)源(Origins)、操作(Processors)和目的地(Destinations)三個部分[14]。
數(shù)據(jù)可視化作為數(shù)據(jù)治理的成果,主要是將匯集好的正確、一致性的數(shù)據(jù)通過圖表報表的方式向用戶進行展示。在可視化領(lǐng)域,也有很多成熟的優(yōu)秀的產(chǎn)品。ECharts 是一個使用JavaScript 實現(xiàn)的開源可視化庫,可以流暢地運行在PC 和移動設(shè)備上,兼容當(dāng)前絕大部分瀏覽器,底層依賴矢量圖形庫ZRender,提供直觀、交互豐富、可高度個性化定制的數(shù)據(jù)可視化圖表。Echarts 圖表庫提供了豐富的折線圖、餅圖、地圖以及儀表盤展示方式。開發(fā)過程的具體實現(xiàn)步驟為:首先為圖表準備Dom 容器,通過Script 標簽引入Echarts 庫文件,采用init 方法初始化圖表。在Option中配置圖表的公共選項,組件選項和數(shù)據(jù)選項,通過setOption 方法生成圖表。并且Echarts 數(shù)據(jù)可視化部分通過setInterval 方法實現(xiàn)周期為1 s 的圖表刷新,實現(xiàn)數(shù)據(jù)顯示的實時性[15]。
經(jīng)過數(shù)據(jù)治理后,針對某航空電子企業(yè)展示的產(chǎn)品數(shù)據(jù),依據(jù)不同產(chǎn)品類型在不同的研制狀態(tài)分別進行統(tǒng)計效果展示,如圖5 所示。
圖5 統(tǒng)計效果
本文通過對數(shù)據(jù)治理在企業(yè)信息化中的應(yīng)用進行研究,提出了一種從分析、設(shè)計和實施三個層面出發(fā)、三步走的數(shù)據(jù)治理戰(zhàn)略。數(shù)據(jù)治理工作是在信息化總體目標和規(guī)劃的設(shè)計指引下進行的,與數(shù)據(jù)架構(gòu)、企業(yè)戰(zhàn)略目標密切相關(guān)。通過對數(shù)據(jù)治理管理體系和技術(shù)體系的研究,為企業(yè)日益增長的數(shù)據(jù)使用需求做出了有益的探索。數(shù)據(jù)治理打通了企業(yè)價值鏈各領(lǐng)域流程,支持企業(yè)系統(tǒng)間的緊密集成,高效支持企業(yè)的業(yè)務(wù)運轉(zhuǎn),并為企業(yè)實現(xiàn)透明化管理、高效決策打下了堅實的基礎(chǔ)。