DataX | MySQL多表定时增量同步,MySQL到MySQL

增量同步和全量同步是数据库同步的两种方式。全量同步是一次性同步全部数据,增量同步则只同步两个数据库不同的部分。由于遇到的项目是从A库每天将增量数据同步到B库。所以考虑采用多表定时增量同步。

一. 确定增量同步的判断字段,可用ID也可以用时间。
由于需求是按天将前一天的数据从A到B,所以将A库中的字段统计日期(tjrq) 作为判断条件。

tjrq是yyyy-mm-dd格式的日期

二. 编写shell脚本,配置读库(reader)和写库(writer)的连接地址、端口、账号、密码等。示例:etl.sh

#!/bin/bash
. /etc/profile
# 当前时间(用于增量同步判断条件)
curr_time=$(date -d last-day +%Y-%m-%d)
# 读库的IP
r_ip="255.255.255.0"
# 读库的端口
r_port="3306"
# 读库的数据库名称
r_dbname="dbname1"
# 读库的账号
r_username="root"
# 读库的密码
r_password="123456"
# 写库的IP
w_ip="255.255.255.0"
# 写库的端口
w_port="3306"
# 写库的数据库名称
w_dbname="dabname2"
# 写库的账号
w_username="root"
# 写库的密码
w_password="123456"
# DataX增量同步(多个文件直接写多个执行命令)
python /datax/bin/datax.py  /datax/job/ETL/table1.json  -p "-Dcurr_time=$curr_time -Dr_ip=$r_ip -Dr_port=$r_port -Dr_dbname=$r_dbname -Dr_username=$r_username -Dr_password=$r_password -Dw_ip=$w_ip -Dw_port=$w_port -Dw_dbname=$w_dbname -Dw_username=$w_username -Dw_password=$w_password"  >>/MySql/log/etl_sh$(date "+%Y%m%d").log  2>&1 &

-Dcurr_time 对应json文件中的tjrq参数;

三. 编写json脚本,配置读取和写入的表。示例:etl.json

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值