相关命令
导出表结构:
show create table <表名>
通过 shell 命令批量导出全部库表结构
#!/bin/bash
rm -rf databases.txt
hive -e " show databases; exit ;" > databases
#sleep(2)
rm -rf ./tables/*
for database in `cat databases`
do
{
hive -e " use ${database} ; show tables ; exit ;" > ./tables/${database}
rm -rf ./desc_table/${database}
for table in `cat ./tables/${database}`
do
mkdir -p ./desc_table/${database}
hive -e "use ${database} ; show create table $table ;" > ./desc_table/${databas}/${table}
done
}&
done
wait
批量导出某库下表结构(test.sh):
#!/bin/bash
database=$1
for table in `cat ./tables/${database}`
do
echo ${table}
mkdir -p ./desc_table/${database}
hive -e "use ${database} ; show create table ${table} ;" > ./desc_table/${database}/${table}
done
wait
使用方式:
./test.sh <库名>
批量导出某库下表结构,方案2(hive_table_dd.sh):
#!/bin/bash
rm -f tableNames.txt
rm -f HiveTableDDL.txt
hive -e "use $1; show tables;" > tableNames.txt
wait
cat tableNames.txt |while read LINE
do
hive -e "use $1;show create table $LINE" >>HiveTableDDL.txt
echo -e "\n" >> HiveTableDDL.txt
done
rm -f tableNames.txt
echo "Table DDL generated"
使用:
>bash hive_table_dd.sh <<databasename>>
注: $1 即调用脚本时输入的第一个参数值。
> file 将输出重定向到 file。
>> file 将输出以追加的方式重定向到 file。