DataX-多数据库同步迁移工具的安装与使用全过程-亲测实践

DataX-多数据库同步迁移工具的安装与使用全过程-亲测实践

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。

  • cmd乱码解决:输入CHCP 65001

一、安装

1、下载压缩包

https://github.com/alibaba/DataXhttps://github.com/alibaba/DataX/blob/master/userGuid.md

2、下载Python

官方推荐2.6.x

3、配置python环境变量

2.6版本的python需要自己配环境变量
3.x以上不用

  • 在path下添加python安装路径
    image-20200808102739769
  • 这里有个坑需要注意下,如果系统环境变量配置以后不成功,就将用户环境变量也配置下
    image-20200808102739769
  • 出现如下表示成功
    image-20200808103237537

如果用utools的工具的请注意下,utools打开的cmd总是会执行失败,要用ctrl+R打开cmd

4、解压Datax

解压后有几个目录

二、使用步骤

  • Datax一定不要安装在Program Files这种带空格的文件夹内,不然报错
  • 再次强调:一定一定要使用python2,使用python3会报错
    因为后面执行datax.py的时候,里面的python的print会执行不了,导致运行不成功,会提示你print语法要加括号,python2中加不加都行 python3中必须要加,否则报语法错

1、打开cmd切换到bin目录下

python datax.py -r {YOUR_READER} -w {YOUR_WRITER}
python datax.py -r sqlserverreader -w mysqlwriter

image-20200808120048583

当然也可以从 https://github.com/alibaba/DataX 自行配置。
image-20200808120424535

2、在bin下创建json文件夹并创建json文件

  • 根据配置文件模板填写相关选项
  • 根据模板配置json文件(sqlserver2mysql.json)如下:
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "sqlserverreader", 
                    "parameter": {
                        "column": [
							"ORG_ID",
                            "NAME",
                            "NAME",
                            "1",
                            "0",
                            "1",
                            "EXPIRED_TIME",
                            "1",
                            "REG_TIME"
						], 
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:sqlserver://localhost:1433;DatabaseName=jxs2"], 
                                "table": ["JX_ORG"]
                            }
                        ], 
                        "username": "sa",
                        "password": "123456" 
                    }
                }, 
                "writer": {
                    "name": "mysqlwriter", 
                    "writeMode": "insert",
                    "parameter": {
                        "column": [
                        	"id",
                            "name",
                            "remark",
                            "is_enable",
                            "is_deleted",
                            "creator_id",
                            "create_time",
                            "modifier_id",
                            "modify_time"
						], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/smart_meal_order?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&tinyInt1isBit=false&allowMultiQueries=true", 
                                "table": ["tb_org"]
                            }
                        ], 
                        "username": "root",
                        "password": "123456" 
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

3、启动datax.py脚本文件

  • 启动命令
python datax.py ./json/tb_org.json

image-20200808121218078

image-20200808121254943
  • 出现的问题:
    Python版本要为2,原因前面已经说过了
    cmd乱码解决:输入CHCP 65001
    数据库中的数据中文乱码解决:在json文件中jdbcUrl项加上:?characterEncoding=utf8
jdbc:mysql://127.0.0.1:3306/smart_meal_order?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&tinyInt1isBit=false&allowMultiQueries=true

Q.E.D.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水豚少年的码农生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值