前言
最近有些小伙伴問我,ETL
資料遷移工具該用哪些,
ETL(是Extract-Transform-Load的縮寫,即資料抽取、轉換、裝載的程序),對于企業應用來說,我們經常會遇到各種資料的處理、轉換、遷移的場景,
今天特地給大家匯總了一些目前市面上比較常用的ETL
資料遷移工具,希望對你會有所幫助,
1.Kettle
Kettle
是一款國外開源的ETL
工具,純Java
撰寫,綠色無需安裝,資料抽取高效穩定 (資料遷移工具),
Kettle 中有兩種腳本檔案,transformation 和 job,transformation 完成針對資料的基礎轉換,job 則完成整個作業流的控制,
Kettle 中文名稱叫水壺,該專案的主程式員 MATT 希望把各種資料放到一個壺里,然后以一種指定的格式流出,
Kettle 這個 ETL 工具集,它允許你管理來自不同資料庫的資料,通過提供一個圖形化的用戶環境來描述你想做什么,而不是你想怎么做,Kettle 家族目前包括 4 個產品:Spoon、Pan、CHEF、Kitchen,
-
SPOON
:允許你通過圖形界面來設計 ETL 轉換程序(Transformation), -
PAN
:允許你批量運行由 Spoon 設計的 ETL 轉換 (例如使用一個時間調度器),Pan 是一個后臺執行的程式,沒有圖形界面, -
CHEF
:允許你創建任務(Job),任務通過允許每個轉換,任務,腳本等等,更有利于自動化更新資料倉庫的復雜作業,任務通過允許每個轉換,任務,腳本等等,任務將會被檢查,看看是否正確地運行了, -
KITCHEN
:允許你批量使用由 Chef 設計的任務 (例如使用一個時間調度器),KITCHEN 也是一個后臺運行的程式,
2.Datax
DataX
是阿里云 DataWorks資料集成的開源版本,在阿里巴巴集團內被廣泛使用的離線資料同步工具/平臺,
DataX 是一個異構資料源離線同步工具,致力于實作包括關系型資料庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構資料源之間穩定高效的資料同步功能,

設計理念:為了解決異構資料源同步問題,DataX將復雜的網狀的同步鏈路變成了星型資料鏈路,DataX作為中間傳輸載體負責連接各種資料源,當需要接入一個新的資料源的時候,只需要將此資料源對接到DataX,便能跟已有的資料源做到無縫資料同步,
當前使用現狀:DataX在阿里巴巴集團內被廣泛使用,承擔了所有大資料的離線同步業務,并已持續穩定運行了6年之久,目前每天完成同步8w多道作業,每日傳輸資料量超過300TB,
DataX本身作為離線資料同步框架,采用Framework + plugin架構構建,將資料源讀取和寫入抽象成為Reader/Writer插件,納入到整個同步框架中,

DataX 3.0 開源版本支持單機多執行緒模式完成同步作業運行,本小節按一個DataX作業生命周期的時序圖,從整體架構設計非常簡要說明DataX各個模塊相互關系,DataX 3.0六大核心優勢:
-
可靠的資料質量監控 -
豐富的資料轉換功能 -
精準的速度控制 -
強勁的同步性能 -
健壯的容錯機制 -
極簡的使用體驗
3.DataPipeline
DataPipeline
采用基于日志的增量資料獲取技術( Log-based Change Data Capture ),支持異構資料之間豐富、自動化、準確的語意映射構建,同時滿足實時與批量的資料處理,
可實作 Oracle、IBM DB2、MySQL、MS SQL Server、PostgreSQL、GoldenDB、TDSQL、OceanBase 等資料庫準確的增量資料獲取,
平臺具備“資料全、傳輸快、強協同、更敏捷、極穩定、易維護”六大特性,
在支持傳統關系型資料庫的基礎上,對大資料平臺、國產資料庫、云原生資料庫、API 及物件存盤也提供廣泛的支持,并在不斷擴展,
DataPipeline 資料融合產品致力于為用戶提供企業級資料融合解決方案,為用戶提供統一平臺同時管理異構資料節點實時同步與批量資料處理任務,在未來還將提供對實時流計算的支持,
采用分布式集群化部署方式,可水平垂直線性擴展的,保證資料流轉穩定高效,讓客戶專注資料價值釋放,
產品特點:
-
全面的資料節點支持
:支持關系型資料庫、NoSQL資料庫、國產資料庫、資料倉庫、大資料平臺、云存盤、API等多種資料節點型別,可自定義資料節點, -
高性能實時處理
:針對不同資料節點型別提供TB級吞吐量、秒級低延遲的增量資料處理能力,加速企業各類場景的資料流轉, -
分層管理降本增效
:采用“資料節點注冊、資料鏈路配置、資料任務構建、系統資源分配”的分層管理模式,企業級平臺的建設周期從三到六個月減少為一周, -
無代碼敏捷管理
:提供限制配置與策略配置兩大類十余種高級配置,包括靈活的資料物件映射關系,資料融合任務的研發交付時間從2周減少為5分鐘, -
極穩定高可靠
:采用分布式架構,所有組件均支持高可用,提供豐富容錯策略,應對上下游的結構變化、資料錯誤、網路故障等突發情況,可以保證系統業務連續性要求, -
全鏈路資料可觀測
:配備容器、應用、執行緒、業務四級監控體系,全景駕駛艙守護任務穩定運行,自動化運維體系,靈活擴縮容,合理管理和分配系統資源,
4.Talend
Talend (踏藍) 是第一家針對的資料集成工具市場的 ETL (資料的提取 Extract、傳輸 Transform、載入 Load) 開源軟體供應商,
Talend 以它的技術和商業雙重模式為 ETL 服務提供了一個全新的遠景,它打破了傳統的獨有封閉服務,提供了一個針對所有規模的公司的公開的,創新的,強大的靈活的軟體解決方案,
5.DataStage
DataStage,即IBM WebSphere DataStage,是一套專門對多種操作資料源的資料抽取、轉換和維護程序進行簡化和自動化,并將其輸入資料集市或資料倉庫目標資料庫的集成工具,可以從多個不同的業務系統中,從多個平臺的資料源中抽取資料,完成轉換和清洗,裝載到各種系統里面,
其中每步都可以在圖形化工具里完成,同樣可以靈活地被外部系統調度,提供專門的設計工具來設計轉換規則和清洗規則等,實作了增量抽取、任務調度等多種復雜而實用的功能,其中簡單的資料轉換可以通過在界面上拖拉操作和呼叫一些 DataStage 預定義轉換函式來實作,復雜轉換可以通過撰寫腳本或結合其他語言的擴展來實作,并且 DataStage 提供除錯環境,可以極大提高開發和除錯抽取、轉換程式的效率,
Datastage 操作界面
-
對元資料的支持:Datastage 是自己管理 Metadata,不依賴任何資料庫, -
引數控制:Datastage 可以對每個 job 設定引數,并且可以 job 內部參考這個引數名, -
資料質量:Datastage 有配套用的 ProfileStage 和 QualityStage 保證資料質量, -
定制開發:提供抽取、轉換插件的定制,Datastage 內嵌一種類 BASIC 語言,可以寫一段批處理程式來增加靈活性, -
修改維護:提供圖形化界面,這樣的好處是直觀、傻瓜式的;不好的地方就是改動還是比較費事(特別是批量化的修改),
Datastage 包含四大部件:
-
Administrator
:新建或者洗掉專案,設定專案的公共屬性,比如權限, -
Designer
:連接到指定的專案上進行 Job 的設計; -
Director
:負責 Job 的運行,監控等,例如設定設計好的 Job 的調度時間, -
Manager
:進行 Job 的備份等 Job 的管理作業,
6.Sqoop
Sqoop 是 Cloudera 公司創造的一個資料同步工具,現在已經完全開源了,
目前已經是 hadoop 生態環境中資料遷移的首選 Sqoop 是一個用來將 Hadoop 和關系型資料庫中的資料相互轉移的工具,可以將一個關系型資料庫(例如 :MySQL ,Oracle ,Postgres 等)中的資料匯入到 Hadoop 的 HDFS 中,也可以將 HDFS 的資料匯入到關系型資料庫中,
他將我們傳統的關系型資料庫 | 檔案型資料庫 | 企業資料倉庫 同步到我們的 hadoop 生態集群中,
同時也可以將 hadoop 生態集群中的資料導回到傳統的關系型資料庫 | 檔案型資料庫 | 企業資料倉庫中,
那么 Sqoop 如何抽取資料呢?
-
首先 Sqoop 去 rdbms 抽取元資料, -
當拿到元資料之后將任務切成多個任務分給多個 map, -
然后再由每個 map 將自己的任務完成之后輸出到檔案,
7.FineDataLink
FineDataLink是國內做的比較好的ETL工具,FineDataLink是一站式的資料處理平臺,具備高效的資料同步功能,可以實作實時資料傳輸、資料調度、資料治理等各類復雜組合場景的能力,提供資料匯聚、研發、治理等功能,
FDL擁有低代碼優勢,通過簡單的拖拽互動就能實作ETL全流程,FineDataLink——中國領先的低代碼/高時效資料集成產品,能過為企業提供一站式的資料服務,通過快速連接、高時效融合多種資料,提供低代碼Data API敏捷發布平臺,幫助企業解決資料孤島難題,有效提升企業資料價值,
8.canal
canal [k?'n?l],譯意為水道/管道/溝渠,主要用途是基于 MySQL 資料庫增量日志決議,提供增量資料訂閱和消費,早期阿里巴巴因為杭州和美國雙機房部署,存在跨機房同步的業務需求,實作方式主要是基于業務 trigger 獲取增量變更,從 2010 年開始,業務逐步嘗試資料庫日志決議獲取增量變更進行同步,由此衍生出了大量的資料庫增量訂閱和消費業務,
基于日志增量訂閱和消費的業務包括:
-
資料庫鏡像 -
資料庫實時備份 -
索引構建和實時維護(拆分異構索引、倒排索引等) -
業務 cache 重繪 -
帶業務邏輯的增量資料處理
當前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x,

-
MySQL master 將資料變更寫入二進制日志( binary log, 其中記錄叫做二進制日志事件binary log events,可以通過 show binlog events 進行查看), -
MySQL slave 將 master 的 binary log events 拷貝到它的中繼日志(relay log), -
MySQL slave 重放 relay log 中事件,將資料變更反映它自己的資料,
canal 作業原理:
-
canal 模擬 MySQL slave 的互動協議,偽裝自己為 MySQL slave ,向 MySQL master 發送dump 協議 -
MySQL master 收到 dump 請求,開始推送 binary log 給 slave (即 canal ) -
canal 決議 binary log 物件(原始為 byte 流)
作者|蘇三
本文來自博客園,作者:古道輕風,轉載請注明原文鏈接:https://www.cnblogs.com/88223100/p/8-Data-migration-tools.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/556453.html
標籤:PostgreSQL
下一篇:返回列表