欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > hive表名重命名、rename重命名

hive表名重命名、rename重命名

2024/11/17 6:12:45 来源:https://blog.csdn.net/weixin_49114503/article/details/143703714  浏览:    关键词:hive表名重命名、rename重命名

文章目录

  • 一、重命名表的语法
  • 二、重命名遇到的坑
    • 2.1、重命名后重建原先的表报表已存在

一、重命名表的语法

在Hive中,重命名表的语法如下:

ALTER TABLE table_name RENAME TO new_table_name;示例:alter table user rename to user_bak;

注意事项

  • 表的重命名操作只会在Hive的元数据中更改表的名称,不会对实际的数据进行改动。因此,重命名操作是一个轻量级的操作,不会导致数据的重写或移动。
  • 表重命名操作不会影响表中的数据,因此表的重命名操作是非常快速和高效的。
  • 在进行表重命名操作时,需要确保新的表名称在Hive中是唯一的,否则将会报错。

二、重命名遇到的坑

2.1、重命名后重建原先的表报表已存在

测试过程中遇到这么一个场景:先对表A进行重命名为B, 然后直接新建表A。但是报错说表A已经存在了。

原因分析: 虽然可以重命名,但是hive存储是以表名等创建路径的,可能rename重命名只是表名更改了,但是存储路径没有改掉,导致重新建表时原先的路径还被占用着。

解决思路:
我重命名表是因为原先的表需要增加字段,所以先把表数据备份,然后新建原先的表。所以我换了一个思路,先创建一个跟表A相同的表B, 然后将A的数据复制到B表中。再删除A表,新建A表。

-- 1、创建一个相同的备份表
create table user_bak like user;
-- 2、将数据迁移到备份表中
insert into user_bak select * from user;
-- 3、删除原先的表,并重新建表
drop table user;
create table user{
......此处省略
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com