hive数据表中,数据的删除不可以想Oracle、MySQL那样使用delete语句删除,所以在删除数据的时候使用另外的方法
hive的数据删除,一般是两种方式
alter table table_name drop partition (partiton_name='value')
eg:alter table test_data drop partition (dt='2022-06-25')
当需要删除某一条数据的时候,我们需要使用 insert overwrite
insert overwrite table table_name select * from table_name where 条件
释义:就是用满足条件的数据去覆盖原表的数据,这样只要在where条件里面过滤需要删除的数据就可以了
create table test.test_data(
id varchar(20)
,name varchar(20)
,sex varchar(8)
,age varchar(8)
,insert_date varchar(20)
)
;
insert into test.test_data values
('1','tom','0','18','2022-06-25'),
('2','jack','0','20','2022-06-25'),
('3','rose','1','25','2022-06-25'),
('4','judy','1','16','2022-06-26'),
('5','mark','0','30','2022-06-26'),
('6','xiaohong','1','8','2022-06-26')
;
SELECT * FROM test.test_data;
删除 2022-06-26插入的数据
INSERT overwrite TABLE test.test_data
SELECT * FROM test.test_data WHERE insert_date <>'2022-06-26';
SELECT * FROM test.test_data;