datax使用

一、简介

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。DataX采用了框架 + 插件 的模式,目前已开源,代码托管在github。

 

二、环境

开发环境:win10,JDK1.8,python3.7,mysql5.7

工具:    pycharm2018.3.1

代码:https://github.com/alibaba/DataX

三、测试

配置测试样例:下面我们配置一组 从mysql数据库到另一个mysql数据库。

根据github上拉下来的代码在pychrm里面导入项目

由于datax是基于python2.7做的,我们的环境是3.x所以需要把bin下面的三各文件改一下适配3.x环境。(网上有适配文件自行替换)

  1. 在job下新建json文件(文件名随意)

根据github上的使用方法写json

根据自己需求查看读写json格式,我们是从mysql读在写入mysql,json如下:

官方json读

官方json写

自己修改后json

{

    "job": {

        "setting": {

            "speed": {

                 "channel":1

            }

        },

        "content": [

            {

                "reader": {

                    "name": "mysqlreader",

                    "parameter": {

                        "username": "root",

                        "password": "123456[1] ",

                      "column[2] ": [

                            "rs",

                            "name",

                            "sl"

                        ],

                        "connection": [

                            {

                                "jdbcUrl[3] ": ["jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8"],

                                "table[4] ": ["cs_bj"]

                            }

                        ]

                    }

                },

                "writer": {

                    "name": "mysqlwriter",

                    "parameter": {

                        "writeMode": "insert[5] ",

                        "username": "root",

                        "password": "123456[6] ",

                        "column[7] ": [

                            "rs",

                            "name",

                            "sl"

                        ],

                        "session": [

                        "set session sql_mode='ANSI'"

                        ],

                        "preSql[8] ": [

                            "delete from cs_bj1"

                        ],

                        "connection": [

                            {

                                "jdbcUrl[9] ": "jdbc:mysql://127.0.0.1:3306/bjxt?useUnicode=true&characterEncoding=gbk",

                                "table[10] ": [

                                    "cs_bj1"

                                ]

                                           }

                        ]

                    }

                }

            }

        ]

    }

}


 [1]数据库账号密码

 [2]要同步的字段

 [3]Jdbc数据库连接

 [4]要同步的表名

 [5]要写入的操作insert/replace/update

 [6]写入数据库的账号密码

 [7]写入的字段必须与读出字段一致

 [8]在写入前对表的操作sql,根据自己实际需求写

 [9]连接写入数据库jdbc

 [10]写入的表

3.启动DataX

启动之前(读)数据库(185条数据)

需写入的数据库

启动

命令:python datax.py F:\python_work\datax\job\mysql_w.json

启动之后数据库

 

4.后续:

日志乱码问题处理:输入CHCP 65001

从新执行一下命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值