| 指定分区 | 仅覆盖该分区 |
|---|---|
| 不指定 | 整表覆盖(危险) |
| 多分区 | 可一次覆盖多个 |
| 并发 | 同分区并发写会冲突 |
安全写法
安全写法
INSERT OVERWRITE TABLE dws_trade_store_day PARTITION (dt='2026-10-12')
SELECT store_id, order_cnt, pay_amt
FROM tmp_trade_store_day;覆盖分区前如果上游任务失败产出空数据,会把好数据覆盖成空,需要空写保护。
INSERT OVERWRITE 指定分区时只覆盖该分区;不指定分区则整表覆盖,是高风险操作,脚本必须显式带分区条件。
| 指定分区 | 仅覆盖该分区 |
|---|---|
| 不指定 | 整表覆盖(危险) |
| 多分区 | 可一次覆盖多个 |
| 并发 | 同分区并发写会冲突 |
INSERT OVERWRITE TABLE dws_trade_store_day PARTITION (dt='2026-10-12')
SELECT store_id, order_cnt, pay_amt
FROM tmp_trade_store_day;