clickhouse清除表数据
#!/bin/bash
table_name=表名称关键字 #统一的前缀设置
ipaddrs='ip,ip,ip,...'
ck_home=/opt/software/clickhouse
exec_sql(){
if [ -z "$1" ];then
echo "[x] IP地址为空"
exit
else
ipaddr=$1
fi
${ck_home}/bin/clickhouse-client --host=${ipaddr} --port=端口 --user=admin --password=密码 --database=ck库名称 -q "$2"
}
clean_ck_data(){
if [ -z "$1" ];then
echo "[x] IP地址为空 clean"
exit
else
ip_addr=$1
fi
echo "@ exec clean for ${ip_addr}"
clean_sql=`exec_sql "${ip_addr}" "SELECT database,table,partition,partition_id,name,path FROM where table like '${table_name}%' order by partition_id asc;"|awk '{printf "alter table xuanji_dwd.%s drop partition %s;\n",$2,$3}'`
OLD_IFS=$IFS
IFS=$'\n'
for sql in ${clean_sql};do
exec_sql "${ip_addr}" "$sql"
done
IFS=$OLD_IFS
}
for ip in ${ipaddrs};do
clean_ck_data "$ip"
done