有没有办法批量重命名配置单元表?

Is there a way to bulk rename hive tables?

我想为一些配置单元表添加前缀,如下所示:

alter table sales_info rename to archived_sales_info;

除非有大约 200 张桌子,我不想全部手工完成。有什么办法可以通过配置单元本身或 bash 脚本来做到这一点?

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

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

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

您可以创建 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

您可以根据自己的需要修改代码。但它应该无需任何更改即可解决您的目的。