Datax的配置及使用

                                          Datax的配置及使用

1、 DataX3.0概览

  DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能

DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入,具体详情DataX的GitHub地址

2、 DataX3.0的使用


2.1 准备工作
Java版本要求:jdk1.8及以上
参考链接:Linux下jdk环境配置及JDK版本升级
Python版本要求:2.7.X,DataX未更新至Python3
DataX下载:datax下载
当然你还可以去Github去下载源码进行编译,通过此种方式你可以自行选择你需要的配置进行打包,如只需要Mysql的,那么其他的相关支持你都不需要用到,也就不需要都打包,更轻量使用。与此同时,你还需要maven工具进行打包,在pom.Xml中删除你不需要的模块,再执行maven命令:mvn -U clean package assembly:assembly -Dmaven.test.skip=true,生成的文件在/target/datax/datax/下
确保上述步骤都通过后则继续往下看。

2.2 快速上手

2.2.1 构建一个测试数据表

表结构如表2-1所示。

                                                                                                表2-1 测试表结构

字段名

类型

备注

name

varchar

 

age

int

 

age_true

int

 

 并向其中插入几条数据,如表2-2所示。

                                                                                          表2-2 测试表数据

nameageage_true
tom23 
tom23 
tom23 
tom23 
tom23 
tom23 
tom23 
tom23 
...... 

2.2.2 构建任务Json

DataX工具是用json文件作为配置文件的,根据官方提供文档我们构建Json文件如下所示。

{ 
    "job": { 
        "content": [ 
            { 
                "reader": { 
                    "name": "mysqlreader",
                    "parameter": { 
                        "username": "root", 
                        "password": "123456",  
                        "column": ["name","age"], 
                        "where": "age<100", 
                        "connection": [ 
                            { 
                                "table": [ 
                                    "person" 
                                ], 
                                "jdbcUrl": [ 
                                    "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8"
                                ] 
                            } 
                        ] 
                    } 
                }, 
                "writer": { 
                    "name": "mysqlwriter",
                    "parameter": { 
                        "username": "root", 
                        "password": "123456", 
                        "column": ["name","age_true"],
                        "connection": [ 
                            { 
                                "table": [ 
                                    "person" 
                                ], 
                                "jdbcUrl":"jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8"                              
                            } 
                        ]   
                    } 
                } 
            } 
        ], 
        "setting": {
                 "speed": {
                         "channel": 1,
                         "byte": 104857600
                 },
                 "errorLimit": {
                         "record": 10,
                         "percentage": 0.05
      }
    } 
}

它由三部分组成,分别是读,写和通用配置。
Reader部分,也就是读,常用以下几种参数,如表2-3所示。
                                                                                          

表2-3 读属性
参数名解释备注
name与要读取的数据库一致字符串
jdbcUrl数据库链接

数组

会自动选择一个合法的链接

可以填写连接附件控制信息

username数据库用户名字符串,数据库的用户名
password数据库密码字符串,数据库的密码
table要同步的表名数组,需保证表结构一致
column要同步的列名数组
where选取的条件字符串
querySql自定义查询语句会自动忽略上述的同步条件

Writer部分,也就是写,常用以下几种参数,如表2-4所示

2-3 写属性
参数名解释备注
name与要读取的数据库一致字符串
jdbcUrl数据库链接

字符串

不和writer一样

可以填写连接附件控制信息

username数据库用户名字符串,数据库的用户名
password数据库密码字符串,数据库的密码
table要同步的表名数组,需保证表结构一致
column列名可以不对应,但是类型和总的个数要一致数组,需保证表结构一致
preSql写入前执行的语句数组,比如清空表等
postSql写入后执行的语句数组
writeMode写入方式,默认为insert

insert/replace/update

job.setting.speed(流量控制)
Job支持用户对速度的自定义控制,channel的值可以控制同步时的并发数,byte的值可以控制同步时的速度
job.setting.errorLimit(脏数据控制)
Job支持用户对于脏数据的自定义监控和告警,包括对脏数据最大记录数阈值(record值)或者脏数据占比阈值(percentage值),当Job传输过程出现的脏数据大于用户指定的数量/百分比,DataX Job报错退出。
 

2.2.3 执行
Win+R+cmd进入命令行控制台,首先通过java –version和python查看是否满足要求,然后执行:python 空格{datax文件夹路径}\bin\datax.py 空格{json配置文件的路径},如,python D:\download\datax\bin\datax.py D:\download\datax\job\job2.json
接着控制台会打印出相应的信息,控制台乱码输入 chcp空格 65001。

我们可以看到写入数据表中的数据已经发生了变化,此处是将age位置的信息写入到age_true位置上,结果如表2-5所示。
                                                                                         表2-5 DataX写入结果

nameageage_true
tom23 
tom23 
tom23 
tom23 
tom  23
tom  23
tom  23
tom  23
......

至此我们就利用datax进行了一次数据同步

在生产环境中我们往往同步的表很多,每个表用datax进行同步都要有对应的json文件,我们可以利用脚本批量生成json文件,具体可以参考另一篇博客:

本篇博客参考资源:https://blog.csdn.net/qq_28131641/article/details/80540079

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DataX配置参数可以根据具体的需求进行设置。根据引用的描述,DataX支持多种异构数据源之间的数据同步功能。具体的配置参数可以通过引用中提供的Java代码进行配置。 具体来说,DataX配置参数通常包括以下内容: 1. 数据源的配置信息,比如数据库的连接信息、HDFS的配置信息等。 2. 数据源的读取和写入配置,可以设置读取和写入数据的格式、文件路径、字段映射关系等。 3. 同步任务的配置,包括同步的表名、同步的字段、增量同步的配置等。 通过配置这些参数,可以实现DataX的数据同步功能。更详细的配置参数可以参考引用中给出的原文地址。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [DataX3.0配置文件参数详解](https://blog.csdn.net/shenshengsu1990/article/details/120163416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [java使用datax增量同步代码](https://download.csdn.net/download/oceanyang11/85178821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值