【原創】BI解決方案選型之ETL數據整合工具對比

1、背景

在企業BI平臺建設過程當中,數據整合始終是一切的基礎,簡單BI項目能夠經過存儲過程來實現,而複雜、全面、多方異構數據來源等就大大增長了複雜性,存儲過程的可管理性、可維護性、容錯性等就沒法很好的跟上企業的BI的發展腳步和須要。java

所以,一個完善的、健壯的、可視化的、易於開發和管理的ETL解決方案,就很是重要,而這其中,ETL工具的地位不言而喻,更是重中之重。選擇一個優秀的ETL工具,不只能夠加快異構數據整合的能力和效率,更能下降開發成本、人員手工維護等成本,好處多多。web

現今的ETL工具不少,大企業的有IBM、Oracle的,中小企業的有SSIS、kettle、talend。有開源的,也有收費的,那咱們改如何選擇呢?數據庫

2、對比方面

本人作過ETL開發也有小几年,對於一部分的ETL工具也有不少的接觸,也看過其它企業的大型ETL解決方案,今天,就從以下幾個我所經歷過以及結合一些客戶的選擇方向來對比下不一樣ETL工具之間的差別,給予一部分即將選擇ETL工具的朋友一些輔助建議吧。windows

對比的ETL工具,選擇這4款主要是我本身接觸過,或是有客戶採購過,相對比較瞭解。服務器

  1. talend
  2. kettle
  3. SSIS
  4. informatica

對比的方面主要有以下幾方面,每一個方面總分都是10分架構

2.1、成本:軟件成本+開發成本+維護成本。

這個是我所知道90%企業都第一考慮的,你們都知道,有多少錢辦多少事兒。負載均衡

  • talend:8分
    1. 軟件成本:talend有開源版本,免費,可是實際我用下來,以及一部分客戶的實際狀況,仍是建議買個企業版。由於開源版沒有配備完善的自動化調度系統,這個若是開發好以後要按期運行起來,還須要藉助其它的調度工具或者本身開發一套調度,估計這個開發也夠嗆。
    2. 開發成本:若是開源版,前期可能會省不少培訓、諮詢、售前等費用,可是後期的維護團隊、自定義開發的調度平臺估計也不會比買企業版花的少。
    3. 維護成本:talend是按照用戶數收費的,因此若是開發用戶不少的狀況下,估計就不划算。
  • kettle:7分
    1. 軟件成本、開發成本:和talend同樣的,也是分開源和不開源,開源的依然是要自行調度管理。
    2. 維護成本:kettle國內的專業公司好像有點少,通常用的都是作作簡單ETL,或者封裝一套本身的,因此前期自我探索的成本也比較高。
  • SSIS:8分
    1. 軟件成本:這是微軟的,由於你只要採購了SQL SERVER,這個工具就是免費給你用的,微軟家的產品都是簡單、快速入門的,因此使用起來的難度不大。
    2. 開發成本:微軟的MSDN是很強大的在線文檔,看這個已經足夠入門了,諮詢幾乎不用。
    3. 維護成本:微軟系的出了名的好用、上手快。若是你已經採購了SQL SERVER並且仍是windows體系的,那我是推薦這個的。
  • informatica:5分
    1. 軟件成本:企業級的產品,世界知名,固然軟件採購成本也很貴,比上面的貴好多倍。
    2. 開發成本:擁有良好的GUI界面,開發也是脫拉拽,相對仍是比較塊的。
    3. 維護成本:老牌廠商,軟件穩定。

2.2、易用性

易用性能夠下降使用人員專業技術水平,下降人員成本。eclipse

  • talend:9分
    1. 給予eclipse的GUI界面操做,並且結合了SVN/GIT的版本管理,開發快速、代碼管理及時。可是GUI有時候不太穩定。
    2. 拖拉拽的設計風格。
    3. 開發的job直接能夠build成jar包,而後部署,或者直接能夠在tac後臺服務進行部署(企業版纔有)。
  • kettle:7分
    1. GUI的界面操做,能夠和本身的知識庫整合,將開發內容保存到後臺元數據庫中。
    2. 拖拉拽的設計風格。
  • SSIS:9分
    1. VS的GUI界面操做。
    2. 拖拉拽的設計風格。
    3. 給予GUI的job運行管理、調度平臺。
  • informatica:8分
    1. GUI的界面操做。
    2. 拖拉拽的設計風格。

2.3、架構

架構的優劣,也決定的這個產品是否能有足夠的能力支撐任何需求變動的挑戰。jvm

  • talend:9分
    1. 基於Java體系的,每一個ETL job設計完成以後,最終都是編譯成了一整個的jar包。
    2. 只要你有JVM環境你就能夠運行talend job。
    3. 接收自定義的java代碼,可使得一部分組件沒法完成的功能,經過代碼來實現。
  • kettle:8分
    1. 基於Java體系的。
    2. 可使用 job 做業方式或操做系統調度,來執行一個轉換文件或做業文件。
    3. 能夠經過集羣的方式在多臺機器上部署
  • SSIS:7分
    1. 基於XML的文件保存格式,基於Windows體系。
    2. 須要.NET FRAMEWORK的支持。
    3. 能夠自定義開發.NET程序處理。
  • informatica:8分
    1. 基於他自己的server調度運行。

2.4、 數據源豐富性

ETL主要就是負責數據整合,數據源的豐富性越好,適應能力就越強。工具

  • talend:9分
    1. 支持各類數據庫數據源、web services、文件、雲產品等,很是豐富。
    2. 雲計算、大數據的支持也是很是迅速的。
  • kettle:9分
    1. 支持各類數據庫數據源、web services、文件、雲產品等,很是豐富。
    2. 也能夠經過本身開發插件來拓展。
    3. 有不少的第三方插件支持。
  • SSIS:7分
    1. 支持各類數據庫數據源、web services、文件等
    2. 雲產品的支持當前只是支持他自家的微軟雲。
    3. 有不少的第三方插件支持。
  • informatica:6
    1. 支持各類數據庫數據源
    2. 分爲不一樣的版本,標準版,實時版,高級版,雲計算版。同時,它還提供了多個可選的組件

2.5、 ETL組件豐富性

ETL組件的完善,能夠減小硬編碼,提高開發效率和交付質量。

  • talend:9分
    1. talend組件很是多,他將不少的功能都拆分紅了不一樣的組件,大概是3000多個,這樣子的組件細化,能夠給出不一樣的組合,知足不少不一樣的任務須要。
    2. 尤爲是對大數據、雲計算組件的支持更是業內比較快、領先的。
  • kettle:8分
    1. 組件也是十分豐富。
    2. 本身能夠拓展開發第三方組件。
    3. 對於雲計算的支持也是比較好的。
  • SSIS:7分
    1. 組件相對比較豐富,並且結合了數據庫維護的一些功能,使得不只僅侷限於ETL這單塊的內容。
    2. 能夠自定義開發組件。
    3. 對於雲計算、大數據等支持不是很快。
  • informatica:6分
    1. 組件相對也比較豐富。
    2. 對於雲計算也有支持,可是在不一樣的產品模塊,無形中增長了軟件成本。

2.6、 性能

性能是決定着數據刷新的頻率,對於不少實時性要求較高的業務,這是重點。

  • talend:6分
    1. talend由於要先編譯、後運行,所以第一次的運行來看,性能相對比較慢。
    2. talend是基於jvm的,因此不少方面須要調優。
  • kettle:7分
    1. kettle自己會有必定的優化在其中,因此總體運行效率會比talend快一些。
    2. 不少參數也是須要實際狀況調優的。
  • SSIS:8分
    1. 若是針對於其自己的MS系產品,效率是槓槓的,微軟的測試1TB只須要2小時。
    2. 可是針對其它家的數據庫,也是須要優化的,可是綜合來看,仍是比較塊的。
  • informatica:8分
    1. 針對於自己的數據源,其內部就作了不少的調優,所以就會快不少。

2.7、 部署

部署主要是考慮是否能支持橫向拓展,以便更快應對數據量的增加。

  • talend:8分
    1. 開發支持多人合做開發,經過SVN/GIT進行協做。
    2. 能夠經過部署多個集羣job server來負載均衡的運行job。
  • kettle:8分
    1. 支持集羣式的部署方式。
  • SSIS:5分
    1. 暫時沒有集羣式的部署方式。
    2. 可是能夠經過job之間的協調調度來實現,技術成本比較高。
  • informatica:6分
    1. 須要部署運行在其server上。

2.8、 監控

完善的監控體系,能夠即便的發現ETL內部問題,提高運行穩定性,減小數據整合的錯誤。

  • talend:8分
    1. 擁有良好的後臺運行監控和log日誌記錄。
  • kettle:8分
    1. 擁有良好的後臺運行監控和log日誌記錄。
  • SSIS:9分
    1. 擁有良好的後臺運行監控和log日誌記錄。
    2. 能夠收集不一樣的運行KPI,分析運行的效率問題。
  • informatica:8分
    1. 擁有良好的後臺運行監控和log日誌記錄。

2.9、 數據質量管理

ETL中包含數據質量管理應該是將來的趨勢,而不是簡單將數據從A搬到B。

  • talend:8分
    1. 有數據質量管理的支持。
    2. 也能夠經過本身代碼實現。
  • kettle:8分
    1. 有數據質量管理的支持。
    2. 也能夠經過本身代碼實現。
  • SSIS:9分
    1. 有本身的數據質量檢測組件。
    2. 也能夠經過數據質量服務這個軟件來實現(免費)可是整合起來的技術難度仍是有一些。
  • informatica:7分
    1. 專門有一個產品 Informatica Data Quality 來保證數據質量
    2. 可是這個軟件成本有點高。

2.10、 技術支持and社區

主要考慮到將來的疑難問題解決。

  • talend:7分
    1. 在國內的社區和技術支持相對比較薄弱。
    2. 可是好在技術支持比較穩定,能夠申請原廠的case,有人回覆。(不買產品諮詢,應該要收費的)
  • kettle:8分
    1. 國內的社區還不錯,不少開源的小企業的人都是在使用的,也有不少的社羣活躍。
  • SSIS:9分
    1. 微軟的支持無處不在。
    2. MSDN、官方博客都幾乎能夠找到人,比較方便。
    3. 並且使用人員也不少。
  • informatica:8分
    1. 專業的人員卻是挺多,可是諮詢應該不是免費的。

3、總結

最總咱們來看得分

產品/考慮方面

成本:軟件成本+開發成本+維護成本(10分)

易用性(10分)

架構(10分)

數據源豐富性(10分)

ETL組件豐富性(10分)

性能(10分)

部署(10分)

監控(10分)

數據質量管理(10分)

技術支持&社區(10分)

總分

建議

talend

8

9

9

9

9

6

8

8

8

7

83

一、若是你是java體系的愛好者。你但願跨平臺。

二、若是你將來但願能更好接入大數據、雲計算。

三、你更喜歡靈活控制每個ETL組件。

四、對於job調度的要求不是很高。

kettle

7

7

8

9

8

7

8

8

8

8

78

一、若是你是java體系的愛好者。你但願跨平臺。

二、若是你將來但願能更好接入大數據、雲計算。

三、大家將來是本身打算開發一套調度系統的。

SSIS

8

9

7

7

7

8

5

9

9

9

78

一、你是微軟系的服務器、產品爲主。

二、你渴望入門快、成果見效快。

三、你但願易於維護、開發快捷,管理簡單。

informatica

5

8

8

6

6

8

6

8

7

8

70

一、你有錢。

二、你有豐富的技術人才。

三、你有大量的維護團隊。

若是您以爲此文章對您有幫助,請點擊右下方【推薦】讓更多人看到,thanks!

相關文章
相關標籤/搜索