DataX 是阿里巴巴開源的一個異構數據源離線同步工具梁肿,致力于實現包括關系型數據庫(MySQL、Oracle等)觅彰、HDFS吩蔑、Hive、ODPS填抬、HBase烛芬、FTP等各種異構數據源之間穩(wěn)定高效的數據同步功能。
源碼地址:https://github.com/alibaba/DataX
DataX部署
1)下載DataX安裝包并上傳到/opt/software
下載地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
2)解壓datax.tar.gz到/opt/module
tar -zxvf datax.tar.gz -C /opt/module/
3)自檢,執(zhí)行如下命令
python /opt/module/datax/bin/datax.py /opt/module/datax/job/job.json
DataX任務提交命令
DataX的使用十分簡單赘娄,用戶只需根據自己同步數據的數據源和目的地選擇相應的Reader和Writer仆潮,并將Reader和Writer的信息配置在一個json文件中,然后執(zhí)行如下命令提交數據同步任務即可擅憔。
python /opt/module/datax/bin/datax.py /opt/module/datax/job/your-job.json
可以使用如下命名查看DataX配置文件模板鸵闪。
python bin/datax.py -r mysqlreader -w hdfswriter
配置文件模板如下,json最外層是一個job暑诸,job包含setting和content兩部分蚌讼,其中setting用于對整個job進行配置,content用戶配置數據源和目的地个榕。
Reader和Writer的具體參數可參考官方文檔篡石,地址如下:
https://github.com/alibaba/DataX/blob/master/README.md
同步MySQL數據到HDFS案例
案例要求:同步gmall數據庫中base_province表數據到HDFS的/base_province目錄
需求分析:要實現該功能,需選用MySQLReader和HDFSWriter西采,MySQLReader具有兩種模式分別是TableMode和QuerySQLMode凰萨,前者使用table,column械馆,where等屬性聲明需要同步的數據胖眷;后者使用一條SQL查詢語句聲明需要同步的數據。
下面分別使用兩種模式進行演示霹崎。