Bootstrap

datax使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

datax的使用流程和本人踩的坑

一、datax的使用流程

以mysql->mysql为例
datax使用流程(macOS版本

  1. 官网下载datax
    进入bin目录
    开终端
    创建json同步文件
    python3 datax.py -r mysqlreader -w mysqlwriter > mysql2mysql.json

  2. mysql创建需要的数据库表
    – 创建一个名为t_user1的表,包含id(主键), nameemail
    CREATE TABLE t_user1 (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    PRIMARY KEY (id)
    );

– 插入一些示例数据
INSERT INTO t_user1 (name, email) VALUES
(‘zhangsan’, ‘[email protected]’),
(‘lisi’, ‘[email protected]’),
(‘wangwu’, ‘[email protected]’);

CREATE TABLE t_user2 (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);

  1. 配置json文件

示例


{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": ["id","name","email"],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://localhost:3306/。。。"],
                                "table": ["t_user1"]
                            }
                        ],
                        "password": "。。。",
                        "username": "root",
                        "where": ""
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": ["id","name","email"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://localhost:3306/。。。",
                                "table": ["t_user2"]
                            }
                        ],
                        "password": "。。。",
                        "preSql": [],
                        "session": [],
                        "username": "root",
                        "writeMode": "INSERT"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}
  1. 运行同步文件
    python3 datax.py mysql2mysql.json

二、我踩的坑

1.json格式相关

  1. 在最开始
python3 datax.py -r mysqlreader -w mysqlwriter > mysql2mysql.json

一步生成的mysql2mysql.json文件中,前半部分有阿里的注视,需要删掉。
2. 对于写入的数据库,的jdbc不能有"[]",因为只支持写入到一个库中

2.mysql配置

password 和password必须要有,如果是root用户,密码默认为空,需要去mysql设置密码:

mysql -u root -p
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
FLUSH PRIVILEGES;  

3.我自己蠢

“writeMode”: “INSERT”
而不是! “INSERT INTO”

总结

革命尚未成功 派派仍需努力

;