轉:三大主流ETL工具選型

wmlm發表於2007-06-28

做資料轉換有不短的時間了,積累的經驗不能滿足新增的需求,上網找了一些ETL的資料,記錄之,供參考

[@more@]

<embed>
--&gt

--&gt


BI專案中最耗費人力的環節是什麼?恐怕還要數ETL(抽取、轉換和裝載)工具。在傳統的非BI專案中同樣存在很多“導資料”的工作,那麼,在資料倉儲中又該如何選擇合適的ETL工具來支撐抽取、轉換和裝載三個細分步驟?本期專欄就選取三個主流工具做一選型評析。

ETL產品乍看起來似乎並不起眼,單就此項技術本身而言,幾乎也沒什麼特別深奧之處,但是在實際專案中,卻常常在這個環節耗費太多的人力,而在後續的維護工作中,更是經常讓人傷透腦筋。之所以出現這種狀況,恰恰與專案初期沒有正確估計ETL工作、沒有認真考慮其工具的功能有很大關係。

在此,主要列舉三種主流ETL產品。

旗鼓相當 Datastage與Powercenter
就Datastage和Powercenter而言,這兩者目前佔據了國內市場絕大部分的份額,從成本上看水平相當,雖然市面上還有諸如Business Objects公司的Data Integrator、Cognos公司的DecisionStream,但尚屬星星之火,未成燎原之勢。

談Datastage和Powercenter,如果有人說這個就是比那個好,那聽者就要小心一點了。在這種情況下有兩種可能: 他或者是其中一個廠商的員工,或者就是在某個產品上有很多經驗,而在另一產品上缺乏經驗的開發者。為什麼得出這一結論?一個很簡單的事實是,從網路上大家對它們的討論和爭執來看,基本上是各有千秋,都有著相當數量的成功案例和實施高手。確實,工具是死的,人才是活的。

在兩大ETL工具技術的比對上,可以從以下五個方面考慮。

一個專案中,從資料來源到最終目標表,多則上百個ETL過程,少則也有十幾個。這些過程之間的依賴關係、出錯控制以及恢復的流程處理,都是選擇工具時需要重點考慮的。在這一方面,Datastage的早期版本對流程就缺乏考慮,而在後來則加入Job Sequence的特性,可以將Job、shell指令碼用流程圖的方式表示出來,依賴關係、序列或是並行都可以一目瞭然。Powercenter有Workflow的概念,也同樣可以將Session串聯起來,這和Datastage Sequence大同小異。

ETL的後設資料包括資料來源、目標資料的結構、轉換規則以及過程的依賴關係等。在這方面,Datastage和Powercenter從功能上看可謂不分伯仲,只是後者的後設資料更加開放,存放在關聯式資料庫中,可以很容易被訪問。此外,這兩個廠家又同時提供專門的後設資料管理工具,Ascential有Metastage,而Informatica擁有Superglue。你看,就不給你全部功能,變著法子從你口袋裡面多掏點錢。

資料質量方面,兩種產品都採用同樣的策略—獨立於ETL產品之外,另外有專門的資料質量管理產品。例如和Datastage配套用的有ProfileStage和QualityStage,而Informatica最近也索性收購了原先OEM的資料質量管理產品FirstLogic。

在具體實現上看,Datastage透過Job實現一個ETL過程,執行時可以透過指定不同引數執行多個例項。Powercenter透過Mapping表示一個ETL過程,執行時為Session,繫結了具體的物理資料檔案或表。在修改維護上,這兩個工具都是提供圖形化介面。這樣的好處是直觀、傻瓜式的;不好的地方就是改動還是比較費事的。

定製開發方面,兩者都提供抽取、轉換外掛的定製,但筆者認為,Datastage的定製開發性要比Powercenter強那麼一點點。因為Datastage至少還內嵌一種類BASIC語言,可以寫一段批處理程式來增加靈活性,而Powercenter似乎還缺乏這類機制。

總起來看,Datastage和Powercenter可謂旗鼓相當,在國內也都有足夠的支援能力。Datastage在2005年被IBM收購之後,可以說後勁十足,而Informatica則朝著BI全面解決方案提供商的方向發展,Powercenter顯然還是它的核心產品。

獨樹一幟 NCR Teradata的Automation
第三種產品是NCR Teradata的Automation。之所以拿它單獨來說,是因為它和前面兩種產品的體系架構都不太一樣。與其說它是ETL工具,不如說是提供了一套ETL框架。它沒有將注意力放在如何處理“轉換”這個環節上,而是利用Teradata資料倉儲本身的並行處理能力,用SQL語句來做資料轉換的工作,其重點是提供對ETL流程的支援,包括前後依賴、執行和監控等。

這樣的設計和Datastage、Powercenter風格迥異,後兩者給人的印象是具有靈活的圖形化介面,而 Automation,有人說它其實應該叫做ELT,即裝載是在轉換之前的。的確,如果依賴資料倉儲的能力去處理轉換,恐怕只能是ELT,因為轉換隻能在資料倉儲內部進行。從這個角度看,Automation對資料倉儲的依賴不小,似乎是一種不靈活的設計。也正是這個原因,考慮它的成本就不單單是ETL產品的成本了。

其實,在購買現成的工具之外,還有自己從頭開發ETL程式的。有人用C語言編寫,有人用儲存過程,還有人用各種語言混雜開發,程式之間各自獨立。這很危險,雖然能夠讓開發者過足編碼的癮,卻根本不存在架構。

有位銀行的朋友,他們幾年前上的資料倉儲系統,就是整合商自己用C語言專門為他們的專案開發的。單從效能上看似乎還不錯,然而一兩年下來,專案組成員風雨飄零,早已物是人非,只有那套程式還在那裡;而且,按照國內目前的軟體工程慣例,程式註釋和文件不全或者不一致,這樣的程式已經對日常業務造成很大阻礙。最近,他們已經開始考慮使用ETL工具重新改造了。

ETL工具選型參照表

工具

優點

缺點


主流工具

Datastage

內嵌一種類BASIC語言,可透過批處理程式增加靈活性,可對每個job設定引數並在job內部引用

早期版本對流程支援缺乏考慮;圖形化介面改動費事

Powercenter

後設資料管理更為開放,存放在關聯式資料庫中,可以很容易被訪問

沒有內嵌類BASIC語言,引數值需人為更新,且不能引用引數名;圖形化介面改動費事

Automation

提供一套ETL框架,利用Teradata資料倉儲本身的並行處理能力

對資料庫依賴性強,選型時需要考慮綜合成本(包括資料庫等)

自主開發

相對於購買主流ETL工具,成本較低

各種語言混雜開發,無架構可言,後期維護難度大。


新增人:孫可

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-921906/,如需轉載,請註明出處,否則將追究法律責任。

相關文章