datax的使用

256 阅读1分钟

1. 初始化datax模板

  • 在datax解压后的 bin 目录下执行如下命令生成模板:
#1.生成 streamreader -> streamwriter 的模板
python datax.py -r streamreader -w streamwriter

#2.生成 mysqlreader -> mysqlwriter的模板
python datax.py -r mysqlreader -w mysqlwriter	# mysqlreader是由两部分组成【数据源类型+读取】,同理mysqlwriter由两部分组成【数据源类型+写入】

2. MySQL->MySQL

  • 下面是从一个MySQL表中同步数据到另外一个MySQL表中
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",	//读取端
                    "parameter": {
                        "column": ["id","name","gender"], //获取的表字段
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://192.168.26.1:3306/test"],	//数据库连接
                                "table": ["student"]	//需要读取的数据表名
                            }
                        ],
                        "password": "root",	//数据源密码
                        "username": "root", //数据源用户名
                        "where": ""
                    }
                },
                "writer": {
                    "name": "mysqlwriter", //输入端
                    "parameter": {
                        "column": ["stu_gender","stu_name","stu_id"], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://192.168.159.36:3306/test",
                                "table": ["student"]
                            }
                        ],
                        "password": "root",
                        "preSql": [],
                        "session": [],
                        "username": "root",
                        "writeMode": "insert" //输入端执行的操作 常见的是 insret、update
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}
  • 注意:就是此处不需要注意 column 中的字段名是否不同,因为数据输入的时候是按照列号进行匹配的