使用shell脚本批量删除hive表

这两天由于测试程序,在hive的库里面建了好多表,测试完之后这些表就都没用了,几十个表要一个一个手动删除是很痛苦的,于是想到使用shell脚本来自动批量删除。

另外库里面的有些表是还有用的,有些表是没有用的,所以不能清库,所以我想到将要删除的表的表名写入一个文件中,然后使用shell来去读这个文件,从而批量删除指定要删除的表。

脚本如下:

#!/bin/bash

cat dtables.txt | while read line
do
echo "drop table $line;" >>tt.txt
done
tables=`cat tt.txt`
hive -e "use default;$tables"
rm -f tt.txt

首先,按行读取dtables.txt(事先将要删除的表名写入该文件)文件,即读取每一个要删除的表的表名;

然后,循环将删表语句"drop table tablename;"按行写入tt.txt这个临时文件中,即为每个待删除的表生成一个删表语句;

之后,启动hive,见所有的删表语句输出,执行删表操作;

最后,删除临时表tt.txt。

就这样,一个简单的批量删除hive表的脚本就完成了。

猜你喜欢

转载自blog.csdn.net/big_data1/article/details/81989793