- 方案1
- 方案2
- #!/bin/bash
- #数据库名称
- database=$1
- create_table_sql=$2
- #获取hive建表语句
- tables=$(hive -e “use $database ; show tables;” > table_names.txt)
- #指定hive建表所在的数据库
- echo “use $database ;” >> $create_table_sql
- cat table_names.txt | while read eachline
- do
- hive -e “use $database ; show create table $eachline” >> $create_table_sql
- echo “;” >> $create_table_sql
- done
- 方案3:
- #!/bin/bash
- for i in `hive -e “show databases;”`
- do
- hive -S -e “use ${i}; show tables;” > ${i}_tables.txt
- echo “use ${i};” > ${i}_c.hsql
- cat ${i}_tables.txt | while read tbline
- do
- echo “use ${i};show create table ${tbline};” > ${i}_c.hsql
- hive -f ${i}_c.hsql >> ${i}_tbs_struct.txt
- echo ‘;’ >> ${i}_tbs_struct.txt
- done
- done
- hive建表语句批量导出
- 整改后版本
- #!/bin/bash
- ##批量获取hive建表HQL脚本
- #输入数据库
- DB=$1
- #获取hive建表语句
- tables=$(hive -e “use $DB; show tables;”)
- for table in $tables;
- do
- echo “–============ db: $DB , table: $table ============” >> /bak/hive_table_create.hql
- echo “$(hive -e “use $DB;show create table $table;”);” >> /bak/hive_table_create.hql
- done
- hive建表语句批量导出