一.背景
手动在hdfs上删除了一个表的分区数据(inc_day=2023-08-30),当查询这个表这个分区的数据时报错文件不存在
二.原因
即HDFS数据删除了,但是hive metastore元数据却没有更新,使用show partitions tablename 发现该分区还存在
三.解决办法
-
查阅资料发现hive的msck命令只能修复新增的分区
msck repair table tablename;
-
可以使用以下命令解决
alter table tableneme drop partition(inc_day='2023-08-30')
对应有条件清理对应分区的,可以使用规则判断,或者正则
alter table tableneme partition(inc_day < '2023-08-30')