批量生成hive建表語句

2021-10-08 17:07:13 字數 1620 閱讀 8280

這裡以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...