订阅更新

数据生命周期管理

数仓建模手册 第 14 题 约 3 分钟读完

本文目录
  1. 总结
  2. 为什么要管生命周期?
  3. 各层TTL策略参考
  4. 冷热分层:不删但降级
  5. 删之前的安全检查

总结

记忆点内容
为什么管存储只增不减,成本持续增长
TTL策略ODS(90天)<DWD(1年)<DWS(2年),按价值递增
冷热分层热(SSD)→温(HDD)→冷(对象存储)
安全措施查血缘→发通知→灰度执行→保留回收站

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

进阶 | 大数据面试 · 数仓建模系列

面试真题
你们数仓的历史数据保留多久?怎么管理数据的生命周期?有没有做过存储成本优化?

为什么要管生命周期?

两个字:省钱。数据只增不删,存储成本每天都在涨。我见过不少公司ODS层存了3年全量历史,80%的分区从来没人查过,但每个月云存储账单几万块。

Wood的实战经验
我在出海硬件品牌做数据平台时,接手第一件事就是梳理存储。发现ODS层占了总存储的70%,其中两年前的数据占了一半,但过去半年只被查询过3次。做了一轮清理之后,月度存储成本直接降了40%。数据工程师不只是写ETL的,还要有成本意识。

各层TTL策略参考

层级推荐保留时间原因
ODS30-90天原始数据,DWD已清洗,ODS只用于追溯
DWD6-12个月明细数据有回溯价值,超一年很少查
DWS1-2年汇总数据量不大,保留时间可以长
ADS3-6个月直接给报表用,老数据报表也不展示
DIM永久(拉链表)维度表数据量小,拉链表本身是历史记录

冷热分层:不删但降级

有些数据不能删但也不需要秒级查询。用三级存储:热数据(最近30天,SSD,秒级响应)→ 温数据(30天-1年,HDD,分钟级)→ 冷数据(1年以上,对象存储S3/OSS,归档)。

Wood的实战经验
我在AWS环境做过冷热分层迁移:把6个月前的数据从标准S3移到S3 Infrequent Access,存储成本直接降了45%。用Spark跑批处理任务,更新Hive Metastore指向新路径,对下游完全透明。阿里云MaxCompute更简单:直接ALTER TABLE ods_order SET LIFECYCLE 90;就能设90天自动删除。

删之前的安全检查

① 先查下游依赖:用数据血缘确认没有下游还在用。② 删前通知:至少2周缓冲期。③ 灰度执行:先选几张不重要的表试跑。④ 保留回收站:删除的数据先保留7天,万一误删还能恢复。

面试加分提示
「我们按层级设置了不同的TTL:ODS保留90天,DWD保留1年,DWS保留2年。用Airflow定时清理过期分区。另外做了冷热分层,6个月前的明细数据降到低频存储,存储成本降了40%。清理之前会查数据血缘确认没有下游依赖,还有7天的回收站机制防误删。」
关键词:分层TTL + 自动化 + 冷热分层 + 安全机制。
刷题进度保存在当前浏览器