现在hive没有类似mysql那种可以直接导出数据库建表语句,只能通过shell去实现其等同的功能:
脚本内容如下:
hive -e "show databases;" > /home/eptok/tb.txt
dir=/home/eptok/tb.txt
dir1=/home/eptok/tb1.txt
dir2=/home/eptok/ods.txt
cat $dir | while read line
do
result=`echo "$line"`
echo $result
if [ $result != "" ];then
hive -e "use $result;show tables;" > ${dir1}
cat $dir1 | while read line1
do
if [ $line1 != "tab_name" ];then
echo $result.$line1 >> ${dir2}
hive -e "use $result;show create table $result.$line1;" | grep -v createtab_stmt >> ods.sql
fi
done
fi
done