DataX學習指南(一) 基礎介紹

2022-10-10 06:09:09 字數 1590 閱讀 4936

datax 是阿里巴巴集團內被廣泛使用的離線資料同步工具/平台,實現包括 mysql、sql server、oracle、postgresql、hdfs、hive、hbase、ots、odps 等各種異構資料來源之間高效的資料同步功能。

datax本身作為資料同步框架,將不同資料來源的同步抽象為從源頭資料來源讀取資料的reader外掛程式,以及向目標端寫入資料的writer外掛程式,理論上datax框架可以支援任意資料來源型別的資料同步工作。同時datax外掛程式體系作為一套生態系統, 每接入一套新資料來源該新加入的資料來源即可實現和現有的資料來源互通。

為了解決異構資料來源同步問題,datax將複雜的網狀的同步鏈路變成了星型資料鏈路,datax作為中間傳輸載體負責連線各種資料來源。當需要接入乙個新的資料來源的時候,只需要將此資料來源對接到datax,便能跟已有的資料來源做到無縫資料同步。

(來自github)

datax本身作為離線資料同步框架,採用framework + plugin架構構建。將資料來源讀取和寫入抽象成為reader/writer外掛程式,納入到整個同步框架中。

核心介紹:

核心模組介紹:

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的執行緒來完成任務同步工作。

datax作業執行起來之後, job監控並等待多個taskgroup模組任務完成,等待所有taskgroup任務完成後job成功退出。否則,異常退出,程序退出值非0

詳細介紹可以見:datax 3.0優勢

這裡先貼一張本地執行結果的截圖吧,具體如何實現下文再講。

執行結果包含了很多內容(截圖為執行成功後的最後兩部分),簡單介紹下這兩部分的意義吧。

上面列印了系統整體cpu及gc資訊,最後面列印的是整個job的生命週期--開始、結束、總耗時、同步資料量、失敗數。

DataX學習指南(四) 專案執行

上篇文章介紹了原始碼的打包,這篇文章就主要介紹如何將程式執行起來,並實現資料的同步。對於datax程式執行,有兩種方式,上文介紹的自定義外掛程式開發並打包執行是比較複雜的一種 一般情況下,我們會用的資料庫讀寫工具包裡面都已經編譯好,這種情況下,就只要寫job.json了。程式啟動 執行結果。在時間同...

sqlmap學習指南(一)

sqlmap是一款開源的sql注入工具,比起國內的很多任務具來說,他最大的優點就是開源,你可以根據自己的注入經驗改造這一款軟體,而且他提供注入的細節輸出,比如注入所使用的sql,變形後的sql,request,response細節,並且支援幾乎目前所有的常見資料庫,及注入手段 get,post,co...

MarkDown學習指南(一)

emmmmm ps 在csdn大佬們的分享的幫助下,我成功的的加入了大資料實驗室裡面的人都超好噠,每個人都是人才 2333皮一下?前陣子學校的事情有點多,在我用頭髮的代價終於把事情做了 終於有空繼續學習了哇 實驗室要求我們在一周內熟悉markdown的語法,於是就有了如下部落格 markdown是一...