首页/数据/数据工程与 ETL 速查/数仓表生命周期与归档

数仓表生命周期与归档

生命周期策略决定明细保留多久、汇总保留多久:热数据留近 N 天、冷数据转低频存储或归档,删除前先确认血缘与合规要求;常用手段是按分区批量清理。

数仓表生命周期与归档

生命周期策略回答“数据留多久”:明细层通常保留较短周期(够回刷与追溯即可),汇总层可以长期保留结果,因为体积小、复用高。冷数据可以转低频存储、冷存储或导出对象存储,删除则按分区批量执行。做这件事之前必须先确认两件事:血缘影响面(哪些下游还在读这段区间)与合规要求(涉及个人信息的数据按最小必要期限保留)。删除分区是不可逆操作,操作前要评估并在变更记录中留痕。

基本信息

分层差异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 数据出错要重跑,源头数据已经不在,只能依赖上游重新提供或备份。
清理策略要按表配置而不是全局一刀切:核心明细表和边缘日志表的回溯需求差别很大,统一保留期往往两头都不合适。

易错点

  • 直接删分区不看血缘,下游回溯任务突然失败且无法定位原因
  • ODS 保留期短于 DWD,历史数据出错却无法重跑,只能等上游补数
  • 清理含个人信息的历史分区时未做合规确认,删除与留存两面都可能违规
  • 生命周期策略全局一刀切,核心表保留不足、边缘表占用大量存储

数据来源与参考

  • Apache Hive 官方文档:ALTER TABLE DROP PARTITION
  • 行业数据生命周期治理实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌