删除doris 过期分区脚本
#!/bin/bash
#待检测表
t1=proj_dwd_area_model_md.dwd_md_testdata_detail_acq_for_sac_0
t2=proj_dwd_area_model_md.dwd_md_testdata_detail_acq_for_sac_1
#将待检测的目录(可以为多个)加载至数组中
array_check=($t1 $t2)
s=""
#过期日期
m1=$(date -d "-30 days" +"%Y%m%d")
echo $m1
#Func: 删除指定时间之前的过期,这里设置的是30天前
removeOutDate(){
sss="show partitions from "$1
echo $sss
#mysql -ub_na -p0QTgwMAog -h 10.11.999.999 -P 9030 -e "$sss" | grep tag |awk '{gsub("-", "", $4)}; {print $4" "$2}'|awk -v a=$m1 '$1<a {print $2}' | while read delpt
mysql -ub_na -pwNDA0QTgwMAog -h 10.11.999.999 -P 9030 -e "$sss" | grep tag |awk '{print $2}'|awk -F "_" -v a=$m1 '$3<a {print $0}' | while read delpt
do
ss="ALTER TABLE "$1" DROP PARTITION "$delpt";"
echo $ss
#mysql -ub_na -pwNDA0QTgwMAog -h 10.11.999.999 -P 9030 -e "$ss"
done
}
#Func: 执行删除
execute(){
echo -e "\n\n"
echo "$(date +'%Y-%m-%d %H:%M:%S') start to deltable"
for i in ${array_check[@]}
do
echo "$(date +'%Y-%m-%d %H:%M:%S') processing deltable: $i"
removeOutDate $i
echo -e "\n"
done
echo "$(date +'%Y-%m-%d %H:%M:%S') remove finished"
echo -e "\n\n"
}
#开始执行
execute