批量删除hive表分区

来源:互联网 发布:js utc转换 gmt 8000 编辑:程序博客网 时间:2024/05/21 18:48

执行shell脚本批量删除hive表分区

执行命令: sh delete_partitions.sh schema.table_name 2017-11-01 2017-12-01


delete_partitions.sh脚本如下:

#!/bin/shif [ $# == 3 ]; then    begin_date=`date -d "+0 day $2" +%Y-%m-%d`    end_date=`date -d "+0 day $3" +%Y-%m-%d`    date=${end_date}    sql=''    while [[ "${date}" > "${begin_date}" || "${date}" = "${begin_date}" ]]          do              echo $date              sql=${sql}"ALTER TABLE $1 DROP IF EXISTS PARTITION(date = '$date');"              echo ${sql}              date=`date -d "$date -1 days" +"%Y-%m-%d"`          done     echo "hive -e '${sql}' "    hive -e "${sql}"elif [ $# == 1 ]; then    date=`date -d -1days '+%Y-%m-%d'`    echo "hive -e 'ALTER TABLE $1 DROP IF EXISTS PARTITION(date = '$date');'"    hive -e "ALTER TABLE $1 DROP IF EXISTS PARTITION(date = '$date');"else     echo 'Parameter error!'fi


原创粉丝点击