Hive中元数据表的关系和如何在元数据中删除表

各表之间主键的关系图
在这里插入图片描述
这个整理很不容易呀,能够更好地了解他们,其中有一种场景需要使用的

传统的方法删除这张表:

方式一:仅删除表中数据,保留表结构

truncate table 表名;

(truncate用于删除所有的行,这个行为在hive元存储删除数据是不可逆的)
或 delete from 表名 where 1 = 1 ;

(delete用于删除特定条件下的行,使用where 1=1 删除所有行 SQL中where 1 = 1 的使用)

truncate 不能删除外部表!因为外部表里的数据并不是存放在Hive Meta store中

方式二:删除整个表

drop table 表名;
如果要永久性删除,不准备再恢复:
drop table 表名 purge;

使用场景:

不在Hive/Spark中删除分区表,请在元数据中删除表
当:yarn的版本和hadoop版本不匹配
yarn的版本高于hadoop的
这时传统方法就不行了

解决问题

知道各表之间主键的关系图
然后在元数据中一个一个删除了(没有什么捷径了, 乖乖删除吧,这是高危操作,要注意流程)

猜你喜欢

转载自blog.csdn.net/qq_43688472/article/details/86020444