导出hive中所有的建表语句

瑾谋

关注

阅读 30

2023-10-16

#!/usr/bin/bash

# 获取当前脚本所在路径
cur_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd ${cur_dir}

# 导出所有hive数据库名
hive -e "show databases;" > ${cur_dir}/all_database.db
# 删除导出文件中的警告信息
sed -i '/^WARN:/d' ${cur_dir}/all_database.db

# 导出各个hive库下的所有表
for database in `cat ${cur_dir}/all_database.db`
do
    hive -e "use ${database};show tables;" > ${cur_dir}/${database}.tb
    sed -i '/^WARN:/d' ${cur_dir}/${database}.tb
    # 导出建表语句
    for table in `cat ${cur_dir}/${database}.tb`
    do
        hive -e "show create table ${database}.${table};" >> ${cur_dir}/${database}_all_DDL.sql
        sed -i '/^WARN:/d' ${cur_dir}/${database}_all_DDL.sql
        echo ";" >> ${cur_dir}/${database}_all_DDL.sql 
    done
done

精彩评论(0)

0 0 举报