数据同步工具DataX使用教程
Tanglu 系统运维 2022-09-12 446 0一、DataX简介
DataX是阿里开源的一款异构数据源离线同步工具,可以实现多种关系型和非关系型异构数据库之间的数据同步功能。DataX作为中间传输载体,可以将原数据源无缝同步到新的异构数据源中(可以通过项目地址 https://github.com/alibaba/DataX 查看其所支持的各种数据源)。DataX以插件的形式工作,各个数据源之间有各自的读写模块,比如MySQLReader、HDFSWriter,根据使用不同的插件实现对不同数据源的读写。
DataX任务组成
· Job:单个作业的管理节点,负责数据清理、子任务划分、TaskGroup监控管理
· Task:由Job切分而来,是DataX作业的最小单元,一个大的Job可以分为多个Task,每个Task负责一部分数据的同步
· Schedule:将Task组成TaskGroup,即任务组
DataX与Sqoop主要区别
· DataX是单进程多线程工作
· 读写粒度容易控制
· 不支持分布式
· 支持流控
二、DataX部署与使用
1、提前部署JDK 1.8
2、下载DataX二进制安装包
Bashwget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/20220530/datax.tar.gz
3、解压后的bin目录存放可运行的脚本;conf目录存放了全局核心配置文件core.json;job目录存放所编写的任务脚本,并包含了一个模板文件job.json;lib存放程序公共依赖包;plugin目录存放了各个数据源的依赖包,按照读写的不同又分为了reader和writer,每个数据源下也提供了一个plugin_job_template.json作为模板文件
4、DataX任务配置
由于DataX是插件式工作,不同的reader和writer之间有不同的配置格式,只需要把正确的配置放在json文件中就可以运行。DataX提供了快捷查询配置的命令,只需要替换想要查看的reader或者writer就可以查看配置文件的编写模板。将配置文件保存下来后就可以使用python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json的方式来运行
Bash
bin/datax.py -r mysqlreader -w mysqlwriter #以下是修改后的可用模板{ "job": { "content": [{ "reader": { "name": "mysqlreader", "parameter": { "column": [ "id", "name", "age" ], "connection": [{ "jdbcUrl": ["jdbc:mysql://172.20.1.190:3307/datax_test"], "table": ["datax_test1"] }], "password": "123456", "username": "root", "where": "" } }, "writer": { "name": "mysqlwriter", "parameter": { "column": [ "id", "name", "age" ], "connection": [{ "jdbcUrl": "jdbc:mysql://172.20.1.191:3307/datax_test", "table": ["datax_test1"] }], "password": "132456", "preSql": [], "session": [], "username": "root", "writeMode": "insert" } } }], "setting": { "speed": { "channel": "1" } } }}
5、运行DataX,然后观察数据同步结果
Bash#将上面的配置文件保存在job/mysql2mysql.json中
bin/datax.py job/mysql2mysql.json
--------------------
转载内容敬请保留出处,谢谢合作!
原文地址:https://www.linuxe.cn/post-735.html 标签:教程,同步,数据源,job,json,DataX,datax From: https://www.cnblogs.com/yaoyangding/p/17024611.html