這裡以shell為例
#!/bin/bash
db=dim
echo
"*****匯出資料庫所有的表結構*****"
hive -e "use $db;show tables;"
> /root/migration/$db/tables.txt
echo
"**********迴圈遍歷表名*****===="
cat /root/migration/$db/tables.txt |
while
read eachline
doecho
"**********批量生成建表語句*****===="
#建表前驗證是否表存在
echo
"drop table if exists $db.$eachline;"
>>/root/migration/$db/tablesddl.sql
hive -e "use $db;show create table $eachline"
>>/root/migration/$db/tablesddl.sql
#追加分號
echo
";">> /root/migration/$db/tablesddl.sql
done
echo
"**********建表語句生成完畢**********"
#!/bin/bash
#批量獲取hive建表hql指令碼
#輸入資料庫
db=dim
mkdir dim.db
#獲取hive建表語句
tables
=$(hive -e "use $db; show tables;"
)#生成建表檔案(每個表單獨乙個檔案)
fortable
in $tables;do
echo "$(hive -e "
use $db;
show
create
table $table
;");"
>>
./dim.db/$table
.hql
done
執行上述方法二的shell
命令一:(簡單)
命令二:(稍微複雜)
批量匯出hive表結構 生成建表語句
說明 最近在做集群資料遷移,需要把hive所有的表同步至新的集群。指令碼 bin bash mkdir p opt hive tables tablesddl hive e show databases opt hive databases.txt echo cat database cat opt...
hive建表語句
1 只保留表的結構 create table table1 as select from table2 where 2 3 2 保留結構與資料 create table table1 as select from table 2 3 重新命名 create table table1 column1 ...
hive中建表語句
hive中一共有以下幾種建表方式 create table person id int,name string,hobbies array,address map row format delimited fields terminated by collection items terminate...