8款數據遷移工具選型,主流且實用!

来源:https://www.cnblogs.com/88223100/archive/2023/04/19/Selection-of-8-data-migration-tools.html
-Advertisement-
Play Games

前言:ETL(是Extract-Transform-Load的縮寫,即數據抽取、轉換、裝載的過程),對於企業應用來說,我們經常會遇到各種數據的處理、轉換、遷移的場景。今天特地給大家彙總了一些目前市面上比較常用的ETL數據遷移工具,希望對你會有所幫助。 ...


前言:ETL(是Extract-Transform-Load的縮寫,即數據抽取、轉換、裝載的過程),對於企業應用來說,我們經常會遇到各種數據的處理、轉換、遷移的場景。今天特地給大家彙總了一些目前市面上比較常用的ETL數據遷移工具,希望對你會有所幫助。

 

一、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 也是一個後臺運行的程式。

 

二、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六大核心優勢:

 

  • 可靠的數據質量監控

  • 豐富的數據轉換功能

  • 精準的速度控制

  • 強勁的同步性能

  • 健壯的容錯機制

  • 極簡的使用體驗

 

三、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分鐘。

 

  • 極穩定高可靠:採用分散式架構,所有組件均支持高可用,提供豐富容錯策略,應對上下游的結構變化、數據錯誤、網路故障等突發情況,可以保證系統業務連續性要求。

 

  • 全鏈路數據可觀測:配備容器、應用、線程、業務四級監控體系,全景駕駛艙守護任務穩定運行。自動化運維體系,靈活擴縮容,合理管理和分配系統資源。

 

四、Talend

 

Talend (踏藍) 是第一家針對的數據集成工具市場的 ETL (數據的提取 Extract、傳輸 Transform、載入 Load) 開源軟體供應商。

 

圖片

 

Talend 以它的技術和商業雙重模式為 ETL 服務提供了一個全新的遠景。它打破了傳統的獨有封閉服務,提供了一個針對所有規模的公司的公開的,創新的,強大的靈活的軟體解決方案。

 

五、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 的管理工作。

 

六、Sqoop

 

Sqoop 是 Cloudera 公司創造的一個數據同步工具,現在已經完全開源了。

 

目前已經是 hadoop 生態環境中數據遷移的首選 Sqoop 是一個用來將 Hadoop 和關係型資料庫中的數據相互轉移的工具,可以將一個關係型資料庫(例如 :MySQL 、Oracle 、Postgres 等)中的數據導入到 Hadoop 的 HDFS 中,也可以將 HDFS 的數據導入到關係型資料庫中。

 

圖片

 

他將我們傳統的關係型資料庫 | 文件型資料庫 | 企業數據倉庫 同步到我們的 hadoop 生態集群中。

 

同時也可以將 hadoop 生態集群中的數據導回到傳統的關係型資料庫 | 文件型資料庫 | 企業數據倉庫中。

 

那麼 Sqoop 如何抽取數據呢?

 

  • 首先 Sqoop 去 rdbms 抽取元數據。

  • 當拿到元數據之後將任務切成多個任務分給多個 map。

  • 再由每個 map 將自己的任務完成之後輸出到文件。

 

圖片

 

七、FineDataLink

 

FineDataLink是國內做的比較好的ETL工具,FineDataLink是一站式的數據處理平臺,具備高效的數據同步功能,可以實現實時數據傳輸、數據調度、數據治理等各類複雜組合場景的能力,提供數據匯聚、研發、治理等功能。

 

FDL擁有低代碼優勢,通過簡單的拖拽交互就能實現ETL全流程。

 

圖片

 

FineDataLink——中國領先的低代碼/高時效數據集成產品,能過為企業提供一站式的數據服務,通過快速連接、高時效融合多種數據,提供低代碼Data API敏捷發佈平臺,幫助企業解決數據孤島難題,有效提升企業數據價值。

 

八、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/Selection-of-8-data-migration-tools.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡介:由於資源有限,本實驗用了兩台機器 監控端:部署prometheus、grafana、alertmanager 被監控端:node_exporter、mysqld_exporter 一. 部署promethus 1. 下載 https://prometheus.io/download/ 2. 解 ...
  • 0.linux的目錄結構 1.用戶和用戶組的信息存儲 1.1. 用戶的基本信息文件/etc/passwd 1.1.1. 用戶名 1.1.2. 密碼 1.1.3. UID 1.1.4. GID 1.1.5. 註釋性描述 1.1.6. 宿主目錄 1.1.7. 預設shell 1.2. 用戶的密碼信息文件 ...
  • 功能02-商鋪查詢緩存 3.商鋪詳情緩存查詢 3.1什麼是緩存? 緩存就是數據交換的緩衝區(稱作Cache),是存儲數據的臨時地方,一般讀寫性能較高。 緩存的作用: 降低後端負載 提高讀寫效率,降低響應時間 緩存的成本: 數據一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ...
  • 關於MySQL的二進位日誌(binlog),我們都知道二進位日誌(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關於二進位日誌(binlog)的備份,可以基於flush logs方式先切換binlog,然後拷貝&壓縮到到遠程伺服器或本地伺服器 ...
  • 功能實現02 2.功能01-簡訊登錄 2.1基於Session實現登錄 2.1.1思路分析 2.1.2代碼實現 2.1.2.1發送簡訊驗證碼 發送簡訊驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ...
  • 本文將對幾種緩存與資料庫保證數據一致性的使用方式進行分析。為保證高併發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 作者: 奧特曼愛小怪獸 文章來源:GreatSQL社區原創 往期回顧 MySQL8.0 優化器介紹(一) MySQL8.0 優化器介紹(二) 本篇將進一 ...
  • 承蒙大家的支持,剛上市的《MySQL實戰》已經躍居京東自營資料庫圖書熱賣榜第 1 名,收到的反饋也普遍不錯。對該書感興趣的童鞋可通過右邊的鏈接購買。目前,京東自營有活動,只需 5 折。 主從延遲作為 MySQL 的痛點已經存在很多年了,以至於大家都有一種錯覺:有 MySQL 複製的地方就有主從延遲。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...