天天看點

ETL常用的三種工具介紹及對比Datastage,Informatica

ETL是資料倉庫中的非常重要的一環,是承前啟後的必要的一步。ETL負責将分布的、異構資料源中的資料如關系資料、平面資料檔案等抽取到臨時中間層後進行清洗、轉換、內建,最後加載到資料倉庫或資料集市中,成為聯機分析處理、資料挖掘的基礎。下面給大家介紹一下什麼是ETL以及ETL常用的三種工具(Datastage,Informatica,Kettle)!

1.ETL是什麼?

ETL,是英文 Extract-Transform-Load 的縮寫,用來描述将資料從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。(資料倉庫結構)通俗的說法就是從資料源抽取資料出來,進行清洗加工轉換,然後加載到定義好的資料倉庫模型中去。目的是将企業中的分散、零亂、标準不統一的資料整合到一起,為企業的決策提供分析依據。ETL是BI項目重要的一個環節,其設計的好壞影響生成資料的品質,直接關系到BI項目的成敗。

2.為什麼要用ETL工具?

▶ 當資料來自不同的實體主機,這時候如使用SQL語句去處理的話,就顯得比較吃力且開銷也更大。

▶ 資料來源可以是各種不同的資料庫或者檔案,這時候需要先把他們整理成統一的格式後才可以進行資料的處理,這一過程用代碼實作顯然有些麻煩。

▶ 在資料庫中我們當然可以使用存儲過程去處理資料,但是處理海量資料的時候存儲過程顯然比較吃力,而且會占用較多資料庫的資源,這可能會導緻資料資源不足,進而影響資料庫的性能。

上面所說的問題,我們用ETL工具就可以解決。它的優點有:

● 支援多種異構資料源的連接配接。(部分)

● 圖形化的界面操作十分友善。

● 處理海量資料速度快、流程更清晰等。

3.ETL工具介紹

ETL常用的三種工具介紹及對比Datastage,Informatica

Informatica和Datastage占據國内市場的大部分的份額。

4.ETL工具差異

Kettle,Datastage,Informatica三個ETL工具的特點和差異介紹:

ETL常用的三種工具介紹及對比Datastage,Informatica

操作

都是屬于比較簡單易用,主要是開發人員對于工具的熟練程度。Informatica有四個開發管理元件,開發的時候我們需要打開其中三個進行開發,Informatica沒有ctrl+z的功能,如果對job作了改變之後,想要撤銷,傳回到改變前是不可能的。相比Kettle跟Datastage在測試調試的時候不太友善。Datastage全部的操作在同一個界面中,不用切換界面,能夠看到資料的來源,整個job的情況,在找bug的時候會比Informatica友善。Kettle介于兩者之間。

ETL常用的三種工具介紹及對比Datastage,Informatica

部署

Kettle隻需要JVM環境,Informatica需要伺服器和用戶端安裝,而Datastage的部署比較耗費時間,有一點難度。

ETL常用的三種工具介紹及對比Datastage,Informatica

資料處理的速度

大資料量下Informatica 與Datastage的處理速度是比較快的,比較穩定。Kettle的處理速度相比之下稍慢。

ETL常用的三種工具介紹及對比Datastage,Informatica

服務

Informatica與Datastage有很好的商業化的技術支援,而Kettle則沒有。商業軟體的售後服務上會比免費的開源軟體好很多。

ETL常用的三種工具介紹及對比Datastage,Informatica

風險

風險與成本成反比,也與技術能力成正比。

ETL常用的三種工具介紹及對比Datastage,Informatica

擴充

Kettle的擴充性無疑是最好,因為是開源代碼,可以自己開發拓展它的功能,而Informatica和Datastage由于是商業軟體,基本上沒有。

ETL常用的三種工具介紹及對比Datastage,Informatica

Job的監控

三者都有監控和日志工具。在資料的監控上,個人覺得Datastage的實時監控做的更加好,可以直覺看到資料抽取的情況,運作到哪一個控件上。這對于調優來說,我們可以更快的定位到處理速度太慢的控件并進行處理,而informatica也有相應的功能,但是并不直覺,需要通過兩個界面的對比才可以定位到處理速度緩慢的控件。有時候還需要通過一些方法去查找。

ETL常用的三種工具介紹及對比Datastage,Informatica

網上的技術文檔

Datastage < Informatica < kettle,相對來說,Datastage跟Informatica在遇到問題去網上找到解決方法的機率比較低,kettle則比較多。

5.項目經驗分享

多張表同步、重複的操作:在項目中,很多時候我們都需要同步生産庫的表到資料倉庫中。一百多張表同步、重複的操作,對開發人員來說是細心和耐心的考驗。在這種情況下,開發人員最喜歡的工具無疑是kettle,多個表的同步都可以用同一個程式運作,不必每一張表的同步都建一個程式,而informatica雖然有提供工具去批量設計,但還是需要生成多個程式進行一一配置,而datastage在這方面就顯得比較笨拙。

增量表:在做增量表的時候,每次運作後都需要把将最新的一條資料操作時間存到資料庫中,下次運作我們就取大于這個時間的資料。Kettle有控件可以直接讀取資料庫中的這個時間置為變量;對于沒有類似功能控件的informatica,我們的做法是先讀取的資料庫中的這個時間存到檔案,然後主程式運作的時候指定這個檔案為參數檔案,也可以得到同樣的效果。

ETL常用的三種工具介紹及對比Datastage,Informatica
ETL常用的三種工具介紹及對比Datastage,Informatica

有一句話說的好:世上沒有最好的,隻有适合的!每一款ETL工具都有它的優缺點,我們需要根據實際項目,權衡利弊選擇适合的ETL工具,合适的就是最好的。當下越來越多公司及其客戶更重視最新的資料(實時資料)展現,傳統的ETL工具可能滿足不了這樣的需求,而實時流資料處理和雲計算技術更符合。是以我們也需要與時俱進,學習大資料時代下的ETL工具