4. 工单生命周期设计

数据问题工单不是一张“待办便签”,而是一条有明确入口、责任转移、质量门禁和知识沉淀的生命周期。如果只定义“谁提、谁改”,工单很容易在“已处理”和“其实没修好”之间反复漂移。本节把工单抽象为六个标准阶段——创建、分派、处理、验证、关闭、复盘,并用状态机约束每个阶段允许的迁移,使工单的每一次流转都可追溯、可判定、可度量。

一、六个标准阶段的职责边界

创建(Created)解决“问题被准确描述”的问题。创建时必须固化四类信息:问题对象(库表、字段、指标、报表或接口)、现象与期望(例如“订单表 order_id 空值率 0.7%,期望为 0”)、影响范围(下游报表、模型、业务方)、发现方式(监控告警、对账差异、人工反馈)。缺少可判定的期望值,工单在验证阶段就无法收敛。

分派(Assigned)解决“责任落到具体的人和系统”的问题。分派依据是问题域归属:源系统采集问题归数据接入负责人,加工逻辑问题归数仓开发,指标口径问题归指标 owner,权限与展示问题归应用侧。分派应记录处理人、协作人、优先级和 SLA 截止时间。

处理(Processing)是真正发生数据变更的阶段。处理人需要给出根因分类(采集延迟、上游变更、逻辑缺陷、脏数据、配置错误等)、修复动作和影响行数。若修复涉及历史数据回刷,必须写明回刷范围与幂等策略,避免“修了增量、漏了存量”。

验证(Verifying)是独立于处理人的质量门禁。验证人按创建时约定的期望值执行校验:空值率、唯一性、枚举分布、对账差额、指标同比环比合理性。验证不通过则退回处理,而不是直接关闭。

关闭(Closed)表示问题已消除且验证通过。关闭时应记录实际修复时间、是否超 SLA、是否触发下游重跑。

复盘(Reviewed)是闭环的最后一环,回答“同类问题如何不再发生”:是否需要新增监控规则、是否要补充字段级约束、是否要更新口径文档。复盘不是追责会,而是把个案转化为规则。

二、状态机:用迁移条件替代口头约定

把上述阶段建模为状态机,关键不在状态名称,而在迁移条件。下面这张状态机图给出了每个状态允许的去向与触发条件,其中“验证不通过”回到处理、“复盘完成”才真正终结工单,是两条最容易被忽略却最重要的边。

创建 Created 分派 Assigned 处理 Processing 验证 Verifying 关闭 Closed 复盘 Reviewed 信息完整 认领 提交修复 校验通过 复盘完成 校验不通过 · 退回 信息不足 · 退回补充 复盘产出(回流到规则层) ① 新增监控规则 ② 字段级约束 ③ 口径文档更新 ④ 根因分类标签 ⑤ SLA 与优先级校准 正常迁移 退回/阻塞

三、迁移条件与门禁规则

状态机的价值在于把“能不能往下走”变成可检查的条件。以下规则可直接作为工单系统的校验逻辑:

迁移触发条件不满足时的处理
创建 → 分派问题对象、现象、期望值、影响范围四项齐全保持创建态,退回补充信息
分派 → 处理处理人已认领,SLA 截止时间已写入超时未认领则升级至上级 owner
处理 → 验证已填写根因分类、修复动作、影响行数缺少根因则不允许提交验证
验证 → 关闭按创建时期望值校验通过,且下游重跑完成退回处理,记录退回次数
关闭 → 复盘关闭后 3 个工作日内发起复盘超期进入复盘逾期清单

四、一个可执行的状态迁移示例

假设监控发现“订单表 order_id 空值率 0.7%”,工单按如下轨迹流转:

状态: Created
  问题对象: dwd_order.order_id
  现象: 空值率 0.7%(基线 0%)
  期望: 空值率 = 0,且历史 7 天数据回刷
  影响: 下游 ads_order_daily 指标偏低约 0.6%

状态: Assigned  → 处理人: 数仓开发A  SLA: 24h
状态: Processing
  根因分类: 上游变更(源表字段改名未同步)
  修复动作: 修正采集映射 + 回刷 2024-06-01 ~ 2024-06-07
  影响行数: 128,430

状态: Verifying
  校验: 空值率 = 0 ✔  唯一性 = 100% ✔  对账差额 = 0 ✔
状态: Closed  → 实际耗时 6h,未超 SLA
状态: Reviewed
  产出: 新增 order_id 非空监控规则;更新采集映射文档

注意示例中的“期望值”在创建时就已写死,验证阶段只是执行比对,而不是重新讨论标准。这是状态机能收敛的根本原因。

设计建议:把“验证不通过退回次数”作为工单质量指标。若某类问题平均退回超过 1 次,通常说明创建阶段的期望值描述或处理阶段的根因分析存在系统性缺陷,应优先优化模板而非催促处理人。
常见误区:把“已处理”等同于“已关闭”。处理只代表变更已提交,验证才是质量门禁。若跳过验证直接关闭,工单系统会退化为“动作记录器”,无法支撑治理闭环。

五、状态机落地时的三个关键约束

  • 状态不可跳跃:禁止从“处理”直接跳到“关闭”,所有关闭必须经过验证态,保证每次修复都有独立校验记录。
  • 退回必须留痕:每次退回记录退回原因与退回人,用于后续根因统计,而不是简单覆盖状态。
  • 复盘是终态而非可选:将“复盘”设为工单的最终状态,未完成复盘的工单不计入闭环率,从机制上保证知识沉淀不被省略。

当六个阶段与迁移条件被固化进工单系统后,数据治理就从“靠人盯”转向“靠状态驱动”:每个工单的当前位置、责任人和下一步动作都清晰可查,闭环率、平均修复时长、退回率等指标也自然成为可运营的治理数据。