1.2 KiB
1.2 KiB
hive 删除数据
删除表
-- hive删除表:
drop table table_name;
-- 永久性删除,不能恢复:
drop table table_name purge;
清空数据
-- hive删除表中数据:
truncate table table_name;
-- hive按分区删除数据:
alter table table_name drop partition (partition_name='分区名')
重写数据
与删除条件相反,如删除 date=0528 的数据
那么 重写数 的条件为 date!=0528
分区表
删除具体partition的部分数据
INSERT OVERWRITE TABLE table_name PARTITION(year='2021')
SELECT * FROM table_name WHERE year='2021' and xx;
非分区表
INSERT OVERWRITE TABLE table_name SELECT * FROM table_name WHERE xx;
临时表
-- 1. 创建临时表(存储处理后的数据,临时表可使用CREATE TEMPORARY TABLE,会话结束自动删除)
CREATE TEMPORARY TABLE tmp_my_table
AS
SELECT col1, col2, col3
FROM my_table
WHERE col3 > 100; -- 对原表数据进行过滤/转换
-- 2. 覆盖原表(清空原表并写入临时表的数据)
INSERT OVERWRITE TABLE my_table
SELECT * FROM tmp_my_table;
-- 3. 手动删除临时表(若使用的是普通表而非TEMPORARY表)
DROP TABLE IF EXISTS tmp_my_table;