對于企業應用來說,我們經常會遇到各種數據的處理、轉換、遷移的場景。今天特地給大家匯總了一些目前市面上比較常用的ETL數據遷移工具,希望對你會有所幫助。
一、Kettle
Kettle是一款國外開源的ETL工具,純Java編寫,綠色無需安裝,數據抽取高效穩定 (數據遷移工具)。
Kettle 中有兩種腳本文件,transformation 和 job,transformation 完成針對數據的基礎轉換,job 則完成整個工作流的控制。
Kettle 中文名稱叫水壺,該項目的主程序員 MATT 希望把各種數據放到一個壺里,然后以一種指定的格式流出?! ?/p>
Kettle 這個 ETL 工具集,它允許你管理來自不同數據庫的數據,通過提供一個圖形化的用戶環境來描述你想做什么,而不是你想怎么做?! ?/p>
Kettle 家族目前包括 4 個產品:Spoon、Pan、CHEF、Kitchen。
SPOON:允許你通過圖形界面來設計 ETL 轉換過程(Transformation)。
PAN:允許你批量運行由 Spoon 設計的 ETL 轉換 (例如使用一個時間調度器)。Pan 是一個后臺執行的程序,沒有圖形界面。
CHEF:允許你創建任務(Job)。任務通過允許每個轉換,任務,腳本等等,更有利于自動化更新數據倉庫的復雜工作。任務通過允許每個轉換,任務,腳本等等。任務將會被檢查,看看是否正確地運行了。
KITCHEN:允許你批量使用由 Chef 設計的任務 (例如使用一個時間調度器)。KITCHEN 也是一個后臺運行的程序。
二、Datax
DataX是阿里云 DataWorks數據集成的開源版本,在阿里巴巴集團內被廣泛使用的離線數據同步工具/平臺。
DataX 是一個異構數據源離線同步工具,致力于實現包括關系型數據庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構數據源之間穩定高效的數據同步功能?! ?/p>
設計理念:為了解決異構數據源同步問題,DataX將復雜的網狀的同步鏈路變成了星型數據鏈路,DataX作為中間傳輸載體負責連接各種數據源。當需要接入一個新的數據源的時候,只需要將此數據源對接到DataX,便能跟已有的數據源做到無縫數據同步。
當前使用現狀:DataX在阿里巴巴集團內被廣泛使用,承擔了所有大數據的離線同步業務,并已持續穩定運行了6年之久。目前每天完成同步8w多道作業,每日傳輸數據量超過300TB。
DataX本身作為離線數據同步框架,采用Framework + plugin架構構建。將數據源讀取和寫入抽象成為Reader/Writer插件,納入到整個同步框架中?! ?/p>
DataX 3.0 開源版本支持單機多線程模式完成同步作業運行,本小節按一個DataX作業生命周期的時序圖,從整體架構設計非常簡要說明DataX各個模塊相互關系?! ?/p>
DataX 3.0六大核心優勢:
可靠的數據質量監控
豐富的數據轉換功能
精準的速度控制
強勁的同步性能
健壯的容錯機制
極簡的使用體驗
三、DataPipeline
DataPipeline采用基于日志的增量數據獲取技術( Log-based Change Data Capture ),支持異構數據之間豐富、自動化、準確的語義映射構建,同時滿足實時與批量的數據處理。
可實現 Oracle、IBM DB2、MySQL、MS SQL Server、PostgreSQL、GoldenDB、TDSQL、OceanBase 等數據庫準確的增量數據獲取。
平臺具備“數據全、傳輸快、強協同、更敏捷、極穩定、易維護”六大特性。
在支持傳統關系型數據庫的基礎上,對大數據平臺、國產數據庫、云原生數據庫、API 及對象存儲也提供廣泛的支持,并在不斷擴展。
DataPipeline 數據融合產品致力于為用戶提供企業級數據融合解決方案,為用戶提供統一平臺同時管理異構數據節點實時同步與批量數據處理任務,在未來還將提供對實時流計算的支持。
采用分布式集群化部署方式,可水平垂直線性擴展的,保證數據流轉穩定高效,讓客戶專注數據價值釋放?! ?/p>
產品特點:
全面的數據節點支持:支持關系型數據庫、NoSQL數據庫、國產數據庫、數據倉庫、大數據平臺、云存儲、API等多種數據節點類型,可自定義數據節點。
高性能實時處理:針對不同數據節點類型提供TB級吞吐量、秒級低延遲的增量數據處理能力,加速企業各類場景的數據流轉。
分層管理降本增效:采用“數據節點注冊、數據鏈路配置、數據任務構建、系統資源分配”的分層管理模式,企業級平臺的建設周期從三到六個月減少為一周。
無代碼敏捷管理:提供限制配置與策略配置兩大類十余種高級配置,包括靈活的數據對象映射關系,數據融合任務的研發交付時間從2周減少為5分鐘。
極穩定高可靠:采用分布式架構,所有組件均支持高可用,提供豐富容錯策略,應對上下游的結構變化、數據錯誤、網絡故障等突發情況,可以保證系統業務連續性要求。
全鏈路數據可觀測:配備容器、應用、線程、業務四級監控體系,全景駕駛艙守護任務穩定運行。自動化運維體系,靈活擴縮容,合理管理和分配系統資源。
四、Talend
Talend (踏藍) 是第一家針對的數據集成工具市場的 ETL (數據的提取 Extract、傳輸 Transform、載入 Load) 開源軟件供應商?! ?/p>
Talend 以它的技術和商業雙重模式為 ETL 服務提供了一個全新的遠景。它打破了傳統的獨有封閉服務,提供了一個針對所有規模的公司的公開的,創新的,強大的靈活的軟件解決方案。
五、DataStage
DataStage,即IBM WebSphere DataStage,是一套專門對多種操作數據源的數據抽取、轉換和維護過程進行簡化和自動化,并將其輸入數據集市或數據倉庫目標數據庫的集成工具,可以從多個不同的業務系統中,從多個平臺的數據源中抽取數據,完成轉換和清洗,裝載到各種系統里面。
其中每步都可以在圖形化工具里完成,同樣可以靈活地被外部系統調度,提供專門的設計工具來設計轉換規則和清洗規則等,實現了增量抽取、任務調度等多種復雜而實用的功能。其中簡單的數據轉換可以通過在界面上拖拉操作和調用一些 DataStage 預定義轉換函數來實現,復雜轉換可以通過編寫腳本或結合其他語言的擴展來實現,并且 DataStage 提供調試環境,可以大大提高開發和調試抽取、轉換程序的效率?! ?/p>
Datastage 操作界面
產品特點:
對元數據的支持:Datastage是自己管理Metadata,不依賴任何數據庫。
參數控制:Datastage 可以對每個 job 設定參數,并且可以 job 內部引用這個參數名。
數據質量:Datastage有配套用的ProfileStage和QualityStage,保證數據質量。
定制開發:提供抽取、轉換插件的定制,Datastage內嵌一種類BASIC語言,可以寫一段批處理程序來增加靈活性。
修改維護:提供圖形化界面。這樣的好處是直觀、傻瓜式的;不好的地方就是改動還是比較費事(特別是批量化的修改)。
Datastage 包含四大部件:
Administrator:新建或者刪除項目,設置項目的公共屬性,比如權限。
Designer:連接到指定的項目上進行 Job 的設計;
Director:負責 Job 的運行,監控等。例如設置設計好的 Job 的調度時間。
Manager:進行 Job 的備份等 Job 的管理工作。
六、Sqoop
Sqoop 是 Cloudera 公司創造的一個數據同步工具,現在已經完全開源了。
目前已經是 hadoop 生態環境中數據遷移的首選 Sqoop 是一個用來將 Hadoop 和關系型數據庫中的數據相互轉移的工具,可以將一個關系型數據庫(例如 :MySQL 、Oracle 、Postgres 等)中的數據導入到 Hadoop 的 HDFS 中,也可以將 HDFS 的數據導入到關系型數據庫中?! ?/p>
他將我們傳統的關系型數據庫 | 文件型數據庫 | 企業數據倉庫 同步到我們的 hadoop 生態集群中。
同時也可以將 hadoop 生態集群中的數據導回到傳統的關系型數據庫 | 文件型數據庫 | 企業數據倉庫中。
那么 Sqoop 如何抽取數據呢?
首先 Sqoop 去 rdbms 抽取元數據。
當拿到元數據之后將任務切成多個任務分給多個 map。
再由每個 map 將自己的任務完成之后輸出到文件?! ?/p>