原文鏈接:風一帶你一起用這個牛逼的大資料工具
人只是一根蘆葦,是自然界最脆弱的東西,但他是一根會思想的蘆葦
大家好, 我是風一,前幾天有同事找我這邊同步資料、大致需求就是將不同服務器上的不同資料庫進行定時的相互同步;這讓我一下子就想到老早之前使用過的阿里離線同步工具 DataX;由于有很長一段時間沒使用過了、在具體使用的程序中還碰到了一些小麻煩、因此這里做一下資料復習和總結、主要分為以下幾個內容:
- 一、DataX 的簡介
- 二、DataX 的配置
- 三、DataX 的使用
歡迎關注微信公眾號、一起交流,學習,

DataX的簡介:
-
作用:DataX 是一個異構資料源同步工具,致力于實作包括關系型資料庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構資料源之間的穩定高效的資料同步作業,
-
DataX框架設計
DataX本身作為離線資料同步框架,采用Framework + plugin架構構建,將資料源讀取和寫入抽象成為Reader/Writer插件,納入到整個同步框架中,
Reader:Reader為資料采集模塊,負責采集資料源的資料,將資料發送給Framework,
Writer: Writer為資料寫入模塊,負責不斷向Framework取資料,并將資料寫入到目的端,
Framework:Framework用于連接reader和writer,作為兩者的資料傳輸通道,并處理緩沖,流控,并發,資料轉換等核心技術問題,
- DataX 插件體系
經過幾年積累,DataX目前已經有了比較全面的插件體系,主流的RDBMS資料庫、NOSQL、大資料計算系統都已經接入、這里只放入我們常用的關系型資料庫資料:
DataX的配置:
- 下載:
DataX下載使用非常方面、大家可直接在網上搜索自行下載、然后直接解包就可以使用了、下圖為解包后的檔案:
-
配置
1、Python版本的問題:DataX下載默認是支持 Python2的版本、但我們目前大部分都是使用 Python3版本的、因此,就需要我們修改 bin/datax.py 檔案:修改地方有兩個:print列印的不同、except例外處理不同;這里風一是直接將datax.py檔案在pycharm中打開、這樣直接就知道哪里例外了、修改就可以正常使用了,
默認的Python2版本語法,Python3版本會提示例外:
2、資料庫的一些配置:操作SQLSERVER資料庫需要啟開TCP/IP、否則可能會報錯、開啟的路徑:在桌面的計算機上右鍵打開“管理”,然后選擇“服務和應用程式”-“SQL Server配置器管理”-“SQL Server 網路配置”-“SQLEXPRESS的協議”看一下TCP/IP是否啟用,如果沒有的話滑鼠右鍵啟動;另外MySQL也是需要下載MySQL的jar包、放置datax/lib 中、否則MySQL可能是無法正常訪問的或者DataX提示插件例外,
3、執行檔案.json的配置
最終我們配置的資料庫的相應操作都是在.json中配置的、我們需要分別配置讀取和寫入的資料庫相關資訊以及所需的陳述句;各資料庫的詳細配置直接可以在 https://github.com/alibaba/DataX 網址進行查看,這里貼出 MySQL讀取、Oracle資料庫寫入的json配置:
DataX的使用:
DataX是通過 Python運行 datax.py 調取 .json的組態檔進行運行的、并且安裝包中提供了一個 job.json檔案用于我們測驗 DataX 是否可正常運行;首先我們需要找到 bin/datax.py檔案、然后cmd進入、代碼和結果如下:
# 解決中文亂碼
chcp 65001
# 呼叫 datax.py檔案運行job檔案夾中的job.json檔案
python datax.py ../job/job.json
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356931.html
標籤:其他
上一篇:RabbitMQ的死信佇列
下一篇:大資料分析,到底分析了啥?
