潘 濤 王志東 解海東
(1.神華集團(tuán)有限責(zé)任公司,北京市東城區(qū),100011;2.煤炭科學(xué)研究總院,北京市朝陽(yáng)區(qū),100013)
目前,我國(guó)煤炭企業(yè)在信息化建設(shè)方面已經(jīng)取得了較大的進(jìn)步,從之前的僅在財(cái)務(wù)管理和銷售管理等局部環(huán)節(jié)應(yīng)用信息化技術(shù),到現(xiàn)在的面向不同業(yè)務(wù)或管理需要建立不同的管理信息化系統(tǒng),包括在生產(chǎn)過(guò)程控制方面建設(shè)了工作面生產(chǎn)監(jiān)測(cè)、瓦斯監(jiān)測(cè)、礦壓監(jiān)測(cè)以及視頻監(jiān)控等信息系統(tǒng),在經(jīng)營(yíng)管理方面建立了許多面向不同業(yè)務(wù)的管理信息化系統(tǒng),如設(shè)備管理系統(tǒng)、物資供應(yīng)管理系統(tǒng)、產(chǎn)運(yùn)銷一體化系統(tǒng)以及人力資源系統(tǒng)等等。但是由于大部分煤炭企業(yè)缺乏信息化建設(shè)的整體規(guī)劃,沒(méi)有統(tǒng)一的信息系統(tǒng)建設(shè)標(biāo)準(zhǔn),各業(yè)務(wù)系統(tǒng)各自為政,造成系統(tǒng)建設(shè)相對(duì)分散,系統(tǒng)之間數(shù)據(jù)信息無(wú)法共享,形成眾多的 “信息孤島”。這些 “信息孤島”多是基于不同的操作系統(tǒng)平臺(tái)和數(shù)據(jù)庫(kù)技術(shù)構(gòu)建,如何利用現(xiàn)有的成熟信息化技術(shù)解決 “信息孤島”之間的數(shù)據(jù)交換與共享,提高煤炭企業(yè)信息化整體的運(yùn)營(yíng)效率就成了一個(gè)亟需解決的問(wèn)題。
ETL過(guò)程就是數(shù)據(jù)流動(dòng)的過(guò)程,數(shù)據(jù)從不同的數(shù)據(jù)源流向目標(biāo)數(shù)據(jù)。整個(gè)過(guò)程可拆分為抽取、轉(zhuǎn)換和裝載3個(gè)步驟。
基于煤炭生產(chǎn)現(xiàn)場(chǎng)的現(xiàn)實(shí)需求,生產(chǎn)現(xiàn)場(chǎng)的安全數(shù)據(jù)需要在最短的時(shí)間內(nèi)從安全專用數(shù)據(jù)庫(kù)經(jīng)過(guò)ETL過(guò)程存儲(chǔ)到目標(biāo)數(shù)據(jù),下面介紹兩種ETL 過(guò)程快速自動(dòng)執(zhí)行實(shí)現(xiàn)方法。
通過(guò)數(shù)據(jù)庫(kù)觸發(fā)器實(shí)現(xiàn)自動(dòng)執(zhí)行ETL 過(guò)程,當(dāng)數(shù)據(jù)庫(kù)表中數(shù)據(jù)發(fā)生變化時(shí),自動(dòng)觸發(fā)執(zhí)行相應(yīng)的ETL過(guò)程,實(shí)現(xiàn)數(shù)據(jù)從數(shù)據(jù)源向目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)的非人工快速流動(dòng)。
觸發(fā)器類似于存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù),當(dāng)觸發(fā)事件發(fā)生時(shí),由系統(tǒng)自動(dòng)地隱式調(diào)用并執(zhí)行觸發(fā)器,而不能由應(yīng)用程序顯式地調(diào)用執(zhí)行。當(dāng)對(duì)指定數(shù)據(jù)表進(jìn)行操作時(shí),就會(huì)激活對(duì)應(yīng)的ETL過(guò)程執(zhí)行。
Oracle和SQL Server數(shù)據(jù)庫(kù)都可以創(chuàng)建觸發(fā)器。通過(guò)CREATE TRIGGER 語(yǔ)句創(chuàng)建一個(gè)語(yǔ)句級(jí)觸發(fā)器,該觸發(fā)器在一個(gè)數(shù)據(jù)操作語(yǔ)句發(fā)生時(shí)只觸發(fā)一次。觸發(fā)器的組成見(jiàn)表1。
表1 觸發(fā)器的組成
此種方法適合于數(shù)據(jù)交換平臺(tái)對(duì)數(shù)據(jù)源采集數(shù)據(jù)的實(shí)時(shí)性要求不高,或者數(shù)據(jù)源數(shù)據(jù)增量不頻繁的情況。
通過(guò)靈活的定時(shí)機(jī)制 (工作流內(nèi)部定時(shí)或作業(yè)定時(shí)),時(shí)間粒度最小可以設(shè)為毫秒級(jí),對(duì)同步ETL過(guò)程周期性的定時(shí)觸發(fā),達(dá)到對(duì)最新數(shù)據(jù)變化的實(shí)時(shí)同步。
本文采用Java 的定時(shí)器實(shí)現(xiàn), 應(yīng)用java.util.Timer工具類,其具有操作方便和高效的特 點(diǎn)。選 用Timer.schedule (TimerTask task,long delay,long period)函數(shù),其中第一個(gè)參數(shù)task指要執(zhí)行操作的方法名稱,第二個(gè)參數(shù)delay要設(shè)定延遲的時(shí)間,第三個(gè)參數(shù)period是周期的設(shè)定,每隔多長(zhǎng)時(shí)間執(zhí)行該操作,它的數(shù)量單位是μs。
此種方法適合于數(shù)據(jù)交換平臺(tái)對(duì)數(shù)據(jù)源采集數(shù)據(jù)的實(shí)時(shí)性要求高、對(duì)數(shù)據(jù)的增量較為頻繁以及數(shù)據(jù)量較大的情況。
為了滿足煤炭企業(yè)不同業(yè)務(wù)部門之間的信息共享,構(gòu)建橫向部門之間的數(shù)據(jù)交換平臺(tái)架構(gòu)如圖1所示。由于各業(yè)務(wù)部門信息系統(tǒng)建設(shè)以各自業(yè)務(wù)為中心,沒(méi)有統(tǒng)一規(guī)劃和統(tǒng)一標(biāo)準(zhǔn),造成各業(yè)務(wù)部門數(shù)據(jù)資源不能順暢的流轉(zhuǎn)。為了解決這一問(wèn)題,在數(shù)據(jù)轉(zhuǎn)換的時(shí)候統(tǒng)一數(shù)據(jù)格式,即在從不同業(yè)務(wù)部門提取數(shù)據(jù)之后,增加應(yīng)用服務(wù),將數(shù)據(jù)統(tǒng)一轉(zhuǎn)換為XML 文件格式,并按照數(shù)據(jù)轉(zhuǎn)換策略處理XML 文件,而后再將轉(zhuǎn)換結(jié)果存入目標(biāo)數(shù)據(jù)庫(kù)。
圖1 橫向數(shù)據(jù)交換平臺(tái)架構(gòu)
對(duì)于大型的煤炭企業(yè)集團(tuán),數(shù)據(jù)交換涉及部門較多,其子公司也是集團(tuán)化運(yùn)作,建立一個(gè)簡(jiǎn)單的數(shù)據(jù)交換平臺(tái)是不夠的。本文設(shè)計(jì)三級(jí)交換中心,即集團(tuán)級(jí)交換中心、子公司級(jí)交換中心和子公司的礦級(jí)交換中心,滿足煤炭企業(yè)集團(tuán)與各業(yè)務(wù)部門、煤礦、子公司等業(yè)務(wù)單元縱向數(shù)據(jù)的傳輸與整合需求。
縱向部門之間的數(shù)據(jù)交換平臺(tái)架構(gòu)如圖2 所示。圖2是一個(gè)以煤炭企業(yè)集團(tuán)數(shù)據(jù)交換平臺(tái)為根節(jié)點(diǎn)的樹,下面分別建立了以各業(yè)務(wù)部門、煤礦、子公司等業(yè)務(wù)單元節(jié)點(diǎn),子公司建立二級(jí)數(shù)據(jù)交換平臺(tái),同樣是以數(shù)據(jù)交換平臺(tái)根節(jié)點(diǎn)的子樹。要進(jìn)行數(shù)據(jù)交換的兩個(gè)業(yè)務(wù)端如果都在二級(jí)數(shù)據(jù)交換平臺(tái)下,就可以直接通過(guò)二級(jí)數(shù)據(jù)交換平臺(tái)進(jìn)行交換,減輕了集團(tuán)總部數(shù)據(jù)交換平臺(tái)數(shù)據(jù)交換壓力,提高數(shù)據(jù)交換效率。
數(shù)據(jù)交換平臺(tái)不但滿足橫向部門間的數(shù)據(jù)交換需求,同時(shí)要保障集團(tuán)總部與子公司之間的自下而上的縱向的數(shù)據(jù)交換順暢,適合大型跨地域和跨行業(yè)多級(jí)管理的煤炭企業(yè)集團(tuán)。數(shù)據(jù)交換平臺(tái)總體框架如圖3 所示,數(shù)據(jù)交換平臺(tái)由應(yīng)用服務(wù)層、應(yīng)用支撐層和傳輸層組成,應(yīng)用服務(wù)層主要包括煤炭企業(yè)的信息平臺(tái)門戶網(wǎng)站、經(jīng)營(yíng)管理系統(tǒng)以及生產(chǎn)管理系統(tǒng)等各業(yè)務(wù)應(yīng)用系統(tǒng),另外本層為應(yīng)用系統(tǒng)提供了平臺(tái)管理、接收管理、發(fā)送管理、調(diào)度管理、數(shù)據(jù)管理和數(shù)據(jù)字典等功能。應(yīng)用支撐層在SOA 架構(gòu)下與應(yīng)用服務(wù)層相銜接,具有數(shù)據(jù)接收服務(wù)、數(shù)據(jù)發(fā)送服務(wù)、數(shù)據(jù)抽取服務(wù)、數(shù)據(jù)發(fā)布服務(wù)、交換調(diào)度器、郵件監(jiān)聽(tīng)器、接入服務(wù)和隊(duì)列監(jiān)聽(tīng)器等功能模塊,負(fù)責(zé)根據(jù)應(yīng)用系統(tǒng)的需求對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的數(shù)據(jù)處理。傳輸層支持基于消息、Web Service和HTTP 等多種協(xié)議,所有的接口都以Web Service的方式接入。
圖2 縱向數(shù)據(jù)交換平臺(tái)架構(gòu)
現(xiàn)有的各業(yè)務(wù)系統(tǒng)由不同的廠商開(kāi)發(fā),所采用技術(shù)架構(gòu)和開(kāi)發(fā)平臺(tái)都是不同的,要想實(shí)現(xiàn)現(xiàn)有異構(gòu)信息系統(tǒng)之間的信息數(shù)據(jù)共享,數(shù)據(jù)交換平臺(tái)選擇基于SOA 建立,因?yàn)镾OA 的核心理念是業(yè)務(wù)驅(qū)動(dòng),采用松耦合、靈活的體系架構(gòu)來(lái)滿足不斷變化的業(yè)務(wù)需求,并且不需要了解提供者的實(shí)現(xiàn)細(xì)節(jié)。
SOA 面向服務(wù)的體系結(jié)構(gòu)將應(yīng)用程序的不同功能模塊視為服務(wù),采用中立方式為這些服務(wù)構(gòu)建接口,實(shí)現(xiàn)它們的相互聯(lián)系。通過(guò)SOA 對(duì)企業(yè)現(xiàn)有資源進(jìn)行構(gòu)建,簡(jiǎn)化業(yè)務(wù)流程,為企業(yè)節(jié)約大量的時(shí)間和資金。
XML文件格式目前廣泛應(yīng)用在異構(gòu)數(shù)據(jù)源的數(shù)據(jù)轉(zhuǎn)換上,XML 和以XML 為基礎(chǔ)的標(biāo)準(zhǔn) (如Web Service)已經(jīng)成為在很多企業(yè)和應(yīng)用之間交換信息的機(jī)制。
XML是一套定義語(yǔ)義標(biāo)記的規(guī)則,XML 是自描述性語(yǔ)言,具有很好的自解釋性,它不僅將文本組織成層次結(jié)構(gòu),還直接在文本中描述了自身的組織結(jié)構(gòu)。其具有以下特點(diǎn):
(1)XML 可以從HTML 中分離數(shù)據(jù),使用XML 可以在HTML文件之外存儲(chǔ)數(shù)據(jù);
(2)XML 數(shù)據(jù)是以純文本格式存儲(chǔ)的,XML提供了一種與軟件和硬件無(wú)關(guān)的數(shù)據(jù)共享方法;
(3)XML 可以充分利用數(shù)據(jù);
(4)XML 具有可擴(kuò)展性;
(5)XML 可以用于定義新的語(yǔ)言。
圖3 數(shù)據(jù)交換平臺(tái)總體框架
圖4 峰峰集團(tuán)數(shù)據(jù)中心總體技術(shù)架構(gòu)
編碼統(tǒng)一是企業(yè)信息化體系建設(shè)中的基礎(chǔ)性工作,信息編碼的一致性、完整性、易用性將直接影響信息系統(tǒng)的信息交互與 數(shù)據(jù)共享能力。本文通過(guò)建立核心元數(shù)據(jù)實(shí)現(xiàn)煤炭企業(yè)各業(yè)務(wù)系統(tǒng)之間信息編碼的統(tǒng)一。元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),是有關(guān)數(shù)據(jù)源定義、目標(biāo)定義和轉(zhuǎn)換規(guī)則等相關(guān)的關(guān)鍵數(shù)據(jù)。
核心元數(shù)據(jù)的構(gòu)建要抓住重大且公共為先,對(duì)煤炭企業(yè)全集團(tuán)的公共數(shù)據(jù)編碼進(jìn)行統(tǒng)一編碼時(shí),在編制過(guò)程中應(yīng)著重解決業(yè)務(wù)影響范圍大和重要性強(qiáng)的數(shù)據(jù)編碼,如倉(cāng)儲(chǔ)物資編碼、財(cái)務(wù)編碼以及客戶編碼等。
本文所設(shè)計(jì)的基于自主式ETL 的統(tǒng)一數(shù)據(jù)交換平臺(tái)已經(jīng)在冀中能源峰峰集團(tuán)有限公司數(shù)據(jù)中心中得以應(yīng)用,數(shù)據(jù)中心總體技術(shù)架構(gòu)如圖4所示。
系統(tǒng)總體技術(shù)架構(gòu)包括數(shù)據(jù)源、企業(yè)數(shù)據(jù)通道、ODS、DW、OLAP、前端展示和ETL,具有高度先進(jìn)性和可擴(kuò)展性,能夠滿足業(yè)務(wù)需求的不斷變化和不斷增加的需求。
[1] 劉紀(jì)敏,王曉寧,張承明.基于.net的企業(yè)信息集成的設(shè)計(jì)與應(yīng)用 [J].煤炭科學(xué)技術(shù),2006 (10)
[2] 劉開(kāi)南,董立紅 .礦業(yè)安全數(shù)據(jù)源質(zhì)量評(píng)價(jià)研究[J].中國(guó)煤炭,2007 (8)
[3] 楊毅,孫超.基于數(shù)據(jù)倉(cāng)庫(kù)的煤炭運(yùn)銷決策支持系統(tǒng)研究 [J].中國(guó)煤炭,2009 (2)
[4] 韓曉冰,田豐 .數(shù)字化礦山中異構(gòu)數(shù)據(jù)集成研究[J].煤炭科學(xué)技術(shù),2009 (3)
[5] 趙洪建 .煤炭企業(yè)數(shù)據(jù)中心框架研究與應(yīng)用探索[J].中國(guó)煤炭,2012 (7)
[6] 王振宇.煤炭企業(yè)智能綜合決策中心系統(tǒng)架構(gòu)研究[J].煤炭經(jīng)濟(jì)研究,2010 (2)
[7] 劉福國(guó).基于數(shù)據(jù)挖掘的鋼球磨煤機(jī)運(yùn)行特性建模和優(yōu)化 [J].中國(guó)煤炭,2010 (5)
[8] 劉儒晨.TD 無(wú)線數(shù)據(jù)采集系統(tǒng)在煤炭行業(yè)的應(yīng)用實(shí)踐 [J].中國(guó)煤炭,2011 (5)
[9] 常弋.現(xiàn)代企業(yè)輕量級(jí)的ETL實(shí)現(xiàn)方案 [J].煤炭技術(shù),2011 (6)
[10] 徐桅,徐奇,陳海東.XML 技術(shù)在高速數(shù)據(jù)訪問(wèn)接口中的應(yīng)用 [J].工礦自動(dòng)化,2011 (12)
[11] 程燦廣.煤炭企業(yè)虛擬化數(shù)據(jù)中心建設(shè)研究與探討[J].煤炭經(jīng)濟(jì)研究,2012 (5)