一. datax3.0概覽
datax 是乙個異構資料來源離線同步工具,致力於實現包括關係型資料庫(mysql、oracle等)、hdfs、hive、odps、hbase、ftp等各種異構資料來源之間穩定高效的資料同步功能。
設計理念
為了解決異構資料來源同步問題,datax將複雜的網狀的同步鏈路變成了星型資料鏈路,datax作為中間傳輸載體負責連線各種資料來源。當需要接入乙個新的資料來源的時候,只需要將此資料來源對接到datax,便能跟已有的資料來源做到無縫資料同步。
當前使用現狀
datax在阿里巴巴集團內被廣泛使用,承擔了所有大資料的離線同步業務,並已持續穩定執行了6年之久。目前每天完成同步8w多道作業,每日傳輸資料量超過300tb。
。二、datax3.0框架設計
datax本身作為離線資料同步框架,採用framework + plugin架構構建。將資料來源讀取和寫入抽象成為reader/writer外掛程式,納入到整個同步框架中。
reader:reader為資料採集模組,負責採集資料來源的資料,將資料傳送給framework。
writer: writer為資料寫入模組,負責不斷向framework取資料,並將資料寫入到目的端。
framework:framework用於連線reader和writer,作為兩者的資料傳輸通道,並處理緩衝,流控,併發,資料轉換等核心技術問題。
三. datax3.0外掛程式體系
經過幾年積累,datax目前已經有了比較全面的外掛程式體系,主流的rdbms資料庫、nosql、大資料計算系統都已經接入。datax目前支援資料如下:
datax framework提供了簡單的介面與外掛程式互動,提供簡單的外掛程式接入機制,只需要任意加上一種外掛程式,就能無縫對接其他資料來源。詳情請看:datax資料來源指南
四、datax3.0核心架構
datax 3.0 開源版本支援單機多執行緒模式完成同步作業執行,本小節按乙個datax作業生命週期的時序圖,從整體架構設計非常簡要說明datax各個模組相互關係。
核心模組介紹:
datax完成單個資料同步的作業,我們稱之為job,datax接受到乙個job之後,將啟動乙個程序來完成整個作業同步過程。datax job模組是單個作業的中樞管理節點,承擔了資料清理、子任務切分(將單一作業計算轉化為多個子task)、taskgroup管理等功能。
dataxjob啟動後,會根據不同的源端切分策略,將job切分成多個小的task(子任務),以便於併發執行。task便是datax作業的最小單元,每乙個task都會負責一部分資料的同步工作。
切分多個task之後,datax job會呼叫scheduler模組,根據配置的併發資料量,將拆分成的task重新組合,組裝成taskgroup(任務組)。每乙個taskgroup負責以一定的併發執行完畢分配好的所有task,預設單個任務組的併發數量為5。
每乙個task都由taskgroup負責啟動,task啟動後,會固定啟動reader—>channel—>writer的執行緒來完成任務
相關鏈結
阿里雲開源離線同步工具DataX3 0介紹
writer writer為資料寫入模組,負責不斷向framework取資料,並將資料寫入到目的端。framework framework用於連線reader和writer,作為兩者的資料傳輸通道,並處理緩衝,流控,併發,資料轉換等核心技術問題。資料來源reader 讀 writer 寫 rdbms...
sersync 開源伺服器檔案實時同步工具
這是我貢獻的第乙個開源軟體sersync,主要用於伺服器同步,web映象等功能。基於boost1.41.0,inotify api,rsync command.開發。測試環境centos,ubuntu。利用inotify與rsync對伺服器進行實時同步,其中inotify用於監控檔案系統事件,rsy...
離線安裝htop工具
htop眾所周知是是一款強大的是linux系統中的乙個互動的程序檢視器 作為top的替代品 乙個文字模式的應用程式 在控制台或者x終端中 一般情況下一句yum install htop就能輕鬆安裝,但是很多時候我們會遇到無法連線外網的情況。htop官網 但是htop安裝的前提還需要乙個依賴 ncur...