5 年经验面试:出了一次严重数据事故,你作为负责人怎么处理、怎么复盘?
面试怎么回答
事故发生时我先止损再定位:确认影响了哪些表、报表和下游,从哪天开始;马上在报表上挂异常提示、暂停对外推送,避免更多人用错数据。团队分工,有人定位原因、有人准备修复和回刷,我负责对外沟通和协调资源。沟通上要主动早说,讲清楚哪些数据有问题、影响多大、预计什么时候修好,修复后发正式说明,协助业务方更正已发出的汇报。复盘对事不对人,先梳理时间线,再多问几层为什么,从「没人检查」追到「没有机制能发现」;改进分技术和流程两类,比如核心指标波动告警、上游字段契约和变更检测、上游变更必须通知下游,每项措施都有负责人和截止时间,并在周会跟进到落地。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
普通开发被问故障,讲的是怎么定位和修复;负责人被问故障,面试官关注的是另一件事:你怎么组织团队止损、怎么对外沟通、怎么让同类问题不再发生。
假设场景:一个上游字段的含义变了,导致核心收入报表连续三天多算了 15%,业务方已经拿着错误数据向老板汇报了。
事故发生时:先止损、再定位
- 确认影响范围:哪些表、哪些报表、哪些下游系统、从哪天开始,有没有数据被推送到外部;
- 马上止损:在报表上挂提示「数据异常,修复中」,暂停对外推送,必要时下线有问题的看板,避免更多人拿错数据做决策;
- 分工处理:一人定位原因,一人评估影响和准备修复方案,自己负责对外沟通和协调资源,不要所有人都扎进去查代码;
- 修复和回刷:修正逻辑,按依赖顺序回刷受影响的分区,用对账确认修复后的数据正确。
对外沟通:早说、说清楚
- 第一时间主动告知:不要等业务方自己发现;先说「哪些数据有问题、影响多大、什么时候能修好」;
- 定时同步进展,修复完成后发正式说明:受影响的时间段和指标、正确的数据是多少;
- 需要的话,协助业务方更正已经发出去的汇报材料。
复盘:对事不对人
- 时间线:什么时候变更、什么时候发现、谁发现的、每一步花了多长时间;
- 找根因要多问几层为什么:字段含义变了 → 为什么我们不知道?→ 上游变更没有通知机制 → 为什么三天才发现?→ 收入指标没有波动监控;
- 区分直接原因和机制原因:「某人没检查」是直接原因,「没有任何机制能发现」才是要解决的问题;
- 不追究个人:复盘会如果变成批斗会,以后大家会隐瞒问题。
改进措施要落地
- 技术:核心指标加波动监控和同比环比告警;上游关键字段加数据契约和变更检测;核心链路上线前做数据对比;
- 流程:上游变更必须通知下游,纳入变更评审;故障分级和响应时间标准;
- 每项措施有负责人和完成时间,下次周会检查进度,不是写完复盘文档就结束。