查看hive表(分区)大小,支持多写法

针对hive内表,经常要查看表大小或分区路径设置的脚本

#!/bin/bash
. /etc/profile
. ~/.bash_profile
. ~/.bashrc
# 参数 "tmp" "tmp_20200808" "201909"
if [[ $# = 3 ]];then
    database=$1
    table_name=$2
    hadoop fs -du -h /user/hive/warehouse/${database}".db"/${table_name} |grep $3
# 参数 "tmp.tmp_20200808" "201909"
elif [[ $# = 2 ]] && [[ $1 =~ '.' ]]; then
    avg=$1
    database=`echo ${avg}|awk -F'.' '{print $1}'`
    table_name=`echo ${avg}|awk -F'.' '{print $2}'`
    hadoop fs -du -h /user/hive/warehouse/${database}".db"/${table_name} |grep $2
# 参数 "tmp" "tmp_20200808"
elif [[ $# = 2 ]]; then 
    database=$1
    table_name=$2
    hadoop fs -du -h /user/hive/warehouse/${database}".db"/${table_name}
#参数 "tmp.db/tmp_20200808"
elif [[ $# = 1 ]] && [[ $1 =~ '.db' ]]; then
    avg=$1
    database=`echo ${avg}|awk -F'/' '{print $1}'`
    table_name=`echo ${avg}|awk -F'/' '{print $2}'`
    hadoop fs -du -h /user/hive/warehouse/${database}/${table_name}
elif [[ $# = 1 ]]; then 
    avg=$1
    database=`echo ${avg}|awk -F'.' '{print $1}'`
    table_name=`echo ${avg}|awk -F'.' '{print $2}'`
    hadoop fs -du -h /user/hive/warehouse/${database}".db"/${table_name}
else 
  echo "检查参数个数和格式"
fi

用法

脚本名: hdfsdu.sh
在~/.bashrc 中添加,workdir 为脚本目录

alias hdfsdu="sh ${workdir}/hdfsdu.sh"

保存并刷新资源 source ~/.bashrc

#查看整库
hdfsdu tmp
#查看某个表所有一级分区或分区表文件
hdfsdu tmp.table_name
# 支持路径形式库表名
hdfsdu tmp.db/table_name
#支持过滤特定分区
hdfsdu tmp.db/table_name 20210919
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值