开源ETL软件在智能化集成系统中的应用
來源:http://www.qianjia.com/html/2009-03/57084.html
摘要:提出了在智能化集成系統中通過開源ETL軟件Kettle對數據庫類型的子系統進行信息采集的方案,并通過實際的實施案例驗證了所提出的整合方案的可行性及其優勢。
關鍵詞:開源軟件、ETL、Kettle、ezIBS
?
智能化集成系統將不同功能的建筑智能化系統,通過統一的信息平臺實現集成,從而形成了具有信息匯集、資源共享及優化管理等綜合功能的系統。經過十余年的發展,智能化集成系統已經具有了豐富的功能,并在各種類型的智能建筑中都得到了廣泛應用。
智能化集成系統實現的基礎及其最基本的功能是對各智能化子系統進行數據通信、信息采集和綜合處理。智能化集成系統在對門禁系統、消費系統、考勤系統、停車場管理系統等常見子系統進行集成時,子系統的人員進出記錄、刷卡記錄、收費記錄等都是必須進行采集的信息。這些信息一般都按照子系統自定義的數據格式、保存在子系統的數據庫中,而集成系統對這些信息的采集方式也正是從子系統數據庫中讀取關心的數據、進行格式轉換、然后存入集成系統的數據庫中。因此,數據庫讀取、轉換和保存技術已經成為智能化集成系統中必不可少的一項關鍵技術。
?
1.?智能化集成系統中常見的數據轉換技術的比較分析
智能化集成系統對子系統數據庫進行數據讀取和轉換時,主要有3種實現方案,分別是:
(1)???自行開發數據庫讀取和轉換軟件,數據讀取和轉換規則寫死在程序代碼里;
(2)???使用第三方開發包或自行開發可配置的數據轉換軟件,數據讀取和轉換規則寫在配置文件當中;
(3)???自行開發或使用第三方的可視化數據轉換軟件,數據讀取和轉換規則通過圖形界面來配置。
顯而易見,第三種是最優的方案,也是集成系統工程實施效率最高、對調試人員技術水平要求最低的方案。
實際上,第三種方案中提到的可視化數據轉換軟件就是我們常說的ETL(Extract-Transform-Load,即數據抽取、轉換、裝載)工具軟件。ETL工具軟件是構建數據倉庫的重要一環,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。
圖1 ETL體系架構
除了自行開發ETL軟件之外,市面上還有很多現成的ETL工具軟件可供選擇,既有商業軟件,也有開源軟件,我們經過多方對比分析后,最終選擇了使用開源軟件Kettle作為同方ezIBS智能化集成系統的ETL工具。
?
2. ezIBS智能化集成系統選擇Kettle作為ETL工具的理由
(1)?Kettle是一款由Pentaho公司開發的功能強大的開源?ETL工具軟件。Kettle具有可視化的流程設計工具,良好的插件擴展功能,支持集群操作。可以說,Kettle是目前開源世界里功能最全的一款ETL工具。Kettle軟件的名稱很有意思,直譯是水壺。按項目負責人Matt的說法:把各種數據放到一個壺里,然后呢,以一種你希望的格式流出。
(2)?Kettle是一款開源產品,本身是免費的,成本主要是培訓和咨詢,所以成本會一直維持在一個較低水平;且由于價格上的優勢,開源產品可以在很大程度上降低項目的風險。2008年是開源軟件界風起云涌的一年,開源軟件進入了越來越多軟件開發廠商的視野。對于具有一定軟件開發實力的廠商來說,選擇開源軟件作為自己產品的補充這種方式也越來越流行,因為他們不僅僅是軟件的簡單使用者,更重要的是有信心能夠解決使用開源軟件中遇到的各種問題、并對開源軟件進行優化和擴展。
(3)?Kettle與ezIBS智能化集成系統一樣,都是使用JAVA平臺開發,所以在平臺移植性方面支持的非常好,無論是Windows還是LINUX/UNIX都可以方便的使用。
?
3.?在ezIBS智能化集成系統中整合Kettle軟件
Kettle實際上是一個ETL軟件包,它含有以下幾個主要模塊:
l??Spoon(鏟子):用來設計數據轉換(transformation)和工作(job)的圖形化設計工具;
l??Pan(平底鍋):用來執行Spoon設計的數據轉換任務的命令行工具;
l??Chef(廚師):舊版本的數據轉換設計工具,已被Spoon取代,新版的Kettle發行包已經不含有此模塊;
l??Kitchen(廚房):用來執行Chef設計的數據轉換任務的命令行工具,出于兼容性的考慮仍被保留;
l??Carte(菜單):可以遠程執行數據轉換任務的Web服務器。
從上面的模塊列表可以看到,Kettle缺少一項非常重要的功能-時間調度,也就是可以用來定時執行Kettle的數據轉換任務的軟件模塊。使用Pan工具只能在其命令行程序被執行的時候運行一次數據轉換任務,而無法周期性的運行。這對于生產環境下的軟件系統來說是無法滿足要求的,因為我們必須定期的去檢查子系統數據庫是否產生了變化。
將Kettle軟件集成到ezIBS智能化集成系統中、將它們作為一個整體來使用,對于ezIBS集成系統來說輕而易舉。因為ezIBS集成系統本身就含有一個完善的任務時間排程功能引擎(見圖2),可以用來定時執行由Spoon設計的數據轉換任務,并能監控任務的執行狀態和結果。
圖2 ezIBS集成系統的任務時間排程功能引擎
?
4.?使用ezIBS及Kettle軟件進行數據庫子系統集成的實際案例
4.1?任務目標
將某門禁系統數據庫中的持卡人信息抽取到ezIBS集成系統數據庫中,并對兩個數據庫中的數據進行定時同步。
4.2?使用Spoon工具設計數據轉換任務
(1)設計數據轉換流程
使用Spoon軟件中的表輸入、字段選擇、數據過濾、更新、表輸出等控件設計將門禁數據庫中的數據抽取到ezIBS數據庫的任務執行流程。Spoon軟件的設計界面示意圖見圖3。
(2)數據抽取(Extract)
在任務流程上的“表輸入”控件中填寫從門禁系統數據庫查詢數據的SQL語句。數據抽取主要是針對各個子系統及不同節點的分散數據,充分理解數據定義后,規劃需要的數據源及數據定義,制定可操作的數據源,制定增量抽取的定義。
(3)數據傳輸
此步驟在流程圖中表現為箭頭,用來連接各步驟的控件,起到承上起下的作用。
(4)數據轉換(Transform)
在“字段選擇”控件中修改門禁數據庫和ezIBS數據庫中的字段對應關系,例如圖3中的下面一行代表的意思是:持卡人的卡號在門禁數據庫中的字段名稱為KEY_NUMBER,而在ezIBS數據庫中的字段名稱為card_id,在數據轉換時要將門禁系統的KEY_NUMBER數據轉換為ezIBS系統的card_id數據。
(5)數據加載入庫(Load)
使用“表輸出”或“更新”控件將轉換好的數據存入ezIBS數據庫。數據加載主要是將經過轉換和清洗的數據加載到數據倉庫里面,即入庫,操作者可以通過數據文件直接裝載或直連數據庫的方式來進行數據裝載,充分地體現其高效性。
圖3?使用Spoon設計數據轉換任務的界面示意圖
4.3?在ezIBS系統中設置數據轉換任務的時間排程
(1)新建數據庫任務策略
Kettle不支持調度,一般只能使用操作系統自帶的調度功能。ezIBS提供了功能強大的日程管理調度,比起Windows自帶的任務計劃更多了優先級、星期等的選擇,實現了與Kettle的無縫銜接。
ezIBS的時間排程功能十分簡單易用,首先在任務管理界面上將Spoon輸出的ktr和ktj文件上傳(見圖4),然后在日程管理界面上設置數據轉換任務的執行時間、循環次數(例如:每隔一分鐘執行一次數據轉換任務進行數據同步)等參數即可(見圖2)。
圖4?在ezIBS系統中新建Kettle任務策略
(2)監控數據庫任務的執行狀態和結果
ezIBS系統對所有任務策略的執行情況進行監控,以保證任務策略能夠正確、穩定運行,并在發現錯誤或出現問題時通過電子郵件等方式通知管理員。
圖5?在ezIBS系統中監控數據轉換任務的運行狀態
5.?結語
Kettle軟件在智能化集成系統中的應用,使得各個集成模塊可以實時、準確、高效的從子系統的數據庫中取得需要的數據,并避免了自己開發數據轉換接口的效率低下和開發周期長等缺點。由于Kettle是一個開源工具,其免費、廣泛的技術支持也使開發成本降到最低。
通過將開源軟件在ezIBS智能化集成系統中進行更廣泛的應用,同時結合其本身開放性、安全性、易用性等特點,在品牌和規模優勢的情況下,隨著時間的推移和技術的持續發展,開源軟件對ezIBS智能化集成系統的影響將繼續擴展,并幫助其實現更多的功能。
?
【參考文獻】
[1]?鄒超群、徐珍喜,智能建筑軟件接口技術綜述,智能建筑,2007(1)(2)
[2]?開源技術選型手冊,電子工業出版社,2008.5
|
總結
以上是生活随笔為你收集整理的开源ETL软件在智能化集成系统中的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Grid Search 网格搜索 介绍「
- 下一篇: java信息管理系统总结_java实现科