• 方案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

作者 admin

张宴银,大数据开发工程师

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注