我想在某些配置单元表中添加一个前缀,如下所示:
alter table sales_info rename to archived_sales_info;
除了有大约200张桌子之外,我宁愿不手工做。有没有办法通过配置单元本身或bash脚本来做到这一点?
答案 0 :(得分:1)
您可以按如下方式创建shell脚本
#!/bin/bash
hive -S -e " show tables" > table_list.txt
while read -r line;
do
hive -S -e "alter table $line rename to archived_$line;"
echo $line
done < table_list.txt
之前:
> show tables;
OK
t1
t2
Time taken: 0.016 seconds, Fetched: 2 row(s)
执行脚本后:
> show tables;
OK
archived_t1
archived_t2
Time taken: 0.016 seconds, Fetched: 2 row(s)
添加了循环回显,以便您可以跟踪已更改的表,也可以将其重定向到文件,例如echo $line >> changed.txt
您可以根据需要在代码中进行修改。但这应该可以解决您的目的,而无需任何更改。
答案 1 :(得分:0)
考虑到以下流程,这几乎肯定是一次性的事情:
当然,您也可以运行脚本,但这是我能想到的最快的脚本。