写点什么

hive 建表语句迁移

用户头像
杨飞
关注
发布于: 2020 年 05 月 07 日

1,导出所有表的名称



hive -e "use dbName;show tables;" > tablesName.txt



2,导出建表语句(不改变原有表结构)



#!/bin/bash
cat /home/xiaohe/xiaohe_ni/tablesName.txt | while read tableName
do
hive -e "use dbName; show create table $tableName" >> tablesDDL.sql
done

3,导出建表语句(改变原有表存储结构)



#!/bin/bash
cat $1 | while read tableName
do
echo "drop table if exists $tableName;" >> $2
echo "create table if not exists $tableName (" >> $2
hive -e "set hive.cli.print.header=false;desc $tableName" |sed 's/$/,/' | grep -v 'WARN'|sed '$s/,//g' >> $2
echo ") STORED AS orc;" >> $2
done



用法

sh exporttableddl.sh dwctable.txt dwc_ddl.sql



备注:关于shell 中sed的用法



sed 's/^/添加的头部&/g' //在所有行首添加

sed 's/$/&添加的尾部/g' //在所有行末添加

sed '2s/原字符串/替换字符串/g' //替换第2行

sed '$s/原字符串/替换字符串/g' //替换最后一行

sed '2,5s/原字符串/替换字符串/g' //替换2到5行

sed '2,$s/原字符串/替换字符串/g' //替换2到最后一行



用户头像

杨飞

关注

还未添加个人签名 2019.11.05 加入

还未添加个人简介

评论

发布
暂无评论
hive 建表语句迁移