有没有一种方法可以批量重命名配置单元表?

时间:2019-10-31 16:42:03

标签: hadoop hive hiveql beeline

我想在某些配置单元表中添加一个前缀,如下所示:

alter table sales_info rename to archived_sales_info;

除了有大约200张桌子之外,我宁愿不手工做。有没有办法通过配置单元本身或bash脚本来做到这一点?

2 个答案:

答案 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)

考虑到以下流程,这几乎肯定是一次性的事情:

  1. 列出表格
  2. 复制到您喜欢的编辑器,例如excel
  3. 使用表列表创建alter语句列表

当然,您也可以运行脚本,但这是我能想到的最快的脚本。

相关问题