做房地產(chǎn)咨詢(xún)網(wǎng)站怎么贏利百度地圖人工客服電話(huà)
DataX簡(jiǎn)介
- 一、什么是DataX
- 二、DataX設(shè)計(jì)
- 三、支持的數(shù)據(jù)源
- 四、框架設(shè)計(jì)
- 五、運(yùn)行原理
- 六、DataX和Sqoop對(duì)比
一、什么是DataX
- DataX是阿里巴巴開(kāi)源的一個(gè)異構(gòu)數(shù)據(jù)源離線(xiàn)同步工具,致力于實(shí)現(xiàn)包括關(guān)系型數(shù)據(jù)庫(kù)(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構(gòu)數(shù)據(jù)源之間穩(wěn)定高效的數(shù)據(jù)同步功能。
- DataX的github地址:https://github.com/alibaba/DataX
二、DataX設(shè)計(jì)
- 為了解決異構(gòu)數(shù)據(jù)源同步問(wèn)題,DataX 將復(fù)雜的網(wǎng)狀的同步鏈路變成了星型數(shù)據(jù)鏈路,DataX 作為中間傳輸載體負(fù)責(zé)連接各種數(shù)據(jù)源。當(dāng)需要接入一個(gè)新的數(shù)據(jù)源的時(shí)候,只需要將此數(shù)據(jù)源對(duì)接到 Datax,便能跟已有的數(shù)據(jù)源做到無(wú)縫數(shù)據(jù)同步。
- DataX的設(shè)計(jì)理念是插件式的,這樣后續(xù)有新的數(shù)據(jù)庫(kù),對(duì)源碼改動(dòng)是很少的。
- 對(duì)于一個(gè)數(shù)據(jù)的驅(qū)動(dòng)分為兩種:writer和reader
三、支持的數(shù)據(jù)源
- 對(duì)于文檔那一列,官網(wǎng)給出了 讀和寫(xiě)的配置案例和參數(shù)描述
四、框架設(shè)計(jì)
- Reader:數(shù)據(jù)采集模塊,負(fù)責(zé)采集數(shù)據(jù)源的數(shù)據(jù),將數(shù)據(jù)發(fā)送給Framework。
- Writer:數(shù)據(jù)寫(xiě)入模塊,負(fù)責(zé)不斷向Framework取數(shù)據(jù),并將數(shù)據(jù)寫(xiě)入到目的端。
- Framework:用于連接reader和writer,作為兩者的數(shù)據(jù)傳輸通道,并處理緩沖,流控,并發(fā),數(shù)據(jù)轉(zhuǎn)換等核心技術(shù)問(wèn)題。
五、運(yùn)行原理
- 模塊說(shuō)明:
- Job:單個(gè)作業(yè)的管理節(jié)點(diǎn),負(fù)責(zé)數(shù)據(jù)清理、子任務(wù)劃分、TaskGroup監(jiān)控管理。
- Task:由Job切分而來(lái),是DataX作業(yè)的最小單元,每個(gè)Task負(fù)責(zé)一部分?jǐn)?shù)據(jù)的同步工作。
- Schedule:將Task組成TaskGroup,單個(gè)TaskGroup的并發(fā)數(shù)量為5。
- TaskGroup:負(fù)責(zé)啟動(dòng)Task。
- 舉例
- 舉例來(lái)說(shuō),用戶(hù)提交了一個(gè) DataX 作業(yè),并且配置了 20 個(gè)并發(fā),目的是將一個(gè) 100 張
分表的 mysql 數(shù)據(jù)同步到 odps 里面。 DataX 的調(diào)度決策思路是:- 第一步:DataXJob 根據(jù)分庫(kù)分表切分成了 100 個(gè) Task。
- 第二步:根據(jù) 20 個(gè)并發(fā),DataX 計(jì)算共需要分配 4 個(gè) TaskGroup。
- 第三步:4 個(gè) TaskGroup 平分切分好的 100 個(gè) Task,每一個(gè) TaskGroup 負(fù)責(zé)以 5 個(gè)并發(fā)共計(jì)運(yùn)行 25 個(gè) Task。
- 舉例來(lái)說(shuō),用戶(hù)提交了一個(gè) DataX 作業(yè),并且配置了 20 個(gè)并發(fā),目的是將一個(gè) 100 張
六、DataX和Sqoop對(duì)比
功能 | DataX | Sqoop |
---|---|---|
運(yùn)行模式 | 單進(jìn)程多線(xiàn)程 | MR(分布式) |
MySQL讀寫(xiě) | 單機(jī)壓力大; 讀寫(xiě)力度容易控制; | MR模式重,寫(xiě)出錯(cuò)處理麻煩 |
Hive讀寫(xiě) | 單機(jī)壓力大 | 很好 |
文件格式 | orc支持 | orc不支持,可添加 |
分布式 | 不支持,可以通過(guò)調(diào)度系統(tǒng)規(guī)避 | 支持 |
流控 | 有流控功能 | 需要定制 |
統(tǒng)計(jì)信息 | 已有一些統(tǒng)計(jì),上報(bào)需定制 | 沒(méi)有,分布式的數(shù)據(jù)收集不方便 |
數(shù)據(jù)校驗(yàn) | 在core部分有校驗(yàn)功能 | 沒(méi)有,分布式的數(shù)據(jù)手機(jī)不方便 |
監(jiān)控 | 需要定制 | 需要定制 |