5 年经验面试:数据团队的值班和故障响应机制怎么设计?
面试怎么回答
我会先给任务和表分级,梳理核心链路和 SLA,再按影响定故障级别,比如核心报表中断或数据错误是 P1,15 分钟内响应、负责人到场;重要报表延迟是 P2,当天解决;非核心问题工作时间处理。值班每周一主一备,所有人轮流包括组长,值班期间少排开发任务,夜间只处理核心链路,并给调休或补贴。为了让值班的人处理得了,要有常见问题的运维手册,告警只发需要人处理的、带上负责人和手册链接,除了任务失败还监控核心表的产出时间、数据量和关键指标,并做自动重试、上游延迟等待这类自动化。P1、P2 都要复盘,定期统计告警和问题类型、平均恢复时间,持续治理最多的问题。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
数据团队最常见的状态是:每天早上业务方在群里问「报表怎么还没出」,然后所有人一起翻日志;半夜任务失败,只有最熟的那个人会被打电话叫醒。面试官问这道题,是想看你能不能把「靠人顶」变成「靠机制」。
先定故障分级
| 级别 | 例子 | 响应要求 |
|---|---|---|
| P1 | 核心经营报表、对外数据服务中断或数据明显错误 | 15 分钟内响应,负责人到场,持续同步进展 |
| P2 | 重要报表延迟超过 SLA,部分业务受影响 | 30 分钟内响应,当天解决 |
| P3 | 非核心任务失败、个别数据问题 | 工作时间处理 |
分级的前提是先给任务和表分级:哪些是核心链路、SLA 是几点,要提前梳理清楚,打上标签。
值班怎么排
- 轮值:每周一人主值班、一人后备,所有人轮流,包括组长;
- 值班职责:处理告警和任务失败、回答业务方的数据问题、记录值班日志;值班期间少安排开发任务;
- 夜间只处理核心链路:非核心任务失败可以早上再处理,避免频繁半夜被叫醒;
- 给补偿:夜间和节假日值班有调休或补贴,否则机制难以长期维持。
让值班的人处理得了
- 运维手册(Runbook):常见失败(资源不足、上游延迟、数据量异常、小文件过多)的排查和处理步骤;
- 告警要准:只对需要人处理的问题发告警,告警信息带上任务、负责人、上下游、处理手册链接;告警太多会让人麻木;
- 基线监控:不只看任务是否失败,还要看核心表是否按时产出、数据量和关键指标是否异常;
- 自动化:上游延迟自动等待、失败自动重试一次、恢复后自动通知下游。
故障之后
- P1、P2 都要复盘,记录时间线、根因和改进项;
- 定期统计值班数据:告警数、哪类问题最多、平均恢复时间,针对性地治理。