王振宇 陳紅星 劉道園
(煤炭科學研究總院,北京市朝陽區,100013)
煤炭企業數據中心ETL智能化調度研究*
王振宇 陳紅星 劉道園
(煤炭科學研究總院,北京市朝陽區,100013)
ETL(Extraction Transformation Loading)作為煤炭企業數據中心建設過程中的重要環節,通常需要人為調度來實現數據的抽取、轉換、清洗以及裝載,數據挖掘的實時性和便利性存在著很大局限。本文對ETL調度過程進行研究,提出了智能化調度策略,實現了數據調度無需人工干預即可按照預定規則執行。經過煤炭企業數字化礦山建設項目的應用實例檢驗后,證明了此方案的可行性。
數據中心 數據挖掘 ETL 智能調度
隨著國家對數字化礦山建設的有效推進和煤炭企業的快速發展,國內很多煤炭企業都建立了自己的數據中心以適應各種生產數據、經營數據、管理數據的爆炸性增長以及為管理層分析決策提供支持。其中數據倉庫是數據中心建設過程的核心內容,而ETL過程又是數據倉庫過程中的關鍵一環。由于井下生產環境的復雜性,安全相關的監控數據隨時產生,而當前的ETL工具大都需要人為觸發調度才能夠實現數據抽取、轉換、裝載到數據倉庫。在這種情況下,數據達到數據倉庫的時間存在滯后性,具有很大的誤判率,為數據分析決策埋下安全隱患。因此,一種數據挖掘過程的智能化調度方案急需問世。
由于煤炭企業各地區各部門信息化發展程度的差異以及各部門的操作系統平臺、數據模式、數據庫類型等等的不同,導致了資源分散、各部門各自為政、互不通訊、互不兼容,形成了諸多信息孤島,致使整個煤炭企業管理部門的數據應用水平不高,綜合分析能力較弱,難以為決策者提供綜合、高效、準確的信息。企業生產經營活動所產生的信息量逐漸增大,真正具有直接利用價值的數據卻很少,需要對大量的數據信息進行更深層次地過濾與分折,以發現和挖掘內在關聯、有利于提高企業競爭力、為領導決策提供依據和用戶所需要的信息。這就是企業競爭對數據中心建設的需要,而數據中心建立的首要問題就是ETL過程:按照預先定義的規則,將分布在多處的數據源數據經過清洗、過濾匯聚到規模龐大的數據倉庫中。
數據中心把數據源和目標數據庫分開,系統從最左邊的數據源開始抽取數據,經過清洗、轉換后傳輸裝載到右邊的目標數據庫。數據中心整體框架示意圖如圖1所示。

圖1 數據中心整體框架示意圖
在同一業務系統中可能會遇到多種數據源的情況,因此要對各種工具提供的數據源接口類型深入了解。比如,針對同一種數據庫使用原廠商自己的專用接口還是通用接口(JDBC/ODBC),數據抽取的效率將會有較大差別,這直接影響到在有限的時間內能不能完成預訂的數據交換任務。考慮到數據交換的擴展性和通用性,應該盡可能地支持常用數據源對象。目前,煤炭系統數據中心常用的數據源對象(數據源類型)包括數據庫、數據文件和消息隊列3種。
(1)數據庫。主要支持的數據庫包括Oracle、SQL Server、DB2、MySQL等主流數據庫。
(2)數據文件。支持的文件類型包括有分隔符的TXT、Excel、CSV、XML等格式的文件。
(3)消息隊列。由客戶端API傳來的數據或者是消息隊列傳來的數據,以數據流的形式存儲,經過處理后的數據也可以以數據流的形式輸出或放到消息隊列中,由消息中間件作可靠的傳輸處理。
在煤炭企業內部所用的業務系統中,由于對業務系統的研發一般都有一個較長的時間周期,這就造成一種數據在業務系統中可能會存在多種不同的數據類型和存儲格式,造成了各個不同數據源之間的關鍵字不一致、度量單位不統一、字符編碼不一致、字段命名不一致、數據記錄的合并與拆分不一致、增量數據維護以及數據清洗規則不統一等問題,甚至還有許多數據倉庫中所要求的數據在業務系統中并不直接存在,而是需要根據某些算法公式或者某些計算公式對各部分數據進行運算才能得到。因此,這就要求ETL必須對所抽取到的數據能夠進行靈活的計算、合并、拆分、過濾、排序、映射、笛卡爾積等轉換操作。經轉換后的數據,可以直接裝載到目標數據倉庫,也可以通過消息中間件以消息的方式傳輸到遠程目標。
當數據源中的數據發生變化時,ETL智能化調度能夠將新增的數據自動傳到數據倉庫內,無需人工觸發即可執行ETL過程,這樣在減少勞動力和降低企業成本的同時,提高了企業生產運營效率。
在煤炭生產現場突然監測到威脅井下作業人員安全的數據后,為了在盡可能短的時間內讓這些數據到達數據中心進而為分析決策提供支持,就需要讓ETL過程能夠自動觸發調度。具體策略為利用數據庫的觸發器機制完成自動觸發,通過觸發器建立存儲過程,再通過存儲過程調用ETL過程。一旦數據源中的數據有增量,數據庫會自動觸發調度ETL實現增量抽取,從而實現數據實時到達數據倉庫內。然而,TXT、Excel、CSV以及XML等類型的數據源文件由于自身技術的限制,采用上述增量觸發的方式難度較大,但是可以采用定時執行機制,即讓ETL經過一定的時間間隔自動執行,為了不影響執行效率,最短可以設定到1s。
觸發器實際上是一種特殊的存儲過程,當某一個數據庫表的數據發生變化時,它隱藏式地被觸發執行,它比數據庫本身標準的功能有更精細和更復雜的數據控制能力。下面以Oracle數據庫為例講解其觸發調度實現過程:首先準備好ETL調度程序ETLRun.Class,在$ORACLE_HOME/bin目錄下有個LOADJAVA命令,使用此命令可將ETLRun.Class程序加載到Oracle數據庫中。進入到Oracle數據庫,在SQLPLUS命令行輸入create or replace procedure Modify(name varchar)as languagejava name'ETLRun.modifyjava.lang.String'執行命令后系統會提示創建存儲過程成功。最后,在Oracle數據庫管理工具TOAD里直接針對某個表增加觸發器trigger,關鍵代碼如下:
begin
if:old.name='time'then
Modify(:new.value);
end if;
end;至此,在Oracle的觸發器trigger里,一旦有數據插入就可以自動調用ETL過程。
這里的定時指的是根據預定的時間間隔大小循環執行或者單次執行,煤炭行業常用方式是循環執行。基于Java的循環執行相對簡單,只要采用schedule方法的另一個重載函數public void schedule(TimerTask task,long delay,long period)即可實現,其中第1個參數task指要執行的任務名稱,第2個參數delay指延遲時間,第3個參數就是時間間隔,它是個long型的毫秒數,如果希望一個ETL任務執行1次/min,第3個參數值就要賦值為60×1000。
以上兩種智能化調度方式可以根據實際項目需要來進行選擇,頻繁地觸發調度會使線程堆積,影響執行效率,如果客戶對數據的實時性要求不高,或者數據源數據增量少且不頻繁,建議選擇數據庫觸發器方式;而如果用戶數據的增量較為頻繁且數據量又大,建議采用定時機制。

圖2 定時觸發調度配置窗口
本文所研究的ETL智能化調度策略已經在峰峰集團梧桐莊礦數字化礦山建設中得以應用,由于梧桐莊礦現有數據源使用的是SQL Server數據庫,源數據為生產數據,數據量大,實時性要求不高,因此選擇基于定時機制進行智能化觸發調度,并以可視化配置的方式為用戶服務。首先按照預定規則對ETL過程進行配置,然后根據實際需要設定執行時間,如圖2所示,用戶一旦啟動Job定時功能,ETL過程將按照預設時間循環執行,滿足配置的智能化需求。
目前,數據中心ETL的應用已經相當廣泛,并向著集成化、智能化方向發展,越少的人工干預就越體現出其在同類產品中的優越性。本文針對不同的數據源提出的兩種ETL調度方法解決了以往ETL過程調度的實時性問題。然而,本文提出的方法由于數據源的千變萬化存在著局限性,探索一套通用的自動ETL調度機制,使其更加實時、自動、高效和智能仍是下一步研究的重點。
[1] 楊學瑜,顧合英.數據挖掘在選煤中的應用探討[J].中國煤炭,2004(4)
[2] 楊毅,孫超.基于數據倉庫的煤炭運銷決策支持系統研究[J].中國煤炭,2009(2)
[3] 葛斌,孟祥瑞,柏杏麗.煤炭企業ERP理論及應用技術研究[J].中國煤炭,2004(7)
[4] 王建偉.煤炭企業如何實施ERP系統[J].中國煤炭,2002(5)
[5] 劉福國.基于數據挖掘的鋼球磨煤機運行特性建模和優化[J].中國煤炭,2010(5)
[6] John Poole等.公共倉庫元模型數據倉庫集成標準導論[M].北京:機械工業出版社,2004
[7] 何雪利.數字化校園建設中ETL技術實現數據集成[J].計算機工程應用技術,2010(6)
Research on ETL intelligent scheduling in data center of coal enterprises
Wang Zhenyu,Chen Hongxing,Liu Daoyuan
(China Coal Research Institute,Chaoyang,Beijing 100013,China)
ETL(Extraction Transformation Loading),being an important link in the construction of Data Center,usually needs manual scheduling to achieve the data extraction,transformation,cleaning and loading.Thus it can be seen that there is a major limitation on the realtime performance and the convenience.Therefore,the scheduling process of ETL was studied,and the intelligent scheduling strategy was proposed,without manual intervention.That is to say,the ETL process can automatically perform according to predetermined rules.A datamation construction project of a coal enterprise proved the feasibility of this scheme.
data center,data mining,ETL,intelligent scheduling
TD76
A
國家科技支撐計劃課題——《煤礦安全高可靠性監控系統關鍵技術研究——監控系統數據可靠性和挖掘技術研究及示范》(2009BAK54B05)
王振宇(1977-),男,北京人,高級工程師,主要從事煤炭企業信息化、數字化礦山、煤炭企業數據中心、信息化集成控制、管理信息系統方面的科研及應用工作。
(責任編輯 路 強)