删除外部表、删除表中部分分区及HDFS文件、数仓模型生命周期管理、HDFS存储资源管理

如果要删除干净外部表(正常删外部表是只删除表结构,元数据与hdfs文件不会删除)要先把外部表转换为内部表

hive -> ALTER TABLE app.app_th_report_share_cvr_di SET TBLPROPERTIES('EXTERNAL'='False');

hive -> drop table app.app_th_report_share_cvr_di;  --这样删表后hdfs文件也会删除。

 

删分区也一样,转成内部表再删分区会顺带删除hdfs文件

hive -> ALTER TABLE app.app_th_report_share_cvr_diDROP IF EXISTS PARTITION (dt<'2020-01-01');

 

需要对数仓模型进行生命周期管理时可以做成周期任务

ALTER TABLE app.app_th_report_share_cvr_di SET TBLPROPERTIES('EXTERNAL'='False');

ALTER TABLE app.app_th_report_share_cvr_di DROP IF EXISTS PARTITION (dt='2020-01-01);

 

又一次在用上面的方法删除hdfs文件时失败了。我当时直接用下面的语句把这个表2019的分区文件全部删除了。

hdfs dfs -rm -r hdfs://ns1/user/mart_ind/app.db/app_th_report_share_cvr_di/dt=2019*  

 

后边想到可能是分区不完整导致,修复分区后再删除分区即可把分区信息及hdfs文件全部删除。

msck repair table app.app_th_report_share_cvr_di

 

 

 


版权声明:本文为zhangchen16原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>