shell脚本导出hive数据库和表信息到csv(数据资产盘点)

当我们想统计下现有的数据库下有哪些表,以及表的相关信息,需要做数据资产盘点,发现数据库和表太多的时候,当然是想通过脚本自动的去获取,以下脚本实现了扫描hive库下的表信息并输出到csv

# 获取所有数据库
databases=(`hive -e "show databases;"`);
# 遍历得到每个数据库
for database in ${databases[*]}
do
    # 获取得到数据库下所有表
    tables=(`hive -e "use ${database};show tables;"`);
    # 遍历得到每个表
    for table in ${tables[*]};
    do
        echo "===============开始操作${database}.${table}==============="
        # 获取表路径,有一条是sparkSQL创建的,过滤掉,并去除单引号,单引号在执行的时候会有一些问题
        hdfs_path=(`hive -e "show create table ${database}.${table}" | grep hdfs | grep -v 'path' | sed $'s/\'//g'`);

        # 获取表数据量
        data_size=`hdfs dfs -du ${hdfs_path} | awk '{ SUM += $1 } END { print SUM/1024/1024}'`
        # 获取hdfs文件最后一次访问或者更新时间
        last_updatetime=`hdfs dfs -ls ${hdfs_path} | sort -k6,7 | tail -1 | awk '{print $6" "$7}'`
        result=${database}","${table}","${hdfs_path}","$last_updatetime","${data_size};

        echo ${result} >> /home/test/databases_tables.csv
        echo "===============操作完成${database}.${table}==============="
    done
done


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值