hive删除表中部分数据
一、无分区表
insert overwrite table table_name select * from table_name where ...;
可以看出,删除的本质就是覆盖,选出符合条件的结果重新写表。
二、有分区表
1、删除某个分区
alter table table_name drop partition(dt='2020-09-02');
目的是将分区为 2020-09-02 的数据全部删掉,即删除整个分区。
2、删除某个分区中的一部分数据
insert overwrite table table_name partition(dt='2020-09-02') SELECT column1,column2,column3 from table_name where dt='2020-09-02' and column3 is not null;