清除表指定的内容

分区非分区表都适用

一、truncate (仅删除表中数据,保留表结构)

truncate table table_name; 
#truncate操作用于删除指定表中的所有行

二、分区表

1.删除具体partition

alter table table_name drop partition(partition_name='')

2.删除具体partition的部分数据

INSERT OVERWRITE TABLE table_name PARITION( etl_cycle_id='20230106') SELECT * FROM table_name WHERE etl_cycle_id<'20230106';
#WHERE后的条件是需要保留的数据的查询结果,即删除20230106之后的数据

三、非分区表

INSERT OVERWRITE TABLE table_name  SELECT * FROM table_name WHERE etl_cycle_id<'20230106';
#WHERE后的条件是需要保留的数据的查询结果,即删除20230106之后的数据

更多推荐