74 lines
1.2 KiB
Markdown
74 lines
1.2 KiB
Markdown
## hive 删除数据
|
||
|
||
|
||
|
||
### 删除表
|
||
|
||
```sql
|
||
-- hive删除表:
|
||
drop table table_name;
|
||
-- 永久性删除,不能恢复:
|
||
drop table table_name purge;
|
||
```
|
||
|
||
|
||
|
||
### 清空数据
|
||
|
||
```sql
|
||
-- 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;
|
||
|
||
``` |