赞
踩
如果要删除干净外部表(正常删外部表是只删除表结构,元数据与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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。