ETL數據集成工具之kettle、sqoop、datax、streamSets 比較

前言
對於數據集成類應用,通常會採用ETL工具輔助完成。ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數據從來源端經過抽取(extract)、交互轉換(transform)、加載(load)至目的端的過程。當前的很多應用也存在大量的ELT應用模式。常見的ETL工具或類ETL的數據集成同步工具很多,以下對開源的 Kettle、Sqoop、Datax、Streamset進行簡單梳理比較。

一、Kettle
Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,數據抽取高效穩定。Kettle的Spoon有豐富的Steps可以組裝開發出滿足多種複雜應用場景的數據集成作業,方便實現全量、增量數據同步。缺點是通過定時運行,實時性相對較差。

免費開源:基於java的免費開源的軟件,對商業用戶也沒有限制
易配置:可以在Window、Linux、Unix上運行,綠色無需安裝,數據抽取高效穩定
不同數據庫:ETL工具集,它允許你管理來自不同數據庫的數據
兩種腳本文件:transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工作流的控制
圖形界面設計:通過圖形界面設計實現做什麼業務,無需寫代碼去實現
定時功能:在Job下的start模塊,有一個定時功能,可以每日,每週等方式進行定時
Kettle家族目前包括4個產品:Spoon、Pan、CHEF、Kitchen。
SPOON:允許你通過圖形界面來設計ETL轉換過程(Transformation)
PAN:允許你批量運行由Spoon設計的ETL轉換 (例如使用一個時間調度器)。Pan是一個後臺執行的程序,沒有圖形界面
CHEF:允許你創建任務(Job)。 任務通過允許每個轉換,任務,腳本等等,更有利於自動化更新數據倉庫的複雜工作。任務通過允許每個轉換,任務,腳本等等。任務將會被檢查,看看是否正確地運行了
KITCHEN:允許你批量使用由Chef設計的任務 (例如使用一個時間調度器)。KITCHEN也是一個後臺運行的程序
二、Sqoop
Sqoop是一款開源的工具,主要用於在Hadoop(Hive)與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞,可以將一個關係型數據庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型數據庫中。Sqoop專爲大數據批量傳輸設計,能夠分割數據集並創建Hadoop任務來處理每個區塊。通過導入導出命令加配套參數控制操作。

Sqoop導入:導入工具從RDBMS到HDFS導入單個表。表中的每一行被視爲HDFS的記錄。所有記錄被存儲在文本文件的文本數據或者在Avro和序列文件的二進制數據。
Sqoop導出:導出工具從HDFS導出一組文件到一個RDBMS。作爲輸入到Sqoop文件包含記錄,這被稱爲在表中的行。那些被讀取並解析成一組記錄和分隔使用用戶指定的分隔符。     
Sqoop支持全量數據導入和增量數據導入(增量數據導入分兩種,一是基於遞增列的增量數據導入(Append方式)。二是基於時間列的增量數據導入(LastModified方式)),同時可以指定數據是否以併發形式導入。

(1)、Append方式


(2)、LastModified方式


三、DataX
DataX 是阿里巴巴集團內被廣泛使用的離線數據同步工具/平臺,實現包括 MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、ODPS 等各種異構數據源之間高效的數據同步功能。DataX採用了框架 + 插件 的模式,目前已開源,代碼託管在github。從應用的模式,DataX更適合ELT模式。步驟:操作簡單通常只需要兩步;創建作業的配置文件(json格式配置reader,writer);啓動執行配置作業。

Job:一道數據同步作業
Splitter:作業切分模塊,將一個大任務與分解成多個可以併發的小任務.
Sub-job:數據同步作業切分後的小任務
Reader(Loader):數據讀入模塊,負責運行切分後的小任務,將數據從源頭裝載入
DataXStorage:Reader和Writer通過Storage交換數據
Writer(Dumper):數據寫出模塊,負責將數據從DataX導入至目的數據地
DataX框架內部通過雙緩衝隊列、線程池封裝等技術,集中處理了高速數據交換遇到的問題,提供簡單的接口與插件交互,插件分爲Reader和Writer兩類,基於框架提供的插件接口,可以十分便捷的開發出需要的插件。缺乏對增量更新的內置支持,因爲DataX的靈活架構,可以通過shell腳本等方式方便實現增量同步。

四、StreamSets
StreamSets 數據收集器是一個輕量級,強大的引擎,實時流數據。使用Data Collector在數據流中路由和處理數據。
要爲Data Collector定義數據流,請配置管道。一個流水線由代表流水線起點和終點的階段以及您想要執行的任何附加處理組成。配置管道後,單擊“開始”,“ 數據收集器”開始工作。Data Collector在數據到達原點時處理數據,在不需要時靜靜地等待。您可以查看有關數據的實時統計信息,在數據通過管道時檢查數據,或仔細查看數據快照。

 
————————————————
版權聲明:本文爲CSDN博主「科技D人生」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u012562943/article/details/104446610/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章