数据堆成山才想治理?别等磁盘爆了才后悔:聊聊数据生命周期管理那些事

举报
Echo_Wish 发表于 2026/06/15 08:26:18 2026/06/15
【摘要】 数据堆成山才想治理?别等磁盘爆了才后悔:聊聊数据生命周期管理那些事

数据堆成山才想治理?别等磁盘爆了才后悔:聊聊数据生命周期管理那些事

作者:Echo_Wish

前几天有个朋友找我吐槽:

“数据库又满了,领导问为什么存储成本翻了三倍,运维说磁盘快爆了,开发说数据不能删,业务说历史数据以后可能还要查……”

听完我直接笑了。

这其实不是技术问题,而是典型的数据生命周期管理缺失

很多公司每天都在产生海量数据:

  • 用户行为日志
  • 订单数据
  • IoT设备数据
  • AI训练数据
  • 监控指标数据
  • 审计日志

刚开始量小的时候没感觉。

等到几年后:

  • 数据库几十TB
  • HDFS几百TB
  • 对象存储PB级

这时候你会发现:

真正昂贵的不是存储,而是没人知道哪些数据该留、哪些该删、哪些该归档。

所以今天咱们聊聊大数据体系里非常重要却经常被忽略的话题:

数据生命周期管理

以及其中最核心的三个策略:

  • 冷热分层
  • 数据归档
  • 垃圾回收(GC)

很多企业一年能省下几十万甚至上百万存储成本,靠的就是这套体系。


为什么数据不能一直存着?

很多人的第一反应:

存储不是越来越便宜吗?

错。

便宜的是硬盘。

贵的是:

  • 查询性能
  • 数据治理
  • 运维成本
  • 合规风险

举个例子。

某电商平台:

每天产生:

订单数据:200万条
日志数据:30亿条
监控指标:500GB

三年后:

订单数据:20TB
日志数据:500TB
监控数据:100TB

结果:

查询越来越慢。

备份越来越久。

恢复越来越难。

存储成本越来越高。

最后老板一句话:

“为什么三年前的数据还在SSD里?”

全场沉默。

因为没人规划生命周期。


什么是数据生命周期?

数据和人一样。

都有自己的生命周期。

产生
 ↓
活跃
 ↓
低频访问
 ↓
归档
 ↓
删除

对应的数据状态:

热数据
 ↓
温数据
 ↓
冷数据
 ↓
归档数据
 ↓
销毁

真正成熟的数据平台一定会自动完成这个过程。

而不是:

永远新增
永不删除

这不是数据治理。

这是数据囤积症。


第一层:冷热数据分层

这是最常见的策略。

不同访问频率的数据放到不同存储介质。

例如:

最近7天
SSD

7~90天
SATA

90天以上
对象存储

成本差异非常明显:

存储类型 成本 访问速度
SSD 最快
SATA 一般
对象存储 较慢

如果全部放SSD:

100TB × 500元/TB

如果冷热分层:

热数据 10TB SSD
温数据 20TB SATA
冷数据 70TB OSS

成本可能直接下降70%以上。


Python实现冷热数据自动迁移

假设日志超过30天自动转移。

import os
import shutil
from datetime import datetime, timedelta

HOT_PATH = "/data/hot"
COLD_PATH = "/data/cold"

expire_days = 30

deadline = datetime.now() - timedelta(days=expire_days)

for file in os.listdir(HOT_PATH):

    filepath = os.path.join(HOT_PATH, file)

    mtime = datetime.fromtimestamp(
        os.path.getmtime(filepath)
    )

    if mtime < deadline:

        target = os.path.join(
            COLD_PATH,
            file
        )

        shutil.move(filepath, target)

        print(
            f"迁移完成: {file}"
        )

这就是最简单的数据降温策略。

现实中:

  • Hadoop HDFS
  • Hive
  • Iceberg
  • Delta Lake

本质上都在做类似事情。


第二层:数据归档

很多人认为:

归档就是备份。

其实完全不是一回事。

备份是为了恢复。

归档是为了保存。

例如:

财务数据保留10年
审计日志保留5年
医疗记录保留15年

这些数据平时基本没人查。

但法律要求必须保留。

这时候归档就出现了。

通常放到:

  • OSS
  • S3 Glacier
  • 磁带库
  • 冷存储

特点:

极低成本
超长保存
查询慢

Spark归档案例

把历史数据压缩归档。

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("ArchiveJob") \
    .getOrCreate()

df = spark.read.parquet(
    "/data/orders/2023"
)

df.write \
  .mode("overwrite") \
  .option(
      "compression",
      "gzip"
  ) \
  .parquet(
      "/archive/orders/2023"
  )

压缩后:

原始大小:
10TB

归档后:
2TB

节省80%存储空间。

这才是企业真正喜欢看到的数字。


第三层:垃圾回收策略(GC)

很多系统有个误区:

归档了
就完事了

其实还差最后一步。

删除。

因为总有些数据:

过期
无价值
无法律要求
无人访问

继续保存纯属浪费。

比如:

临时文件
缓存数据
ETL中间结果
测试数据

这些最容易成为存储黑洞。


自动垃圾回收脚本

import os
import time

ROOT = "/tmp"

expire_days = 7

now = time.time()

for root, dirs, files in os.walk(ROOT):

    for file in files:

        path = os.path.join(root, file)

        age = (
            now -
            os.path.getmtime(path)
        )

        if age > expire_days * 86400:

            os.remove(path)

            print(
                f"删除: {path}"
            )

简单粗暴。

但非常有效。

很多公司几十TB垃圾数据就是这样清掉的。


大数据平台里的高级GC策略

真正成熟的平台不会直接删除。

而是采用三阶段机制。

标记(Mark)
 ↓
隔离(Quarantine)
 ↓
删除(Delete)

例如:

第1天:
标记删除

第7天:
隔离存储

第30天:
彻底删除

好处:

避免误删。

因为现实里最常见的一句话是:

“那个数据删了吗?我明天要用。”


Iceberg为什么越来越火?

因为它把生命周期管理做进了底层。

例如:

CALL system.expire_snapshots(
  older_than =>
  TIMESTAMP '2025-01-01'
);

自动删除:

  • 历史快照
  • 孤儿文件
  • 无效元数据

再配合对象存储:

热数据
Iceberg

冷数据
OSS

归档数据
Glacier

整个链路自动运转。

几乎不用人工干预。

这也是如今湖仓一体架构越来越受欢迎的重要原因。


我对数据治理的一点看法

这些年做大数据平台,我发现一个有趣现象。

很多团队把精力放在:

  • Flink优化
  • Spark调优
  • ClickHouse加速
  • AI分析

却很少关注:

数据什么时候该离开系统。

其实这恰恰决定了平台能不能长期健康运行。

现实里真正拖垮系统的往往不是新增数据。

而是历史包袱。

就像家里的仓库一样。

东西越来越多。

真正需要的却越来越少。

如果只会往里放,不会往外清。

再大的房子也会被塞满。

数据平台同样如此。


写在最后

数据生命周期管理,本质上是在回答三个问题:

哪些数据经常访问?
→ 热冷分层

哪些数据必须保留?
→ 数据归档

哪些数据已经没价值?
→ 垃圾回收

很多企业的数据平台之所以越来越慢、越来越贵、越来越难维护,不是因为技术不够先进,而是因为缺少生命周期治理意识。

一个优秀的大数据架构师,不仅要会存数据,更要懂得让数据“优雅退休”。

记住一句话:

数据的价值不在于存得久,而在于在正确的时间出现在正确的地方;该归档时归档,该删除时删除,才是真正成熟的数据治理之道。

当你开始关注冷热分层、归档和垃圾回收的时候,你管理的就不再只是数据,而是整个企业的数据资产生命周期。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。