一、介绍
DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
github地址
详细文档
操作手册
支持数据框架如下:
架构
Reader:为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
Writer:为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
Framework:用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
二、使用
- 下载
下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz
- 解压缩
# 解压缩
tar -zxvf datax.tar.gz -C /opt/module/
- 编写数据同步任务
{
"job": {
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"sliceRecordCount": 10,
"column": [
{
"type": "long",
"value": "10"
},
{
"type": "string",
"value": "hello,datax"
}
]
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"encoding": "UTF-8",
"print": true
}
}
}
],
"setting": {
"speed": {
"channel": 5
}
}
}
}
- 启动任务
python /opt/module/datax/bin/datax.py /opt/module/datax/job/stream_to_stream.json
- 执行结果
- 配置说明
参数 | 说明 |
---|---|
job.setting | 设置全局配置参数 |
job.setting.speed | 控制任务速度配置参数,包括:channel(通道(并发))、record(字节流)、byte(记录流)等三种模式 |
job.setting.speed.channel | 并发数 |
job.setting.speed.record | 字节流 |
job.setting.speed.byte | 记录流 |
job.setting.errorLimit | 设置错误限制 |
job.setting.errorLimit.record | 指定允许的最大错误记录数 |
job.setting.errorLimit.percentage | 指定允许的最大错误记录百分比 |
job.setting.dirtyDataPath | 设置错误限制 |
job.setting.dirtyDataPath.path | 设置错误限制 |
job.setting.log | 设置错误限制 |
job.setting.log.level | 设置错误限制 |
job.setting.log.dir | 设置错误限制 |
content | 任务配置参数 |
reader | Reader配置 |
name | Reader类型 |
parameter | Reader具体配置(具体配置查看具体Reader) |
writer | Writer配置 |
name | Writer类型 |
parameter | Writer具体配置(具体配置查看具体Writer) |
三、常用配置
3.1、MysqlReader
{
"job": {
"setting": {
"speed": {
"channel": 3
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "root",
"column": [
"id",
"name"
],
"splitPk": "db_id",
"connection": [
{
"table": [
"table"