ETL和EAI之間的關系與區別
一、什么是EAI?
企業的業務流程會同時涉及到多個應用系統,因此要求這些系統能夠協同,但接口、架構的不統一往往使得這些本應緊密集成的應用系統成為了一個個“信息孤島”。于是,企業應用集成(Enterprise Application Integration,EAI)技術應運而生,它可以通過中間件作為粘合劑來連接企業內外各種業務相關的異構系統、應用以及數據源,從而滿足E-Commerce、ERP、CRM、SCM、OA、數據庫、數據倉庫等重要系統之間無縫共享和交換數據的需要。EAI 涉及技術廣泛,實施復雜。
基本特征
EAI 的核心是使用中間件連接企業應用。有多種不同類型的中間件可以提供 EAI 的功能。在選擇 EAI 中間件時需注意以下的基本特征:
◆通過中間件將不同的應用連接起來,保證應用的獨立性,在不需要修改應用自身的業務邏輯的同時,又解決了數據共享問題。
◆對核心共享業務數據模型的處理與支持。
◆實現業務流程自動化。確保各個部門在采用不同的系統的同時可以協同完成同一個工作。
◆支持應用架構的不斷變更。可以方便地重新配制以增加或去除系統而不會影響其它系統。
◆能夠提供實時接口和批處理接口,能夠提供同步和異步接口。
◆必須保證數據的安全,只有目的應用可以讀取。
◆良好的性能和數據吞吐量,并且具有靈活的可擴展性以適應企業的發展。
◆必須具備恢復機制,當數據傳輸過程中發生連接中斷等異常時可以確保數據的恢復。
◆對流程管理提供預定義的通用模型與行業模型。
◆既能夠提供實時接口和批處理接口,又能夠提供同步和異步接口。
◆能夠提供實時接口和批處理接口,能夠提供同步和異步接口。
五大層面
一個完整的 EAI 解決方案應當包含以下五個層面:
◆用戶交互:實現應用用戶界面統一的接入與安全機制,利用門戶技術進行構建。
◆應用連接:通過 HUB 或總線架構,實現應用與應用之間的連接,完成相關的數據路由與數據格式轉換。
◆業務流程整合:實現業務流程管理,包括工作流管理和自動化流程兩個方面。
◆構建整合:這個層面包含兩個部分,一部分是構建與現有應用兼容的新應用,另一部分是對現有資源進行重用以適應新環境的需要。
◆信息集成:實現數據集成,在異構的數據源之間實現數據層的直接整合。
相關技術
EAI 解決方案通常涉及到 JCA、JMS、Web 服務以及 XML 等多種企業級技術。這些技術都已經成為業界的標準,從而可以***化地保護客戶投資。這些技術既可以被包含在相關產品中供用戶透明地使用,也可以由用戶自己在應用程序中加以調用。此外,SOA(面向服務的架構)隨著各大廠商的追捧而變得炙手可熱。雖然 SOA 本身不是一個全新的概念, 但由于 Web 服務以及網格計算等技術的成熟,SOA 具備了更好的發展條件。對于 EAI 來說,基于 SOA 的企業應用系統可以隨著企業業務的變化而逐漸變化,能夠實現“柔性化”的軟件系統,從而降低實施EAI 的成本和風險,因此我們可以說 SOA 的興起給了 EAI 廠商一個新的機會。
#p#
二、什么是ETL?
ETL即數據抽取(Extract)、轉換(Transform)、裝載(Load)的過程。它是構建數據倉庫的重要環節。數據倉庫是面向主題的、集成的、穩定的且隨時間不斷變化的數據集合,用以支持經營管理中的決策制定過程。數據倉庫系統中有可能存在著大量的噪聲數據,引起的主要原因有:濫用縮寫詞、慣用語、數據輸入錯誤、重復記錄、丟失值、拼寫變化等。即便是一個設計和規劃良好的數據庫系統,如果其中存在著大量的噪聲數據,那么這個系統也是沒有任何意義的,因為“垃圾進,垃圾出”(garbage in, garbage out),系統根本就不可能為決策分析系統提供任何支持。為了清除噪聲數據,必須在數據庫系統中進行數據清洗。目前有不少數據清洗研究和ETL研究,但是如何在ETL過程中進行有效的數據清洗并使這個過程可視化,此方面研究不多。
本文主要從兩個方面闡述ETL和數據清洗的實現過程:ETL的處理方式和數據清洗的實現方法。
1.ETL的處理方式
本文所采用的ETL方法是數據庫段區域中的ETL處理方式,它不使用外部引擎而是使用數據庫作為唯一的控制點。由于源系統SQLserver2000是關系數據庫,它的段表也是典型的關系型表。成功地將外部未修改數據載入數據庫后,再在數據庫內部進行轉換。數據庫段區域中的ETL處理方式執行的步驟是提取、裝載、轉換,即通常所說的ELT。這種方式的優點是為抽取出的數據首先提供一個緩沖以便于進行復雜的轉換,減輕了ETL進程的復雜度。
2.ETL過程中實現數據清洗的實現方法
首先,在理解源數據的基礎上實現數據表屬性一致化。為解決源數據的同義異名和同名異義的問題,可通過元數據管理子系統,在理解源數據的同時,對不同表的屬性名根據其含義重新定義其在數據挖掘庫中的名字,并以轉換規則的形式存放在元數據庫中,在數據集成的時候,系統自動根據這些轉換規則將源數據中的字段名轉換成新定義的字段名,從而實現數據挖掘庫中的同名同義。
其次,通過數據縮減,大幅度縮小數據量。由于源數據量很大,處理起來非常耗時,所以可以優先進行數據縮減,以提高后續數據處理分析效率。
***,通過預先設定數據處理的可視化功能節點,達到可視化的進行數據清洗和數據轉換的目的。針對縮減并集成后的數據,通過組合預處理子系統提供各種數據處理功能節點,能夠以可視化的方式快速有效完成數據清洗和數據轉換過程。
三、ETL與EAI 之間的關系
隨著這種集成的增多,企業信息系統之間需處理的數據量也將越來越大,數據的傳輸將變得越來越復雜。ETL越來越適合用于這種數據處理的工作,并逐漸挑戰傳統 EAI(enterprise application integration)在系統集成中的地位了。
最初 ETL 的設計是為了方便建立數據市場和數據倉庫,并將它們升級為批處理方式。而下一代的 ETL 工具則在許多功能上做了擴展,使其能夠適用于企業的應用集成,并且其中的一些工具將能夠起到 EAI 某些工具的作用。
但是 ETL 還不能取代EAI,下一代ETL在應用集成領域中還只是EAI的補充。但是隨著ETL技術的發展,企業在建立基于批處理數據倉庫的系統集成工具時,將越來越關注對ETL的選擇,同時EAI和ETL之間的界限也將變得越來越模糊。
四、ETL與EAI 之間的區別
ETL 工具適合數據集成, EAI 工具則適用于流程操作。下一代 ETL 工具更加適用于解決兩個系統間數據的批量或者實時同步工作,特別是當大量巨大的數據在兩個系統間提取、轉換和存儲時, ETL 的優勢更加明顯。 EAI 則適用于工作流和商業流程管理的需求,特別是擅長處理大量小事務。
對于交互式流程,如果它沒有擴展工作流的需求,沒有復雜數據的轉換的需求,或者需要批量實時數據的合并處理,則ETL工具將是比較好的選擇。
ETL工具比較適合于數據集成的工作,如應用系統之間的數據同步和點對點的單步交互工作;需要實時數據處理的工作中包含了大量的數據處理、復雜的數據傳輸和數據運算,它同樣適合采用 ETL 工具。上面這些工作,即便是有些具體的處理需要通過 EAI 工具編程實現,我們還是可以用 ETL中的工具來處理。因為 ETL工具主要是通過關系型數據庫來實現大量數據操作的,所以使用這類工具來傳輸大塊的數據將取得更好的效果。
EAI 工具無疑是最適合流程集成的工具,如果流程中包含了大量的傳輸,那么它就必然包含了對業務流程的管理和實時交互的流程。
【編輯推薦】
【責任編輯:夏宗繁 TEL:(010)68476606】