4. 台账管理概述:台账的数据模型、存储选型与生命周期管理
误差预算台账是服务画像可观测性体系的核心数据底座。它记录每个服务制品在每个时间窗口内的误差消耗、预算剩余、违规事件及修复动作。台账的设计质量直接决定异常行为模式识别的准确性与实时性。本章从数据模型、存储选型、生命周期管理三个维度展开。
4.1 台账数据模型
台账数据模型采用多维度时序宽表设计,兼顾查询效率与灵活性。核心字段分为四类:
| 字段类别 | 字段示例 | 说明 |
|---|---|---|
| 标识维度 | service_id, artifact_version, slo_name | 唯一确定一条误差预算记录 |
| 时间维度 | window_start, window_end, record_timestamp | 定义误差计算的时间窗口 |
| 度量指标 | error_budget_total, error_budget_consumed, error_budget_remaining, burn_rate | 核心数值,用于异常检测 |
| 状态标签 | status (OK/WARNING/CRITICAL), violation_flag, last_updated_by | 标记当前窗口的健康状态 |
关键设计原则:标识维度 + 时间维度构成联合主键,度量指标支持滚动聚合,状态标签用于快速过滤异常窗口。
4.2 存储选型:时序数据库 vs 关系型数据库
台账数据具有写多读少、时间范围查询频繁、数据量持续增长的特征。两种存储方案的对比决定了选型方向。
| 对比维度 | 时序数据库 (TSDB) | 关系型数据库 (RDBMS) |
|---|---|---|
| 写入性能 | 高吞吐,批量写入优化,支持乱序写入 | 中等,受限于事务和索引维护 |
| 时间范围查询 | 原生优化,按时间分区扫描,毫秒级响应 | 需依赖时间索引,大范围查询性能下降 |
| 数据压缩 | 列式压缩,压缩比可达 10:1 ~ 20:1 | 行式存储,压缩比通常 3:1 ~ 5:1 |
| 数据保留策略 | 内置 TTL 和降采样,自动管理生命周期 | 需手动实现归档和清理逻辑 |
| 复杂关联查询 | 弱,不支持 JOIN 或子查询 | 强,支持多表关联和事务 |
| 运维复杂度 | 中等,需管理分片和副本 | 较高,需优化慢查询和锁竞争 |
推荐方案:核心台账数据(误差消耗、燃烧速率)使用时序数据库存储;元数据(服务信息、SLO 定义、告警规则)保留在关系型数据库中。两者通过 service_id + window_start 进行关联查询。
4.3 生命周期管理
台账数据随服务运行持续增长,必须建立分级存储 + 自动降采样 + 过期清理的生命周期策略。以下为推荐的生命周期阶段划分:
- 热数据阶段(0 ~ 7 天):原始粒度(1 分钟窗口),用于实时异常检测和燃烧速率告警。存储在 TSDB 高性能节点,副本数 ≥ 2。
- 温数据阶段(8 ~ 90 天):聚合粒度(5 分钟窗口),用于趋势分析和周报。启用 TSDB 降采样策略,保留关键统计值(p50/p95/max)。
- 冷数据阶段(91 ~ 365 天):日聚合粒度,用于季度回顾和容量规划。可迁移至低成本对象存储或 TSDB 冷节点。
- 归档/删除阶段(> 365 天):仅保留月度摘要和违规事件记录,原始数据自动删除。
注意:生命周期策略必须与 SLO 窗口对齐。例如,30 天滚动窗口的 SLO,其台账数据至少保留 30 天原始粒度;年度 SLO 则需要保留 365 天日聚合数据。
4.4 台账管理最佳实践
- 写入路径分离:实时写入走 TSDB 高性能节点,批量导入走异步队列,避免写入抖动影响查询。
- 查询路由:根据查询时间范围自动路由到对应存储层(热/温/冷),对用户透明。
- 数据一致性校验:每日运行校验任务,对比 TSDB 与 RDBMS 中的台账记录数,确保无丢失。
- 备份与恢复:热数据每日全量备份,温冷数据每周增量备份,归档数据双副本异地存储。
- 监控台账本身:台账写入延迟、查询响应时间、存储使用率均需纳入可观测性监控。