阿里云odps多线程批量清理project数据

1、配置需要清理project清单

[root@ecs /home/caoyu/odps/drop_project]$ cat projects_list
odps1_uat1
odps2_uat1

2、执行删除数据脚本

[root@ecs /home/caoyu/odps/drop_project]$ cat drop_projects.sh
#!/bin/sh
#project="bdm_mkt_uat1"
start_time=`date +%s`  #定义脚本运行的开始时间

tmp_fifofile="/tmp/$$.fifo"
mkfifo $tmp_fifofile   # 新建一个FIFO类型的文件
exec 6<>$tmp_fifofile  # 将FD6指向FIFO类型
rm -rf $tmpfofile  #删也可以,

thread_num=5  # 定义最大线程数

#根据线程总数量设置令牌个数
#事实上就是在fd6中放置了$thread_num个回车符
for ((i=0;i<${thread_num};i++));do
    echo
done >&6

odpscmd=/home/caoyu/odpscmd_dst/bin/odpscmd
conf=/home/caoyu/odpscmd_dst/conf/odps_config.ini
for project in `cat projects_list`
do
        tables=$($odpscmd --config=$conf -e "use $project;show tables"|awk -F: '{print $NF}')
        for table in $tables
        do
            read -u6
            {
                $odpscmd --config=$conf -e "use $project;drop table $table"
                echo >&6
            } &
        done
done

wait # 要有wait,等待所有线程结束

stop_time=`date +%s` # 定义脚本运行的结束时间
echo "TIME:`expr $stop_time - $start_time`" # 输出脚本运行时间

exec 6>&- # 关闭FD6
echo "over" # 表示脚本运行结束
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值