潘 濤 王志東 解海東
(1.神華集團有限責任公司,北京市東城區,100011;2.煤炭科學研究總院,北京市朝陽區,100013)
目前,我國煤炭企業在信息化建設方面已經取得了較大的進步,從之前的僅在財務管理和銷售管理等局部環節應用信息化技術,到現在的面向不同業務或管理需要建立不同的管理信息化系統,包括在生產過程控制方面建設了工作面生產監測、瓦斯監測、礦壓監測以及視頻監控等信息系統,在經營管理方面建立了許多面向不同業務的管理信息化系統,如設備管理系統、物資供應管理系統、產運銷一體化系統以及人力資源系統等等。但是由于大部分煤炭企業缺乏信息化建設的整體規劃,沒有統一的信息系統建設標準,各業務系統各自為政,造成系統建設相對分散,系統之間數據信息無法共享,形成眾多的 “信息孤島”。這些 “信息孤島”多是基于不同的操作系統平臺和數據庫技術構建,如何利用現有的成熟信息化技術解決 “信息孤島”之間的數據交換與共享,提高煤炭企業信息化整體的運營效率就成了一個亟需解決的問題。
ETL過程就是數據流動的過程,數據從不同的數據源流向目標數據。整個過程可拆分為抽取、轉換和裝載3個步驟。
基于煤炭生產現場的現實需求,生產現場的安全數據需要在最短的時間內從安全專用數據庫經過ETL過程存儲到目標數據,下面介紹兩種ETL 過程快速自動執行實現方法。
通過數據庫觸發器實現自動執行ETL 過程,當數據庫表中數據發生變化時,自動觸發執行相應的ETL過程,實現數據從數據源向目標數據倉庫的非人工快速流動。
觸發器類似于存儲過程和存儲函數,當觸發事件發生時,由系統自動地隱式調用并執行觸發器,而不能由應用程序顯式地調用執行。當對指定數據表進行操作時,就會激活對應的ETL過程執行。
Oracle和SQL Server數據庫都可以創建觸發器。通過CREATE TRIGGER 語句創建一個語句級觸發器,該觸發器在一個數據操作語句發生時只觸發一次。觸發器的組成見表1。

表1 觸發器的組成
此種方法適合于數據交換平臺對數據源采集數據的實時性要求不高,或者數據源數據增量不頻繁的情況。
通過靈活的定時機制 (工作流內部定時或作業定時),時間粒度最小可以設為毫秒級,對同步ETL過程周期性的定時觸發,達到對最新數據變化的實時同步。
本文采用Java 的定時器實現, 應用java.util.Timer工具類,其具有操作方便和高效的特 點。選 用Timer.schedule (TimerTask task,long delay,long period)函數,其中第一個參數task指要執行操作的方法名稱,第二個參數delay要設定延遲的時間,第三個參數period是周期的設定,每隔多長時間執行該操作,它的數量單位是μs。
此種方法適合于數據交換平臺對數據源采集數據的實時性要求高、對數據的增量較為頻繁以及數據量較大的情況。
為了滿足煤炭企業不同業務部門之間的信息共享,構建橫向部門之間的數據交換平臺架構如圖1所示。由于各業務部門信息系統建設以各自業務為中心,沒有統一規劃和統一標準,造成各業務部門數據資源不能順暢的流轉。為了解決這一問題,在數據轉換的時候統一數據格式,即在從不同業務部門提取數據之后,增加應用服務,將數據統一轉換為XML 文件格式,并按照數據轉換策略處理XML 文件,而后再將轉換結果存入目標數據庫。

圖1 橫向數據交換平臺架構
對于大型的煤炭企業集團,數據交換涉及部門較多,其子公司也是集團化運作,建立一個簡單的數據交換平臺是不夠的。本文設計三級交換中心,即集團級交換中心、子公司級交換中心和子公司的礦級交換中心,滿足煤炭企業集團與各業務部門、煤礦、子公司等業務單元縱向數據的傳輸與整合需求。
縱向部門之間的數據交換平臺架構如圖2 所示。圖2是一個以煤炭企業集團數據交換平臺為根節點的樹,下面分別建立了以各業務部門、煤礦、子公司等業務單元節點,子公司建立二級數據交換平臺,同樣是以數據交換平臺根節點的子樹。要進行數據交換的兩個業務端如果都在二級數據交換平臺下,就可以直接通過二級數據交換平臺進行交換,減輕了集團總部數據交換平臺數據交換壓力,提高數據交換效率。
數據交換平臺不但滿足橫向部門間的數據交換需求,同時要保障集團總部與子公司之間的自下而上的縱向的數據交換順暢,適合大型跨地域和跨行業多級管理的煤炭企業集團。數據交換平臺總體框架如圖3 所示,數據交換平臺由應用服務層、應用支撐層和傳輸層組成,應用服務層主要包括煤炭企業的信息平臺門戶網站、經營管理系統以及生產管理系統等各業務應用系統,另外本層為應用系統提供了平臺管理、接收管理、發送管理、調度管理、數據管理和數據字典等功能。應用支撐層在SOA 架構下與應用服務層相銜接,具有數據接收服務、數據發送服務、數據抽取服務、數據發布服務、交換調度器、郵件監聽器、接入服務和隊列監聽器等功能模塊,負責根據應用系統的需求對數據進行相應的數據處理。傳輸層支持基于消息、Web Service和HTTP 等多種協議,所有的接口都以Web Service的方式接入。

圖2 縱向數據交換平臺架構
現有的各業務系統由不同的廠商開發,所采用技術架構和開發平臺都是不同的,要想實現現有異構信息系統之間的信息數據共享,數據交換平臺選擇基于SOA 建立,因為SOA 的核心理念是業務驅動,采用松耦合、靈活的體系架構來滿足不斷變化的業務需求,并且不需要了解提供者的實現細節。
SOA 面向服務的體系結構將應用程序的不同功能模塊視為服務,采用中立方式為這些服務構建接口,實現它們的相互聯系。通過SOA 對企業現有資源進行構建,簡化業務流程,為企業節約大量的時間和資金。
XML文件格式目前廣泛應用在異構數據源的數據轉換上,XML 和以XML 為基礎的標準 (如Web Service)已經成為在很多企業和應用之間交換信息的機制。
XML是一套定義語義標記的規則,XML 是自描述性語言,具有很好的自解釋性,它不僅將文本組織成層次結構,還直接在文本中描述了自身的組織結構。其具有以下特點:
(1)XML 可以從HTML 中分離數據,使用XML 可以在HTML文件之外存儲數據;
(2)XML 數據是以純文本格式存儲的,XML提供了一種與軟件和硬件無關的數據共享方法;
(3)XML 可以充分利用數據;
(4)XML 具有可擴展性;
(5)XML 可以用于定義新的語言。

圖3 數據交換平臺總體框架

圖4 峰峰集團數據中心總體技術架構
編碼統一是企業信息化體系建設中的基礎性工作,信息編碼的一致性、完整性、易用性將直接影響信息系統的信息交互與 數據共享能力。本文通過建立核心元數據實現煤炭企業各業務系統之間信息編碼的統一。元數據是關于數據的數據,是有關數據源定義、目標定義和轉換規則等相關的關鍵數據。
核心元數據的構建要抓住重大且公共為先,對煤炭企業全集團的公共數據編碼進行統一編碼時,在編制過程中應著重解決業務影響范圍大和重要性強的數據編碼,如倉儲物資編碼、財務編碼以及客戶編碼等。
本文所設計的基于自主式ETL 的統一數據交換平臺已經在冀中能源峰峰集團有限公司數據中心中得以應用,數據中心總體技術架構如圖4所示。
系統總體技術架構包括數據源、企業數據通道、ODS、DW、OLAP、前端展示和ETL,具有高度先進性和可擴展性,能夠滿足業務需求的不斷變化和不斷增加的需求。
[1] 劉紀敏,王曉寧,張承明.基于.net的企業信息集成的設計與應用 [J].煤炭科學技術,2006 (10)
[2] 劉開南,董立紅 .礦業安全數據源質量評價研究[J].中國煤炭,2007 (8)
[3] 楊毅,孫超.基于數據倉庫的煤炭運銷決策支持系統研究 [J].中國煤炭,2009 (2)
[4] 韓曉冰,田豐 .數字化礦山中異構數據集成研究[J].煤炭科學技術,2009 (3)
[5] 趙洪建 .煤炭企業數據中心框架研究與應用探索[J].中國煤炭,2012 (7)
[6] 王振宇.煤炭企業智能綜合決策中心系統架構研究[J].煤炭經濟研究,2010 (2)
[7] 劉福國.基于數據挖掘的鋼球磨煤機運行特性建模和優化 [J].中國煤炭,2010 (5)
[8] 劉儒晨.TD 無線數據采集系統在煤炭行業的應用實踐 [J].中國煤炭,2011 (5)
[9] 常弋.現代企業輕量級的ETL實現方案 [J].煤炭技術,2011 (6)
[10] 徐桅,徐奇,陳海東.XML 技術在高速數據訪問接口中的應用 [J].工礦自動化,2011 (12)
[11] 程燦廣.煤炭企業虛擬化數據中心建設研究與探討[J].煤炭經濟研究,2012 (5)