jdk1.8及以上
python2
yum install -y java-1.8.0-openjdk.x86_64
查看是否安装成功
java -version
yum install -y python
查看python版本号,判断是否安装成功
python --version
tar -zxvf datax.tar.gz
在datax/job下,json格式,具体内容及主要配置含义如下
mysqlreader为读取mysql数据部分,配置mysql相关信息
username,password为数据库账号密码
querySql:需要查询数据的sql,也可通过colums指定需要查找的字段(querySql优先级高)
elasticsearchwriter部分为数据写入ES部分,配置ES相关信息,
endpoint为ES地址,index为索引,columns为需要写入列的信息,其余配置选填
坑!:若运行时提示mysql连接失败,且账号密码,ip,端口号都没问题的情况下,需要像文中一样在jdbcUrl的内容后面加上useSSL=false"
vim /opt/software/datax/job/job.json
将内容换成以下内容
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"percentage": 0
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "123456",
"connection": [{
"querySql": ["select * from user_t"],
"jdbcUrl": ["jdbc:mysql://数据库地址:3306/mysql?useSSL=false"]
}]
}
},
"writer": {
"name": "elasticsearchwriter",
"parameter": {
"endpoint":"http://ES地址:9200",
"accessId":"",
"accessKey":"",
"index": "user-demo",
"cleanup": false,
"discovery":false,
"column": [
{
"name": "id",
"type": "id"
},
{
"name": "userName",
"type": "text"
},
{
"name": "address",
"type": "text"
}
]
}
}
}
]
}
}
配置好之后执行命令:
python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json
注意换成自己的datax路径
正常情况下输出一大堆之后会是这样,由于我在mysql表中插了三条测试数据,,所以读出记录总数为3
完成操作
vim crondatax
内容:
5 13 * * * python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json
/opt/software/datax/log.
date +\%Y\%m\%d\%H\%M\%S
2>&1
含义为每天13:05执行python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json 命令,日志输出地址为/opt/software/datax,命名为“log.时间”
crontab格式可参考下图:
crontab crondatax
/sbin/service crond restart
crontab -l
数据库表设计时加入最后操作时间字段,新增,修改数据都会记录最新时间
Datax的json中,mysql查询语句中按照定时任务规律,查询此字段时间大于定时任务时间间隔之前的时间的数据。