针对数据恢复的两种情况
- 真误删数据了
- 业务表新增或删除了字段,表压缩又是ORC压缩无法使用
ALTER TABLE
命令去调整字段值,只能从新建表。从新建表又需要考虑到数据回插新表的问题。
实战
前置要求:你HDFS开启了垃圾回收站机制,没开别看了,直接把这个页面赶紧关了别浪费时间
如果是第一种情况以及不带分区的表直接使用MV命令移动至对应目录下即可
hadoop fs -mv < hdfs file > < hdfs file >
hadoop fs -mv /user/hive/.Trash/220304170000/user/hive/warehouse/ods.db/ods_yszt_owner_house_property_owner/* /user/hive/warehouse/ods.db/ods_yszt_owner_house_property_owner
如果表带分区,还需执行以下操作修复分区元数据
MSCK REPAIR TABLE <tableName>;