检查hive上的数据分区

在hive上,检测分区是否产生的方法很简单:

show partitions db.table

数据库名.表名即可

当然也可以以如下的方式展开:

use db;

show parttions table


很多时候,我们生成分区的程序和后面根据分区成功进行的其他操作的程序并不是在一起的,如果分区不成功就继续下面的任务,会导致最后的结果不正确或是不存在。那如何检测你想要的分区是否生成了呢?我们可以写一个shell脚本。


function check_partition(){
   #table,dt
   temp=`hive -e "show partitions $1"`
   echo $temp|grep -wq "$2"
   if [ $? -eq 0 ];then
       echo "ok"
       return 0
    else
       return 1
    fi  
}

传参的时候只要传递表名和所要检测的分区名即可

当有多个分区的时候,比如有day和hour两个分区,大同小异

function check_partition_hm(){
   #table,dt,hour
   temp=`hive -e "show partitions $1"`
   echo $temp|grep -wq "day=$2/hour=$4"
   if [ $? -eq 0 ];then
       echo "ok"
       return 0
    else
       return 1
    fi  
}

注意:要标注好day=以及hour=,因为有时候昨天6点的分区生成,今天5点的分区也生成,要是分开grep的话,会得到今天6点的分区已经生成的结果,so~



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值