Shell同步表

不同数据库表同步

rds——>clickhouse

#!/bin/bash

starttime=`date +'%Y-%m-%d %H:%M:%S'`
echo "begin time : ${starttime}"

rds_host="xxxxxx:3306"
rds_database="xxx"
rds_user="xxx"
rds_passwd="xxx"
rds_table="catalog"


ck_host="xxxxxx:8123"
ck_database="xxx"
ck_user="xxx"
ck_passwd="xxx"
ck_table="catalog"

start_time=`date -d "15 minute ago" +'%Y-%m-%d %H:%M:%S'`
end_time=`date +'%Y-%m-%d %H:%M:%S'`

echo "sync data time : ${start_time} ===>>> ${end_time}"

dumpSQL="insert into ${ck_table} select id,item_id,catalog_id,catalog_level,created_at from mysql('${rds_host}', '${rds_database}', '${rds_table}', '${rds_user}', '${rds_passwd}') where created_at>='${start_time}' and created_at<='${end_time}'"

echo "dumpSQL is : ${dumpSQL}"


echo "${dumpSQL}" | curl "http://${ck_host}/?database=${ck_database}&user=${ck_user}&password=${ck_passwd}" -d @-


return_code=$?
echo "return_code: ${return_code}"

if [ $return_code == 0 ]
then
        echo "sync data of ${start_time} ===>>> ${end_time} success finished"
else
        echo  "sync data of ${start_time} ===>>> ${end_time} faild !"
        sh /xxx/ding.sh "sync data of ${rds_table}  ${start_time} ===>>> ${end_time} to clickhouse faild !"   //钉钉报警脚本
fi


optimizeSQL="optimize table ${ck_table}"

echo "start to: ${optimizeSQL} "
echo "${optimizeSQL}" | curl "http://${ck_host}/?database=${ck_database}&user=${ck_user}&password=${ck_passwd}" -d @-

echo "sync end "

endtime=`date +'%Y-%m-%d %H:%M:%S'`
start_seconds=$(date --date="$starttime" +%s);
end_seconds=$(date --date="$endtime" +%s);
echo "本次运行时间: "$((end_seconds-start_seconds))"s"

同一数据库表同步

clickhouse
#!/bin/bash

starttime=`date +'%Y-%m-%d %H:%M:%S'`
echo "begin time : ${starttime}"


ck_host="xxxxx:8123"
ck_database="xx"
ck_user="xxx"
ck_passwd="xxx"
ck_table="catalog"
ck1_table="catalog_test"


start_time=`date -d "15 minute ago" +'%Y-%m-%d %H:%M:%S'`
end_time=`date +'%Y-%m-%d %H:%M:%S'`

echo "sync data time : ${start_time} ===>>> ${end_time}"

dumpSQL="insert into ${ck1_table} select id,name,picture,parent_id,is_active,created_at from mysql('${ck_host}', '${ck_database}', '${ck_table}', '${ck_user}', '${ck_passwd}') where created_at>='${start_time}' and created_at<='${end_time}'"

echo "dumpSQL is : ${dumpSQL}"


echo "${dumpSQL}" | curl "http://${ck_host}/?database=${ck_database}&user=${ck_user}&password=${ck_passwd}" -d @-


return_code=$?
echo "return_code: ${return_code}"

if [ $return_code == 0 ]
then
        echo "sync data of ${start_time} ===>>> ${end_time} success finished"
else
        echo  "sync data of ${start_time} ===>>> ${end_time} faild !"
        sh /xxx/ding.sh "sync data of ${ck_table}  ${start_time} ===>>> ${end_time} to clickhouse faild !"
fi


#optimizeSQL="optimize table ${ck_table}"

#echo "start to: ${optimizeSQL} "
#echo "${optimizeSQL}" | curl "http://${ck_host}/?database=${ck_database}&user=${ck_user}&password=${ck_passwd}" -d @-

echo "sync end "

endtime=`date +'%Y-%m-%d %H:%M:%S'`
start_seconds=$(date --date="$starttime" +%s);
end_seconds=$(date --date="$endtime" +%s);
echo "本次运行时间: "$((end_seconds-start_seconds))"s"```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值