hive脚本保留月底分区
时间: 2023-10-06 08:10:10 浏览: 111
Hive的分区表
5星 · 资源好评率100%
好的,针对您的问题,可以通过以下的 Hive 脚本来保留月底分区:
```sql
SET hive.exec.dynamic.partition = true;
SET hive.exec.dynamic.partition.mode = nonstrict;
INSERT OVERWRITE TABLE my_table PARTITION (year, month, day)
SELECT col1, col2, col3, year, month, day
FROM (
SELECT col1, col2, col3,
YEAR(my_date) AS year,
MONTH(my_date) AS month,
DAY(my_date) AS day,
ROW_NUMBER() OVER (PARTITION BY YEAR(my_date), MONTH(my_date) ORDER BY my_date DESC) AS rn
FROM my_source_table
) t
WHERE rn = 1;
```
以上脚本会从源表 `my_source_table` 中选取数据,并将数据插入到目标表 `my_table` 中的分区 `year`, `month`, `day` 中。同时,该脚本会在每个月最后一天分区内保留数据。
希望我的回答能够帮助到您,如果您还有其他问题,可以继续提问哦。
阅读全文