星环TDH大数据平台,数据误删除之后,恢复办法


 
机制:TDH里面数据删除之后,会在hdfs下面生成delta的文件,该文件在下次该表修改时候进行删除compact合并
也就是说我们要在compact之前,删除delta即可恢复到最新的一次版本
--比如新建一个分糖数为3的orc事务表,新建成功之后,存在一个delta版本,下面存在3个bucket文件
SELECT * FROM emp_like01;
dfs -ls hdfs://nameservice1/inceptor1/user/hive/warehouse/default.db/hive/emp_like01/delta_0000061_0000061

--执行一次删除操作,可以看到表名目录下新生成一个delta目录版本
DELETE FROM emp_like01 WHERE EMPNO=7521;
dfs -ls hdfs://nameservice1/inceptor1/user/hive/warehouse/default.db/hive/emp_like01/delta_0000064_0000064

--将这个delta目录删除,即可以恢复
dfs -rm -r -f hdfs://nameservice1/inceptor1/user/hive/warehouse/default.db/hive/emp_like01/delta_0000064_0000064
执行结果:
Moved: 'hdfs://nameservice1/inceptor1/user/hive/warehouse/default.db/hive/emp_like01/delta_0000064_0000064' to trash at: hdfs://nameservice1/user/hive/.Trash/CURRENT
SELECT * FROM emp_like01; 你会发现 之前的数据还会存在
 

--再次做删除操作
DELETE FROM emp_like01 WHERE EMPNO=7521;
--表名目录下新生成一个delta文件夹
dfs -ls hdfs://nameservice1/inceptor1/user/hive/warehouse/default.db/hive/emp_like01/

--尝试手动compact并等待合并结束
alter table emp_like01 compact 'major' and wait;
--可以看的目录下就剩下一个base目录,base目录下只有3个bucket文件,无法恢复了
dfs -ls hdfs://nameservice1/inceptor1/user/hive/warehouse/default.db/hive/emp_like01/
dfs -ls hdfs://nameservice1/inceptor1/user/hive/warehouse/default.db/hive/emp_like01/base_0000066


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM