数仓表生命周期与归档
生命周期策略回答“数据留多久”:明细层通常保留较短周期(够回刷与追溯即可),汇总层可以长期保留结果,因为体积小、复用高。冷数据可以转低频存储、冷存储或导出对象存储,删除则按分区批量执行。做这件事之前必须先确认两件事:血缘影响面(哪些下游还在读这段区间)与合规要求(涉及个人信息的数据按最小必要期限保留)。删除分区是不可逆操作,操作前要评估并在变更记录中留痕。
基本信息
| 分层差异 | ODS 与 DWD 保留期短,DWS 与 ADS 结果可长期保留 |
|---|---|
| 归档方式 | 低频存储、冷存储、导出对象存储后删除热存储 |
| 清理方式 | 按分区批量删除,保留元数据说明 |
| 合规要求 | 涉个人信息的数据按最小必要期限保留并记录审批 |
| 前置检查 | 血缘影响面、下游回溯需求、备份是否可用 |
典型使用场景
- ODS 原始表体积快速增长,按保留期清理最老分区
- 冷热分层:超过一年的分区转低频存储,降低成本
- 合规整改:按最小必要期限清理含个人信息的历史分区
- 年度盘点:统计无人查询的僵尸表,确认后下线
- 归档留存:把历史分区导出到对象存储,保留可恢复性
清理过期分区
清理过期分区
-- 第一步:先看有哪些分区与大小,确认要删的范围
SHOW PARTITIONS dwd_trade_order_detail_di;
-- 第二步:确认下游是否还在读该区间(查血缘与任务依赖)
-- 第三步:备份或归档需要保留的区间后再执行删除
ALTER TABLE dwd_trade_order_detail_di DROP PARTITION (dt < '2026-04-15');
-- 第四步:把删除范围、原因、影响面写入变更记录分层保留策略示例
| 分层 | 典型保留期 | 理由 | 归档建议 |
|---|---|---|---|
| ODS | 较短 | 原始数据可重取,体积最大 | 按需归档 |
| DWD | 中等 | 支持回刷与明细追溯 | 冷分区转低频存储 |
| DWS | 较长 | 汇总复用率高、体积小 | 长期保留 |
| ADS | 长期 | 对外口径需可追溯 | 长期保留并版本记录 |
删除分区属于不可逆操作:先评估影响面(哪些下游仍在读该区间),做好备份或归档,并在变更记录中留痕。
ODS 保留期短于 DWD 时需要特别注意:一旦 DWD 数据出错要重跑,源头数据已经不在,只能依赖上游重新提供或备份。
清理策略要按表配置而不是全局一刀切:核心明细表和边缘日志表的回溯需求差别很大,统一保留期往往两头都不合适。