MySQL
容器准备
docker pull mysql:5.6
docker run -p 3306:3306 --name hello_mysql -d -e MYSQL_ROOT_PASSWORD=root mysql:5.6
docker exec -it hello_mysql bash
数据准备
mysql -uroot -proot连入mysql
先创建一个数据库
create database db_datax;
use db_datax
再创建表格并插入数据
create table if not exists tb_employee (id int, salary int);
truncate table tb_employee ;
insert into tb_employee (id, salary) values ('1', '100');
insert into tb_employee (id, salary) values ('2', '200');
insert into tb_employee (id, salary) values ('3', '300');
数据准备好后能够退出容器,但不要关闭python
查看ip
docker inspect --format='{
{.NetworkSettings.IPAddress}}' hello_mysql
DataX
ping 172.17.0.3先测试一下DataX的容器可否访问到MySQL的容器,通常来讲使用默认network,两个容器应该能正常通讯。mysql
cd /opt/modules/datax
vi ./job/mysql2stream.jsonweb
{
"job": {
"setting": {
"speed": {
"channel": 3
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "root",
"column": [
"id",
"salary"
],
"splitPk": "id",
"connection": [
{
"table": [
"tb_employee"
],
"jdbcUrl": [
"jdbc:mysql://172.17.0.3:3306/db_datax"
]
}
]
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"print":true
}
}
}
]
}
}
python ./bin/datax.py ./job/mysql2stream.json
sql