Skip to content

第四章 数据诊断与 demo ​

4.2 脏数据模式识别 ​

承前:上一节的剖析脚本把青禾的数据问题变成了带数字的清单。这一节我们给这些病起名字。脏数据看起来千奇百怪,但在企业交付现场反复出现的其实就那么几种模式——认得出模式,你就能在诊断的第一天预判风险,而不是等事故来教你。本课的沙盘数据包就是照这些坑设计的:你会在里面同时见到标签当备注、双轨 ID、批量虚假注册、时间格式不统一。认完模式,再去打沙盘,等于带着地图进迷宫。


4.2.1 为什么要给脏数据起名字 ​

新手看脏数据是"一堆乱";有经验的 FDE 看脏数据是"几类已知模式 + 每类的影响路径"。命名的价值在于模式一旦有名字,处理方案就有先例:

  • 认出"双轨 ID",你就知道解法是映射表 + 影响是统计口径低估;
  • 认出"标签当备注",你就知道解法是正则抽取重建标签 + 影响是 Agent 误信字段语义。

反过来说,认不出模式的项目会把每种脏数据当新问题处理,诊断周期拖三倍。下面四种是零售/会员类项目里出现频率最高的,值得形成条件反射。

4.2.2 模式一:标签当备注 ​

症状:一个名义上是枚举标签的字段,实际存的是自由文本。青禾会员系统的 tag 字段设计上是枚举(VIP/NORMAL/BLACK),实际 73% 的取值长这样:"VIP;宝妈;不要打电话(投诉过)"、"同事介绍 2023-05"、"高价值!但脾气差慎触"。

成因:一线员工面对系统里没有的记录需求,就用最近手的字段当便签——这是 grassroots 的"系统不让我记,我就自己想办法"。运营了几年,谁也不敢清理:清洗会把店长们赖以记忆的信息抹掉。

影响路径:Agent 会把 tag 当结构化信号使用——筛选"VIP"时把 不要打电话 的会员拉进来发短信,把"脾气差慎触"当用户画像输出到报告里。这一模式对 Agent 的杀伤力远大于对报表的杀伤力,因为 Agent 会"理解"自由文本并据此行动。

处理:不能直接清洗(会毁业务记忆),标准做法是抽取重建——用 LLM 或规则从备注文本里抽取结构化标签(投诉史、触达偏好、介绍人),存到新字段;原字段冻结只读,保留为审计记录。抽取结果进人工抽检流程,准确率达标后才允许 Agent 引用。

4.2.3 模式二:双轨 ID ​

症状:新旧两套系统各发各的 ID。青禾 2022 年上了新会员系统,老 POS 继续用旧卡号,线上商城用第三个 ID,三套 ID 靠"手机号"这个弱键松散关联。诊断结论(4.1 节):外键孤儿率 13%,同手机号不同 ID 的有 611 对。

成因:系统换代没有做数据迁移主数据管理(MDM),"先跑起来再说"的临时方案活成了永久架构。

影响路径:所有跨系统的统计(复购率、客单价、触达转化)都会系统性失真;更阴险的是同一个会员被当成两个人——他在老系统是深度沉睡会员(该召回),在新系统是新会员(不打扰),两套逻辑打架。

处理:建映射表是唯一正解,映射规则的置信度分级:手机号+实名一致 → 高置信自动合并;仅手机号一致 → 中置信抽检;冲突 → 低置信人工。映射覆盖率作为指标 caveats 挂在复购率定义上(3.4 节的 known_caveats 就是这么来的)。修复本身建议推动客户立项——ID 治理是客户的数据资产建设,不是乙方的 Agent 项目该长期背的债。

4.2.4 模式三:批量虚假注册 ​

症状:注册量在某个时间窗内异常突增,且这批"会员"的行为特征高度雷同。青禾 2023 年 9 月某周新增会员 3.2 万(平时周均 2000),后经诊断确认约 1.1 万是门店为完成拉新 KPI 的虚假注册:同一设备指纹、相似姓名模式(张三1、张三2)、注册后零消费。

成因:考核指标被"邪道优化"——有数字的地方就有刷数字的人。这不是技术问题,是组织行为学问题。

影响路径:这是北极星指标的头号污染源。分母里灌进 1.1 万永远不会复购的假会员,复购率被稀释、基线被污染、召回预算被浪费。更麻烦的是归因失真:如果对照组恰好落在虚假注册高发门店,A/B 测试的结论直接作废。

处理:两步走。技术侧建"会员真实度"过滤规则(设备指纹、消费行为、注册渠道熵值),过滤名单进 4.1 节的 metric_exclusions 配置表;管理侧向客户如实披露——注意披露方式:不带指责地呈现数据,把"拉新 KPI 诱导刷量"作为治理问题留给客户管理层,FDE 的职责是让污染可见,不是当纪委。

4.2.5 模式四:时间格式不统一 ​

症状:同一个时间字段里有多种格式:2024-03-01 14:23:05、20240301、03/01/24 2:23PM,甚至 Excel 数字天数(45352)。青禾的 order_ts 因系统换代期双写,混了三种格式,占 8.6%。

成因:多系统对接各带各的格式惯例;Excel 作为"中间人"参与数据流转时还会自作主张转换格式。

影响路径:表面看只是解析麻烦,实际杀伤在静默错误:03/01/24 按 MM/DD 还是 DD/MM 解析,差了整整一个月;Excel 天数忘了设纪元,全部日期平移。这类错误不报异常、只出错误数字——Agent 基于"会员最近消费时间"做沉睡判断时,会把刚消费的会员判成沉睡。

处理:统一入仓时做格式标准化层(ingestion normalization),所有时间统一 UTC+8 ISO 格式落库;对无法机械判定的(真的歧义格式),回溯源系统记录人工裁定。校验手段:标准化后做时间单调性检查(订单时间不能早于会员注册时间),违例行进异常清单。

4.2.6 四种模式的共同本质 ​

四种模式画到一张图上,会发现它们的病灶都在"系统边界"处:

            系统边界是脏数据的产地
 ┌──────────┐   ┌──────────┐   ┌──────────┐
 │ 老POS系统 │   │ 新会员系统 │   │ 线上商城  │
 │ 双轨ID ──┼───┼─时间格式   │   │ 双轨ID   │
 └──────────┘   └──────────┘   └──────────┘
       │              │              │
   人填备注        人刷KPI       各自格式
  (标签当备注) (批量虚假注册)(时间不统一)

脏数据不是数据问题,是组织问题的数据投影:员工缺记录工具就乱填(标签)、考核逼人刷数(虚假注册)、换代不做治理(双轨 ID)、集成没有规范(时间格式)。所以 FDE 处理脏数据的终极姿态是:技术上修数据,管理上让客户看见病灶——只修数据不改流程,三个月后同样的脏数据会重新长出来。

4.2.7 沙盘数据包:练手指南 ​

课程配套的沙盘数据包按上述四种模式做了全量复刻。建议的练习顺序:

  1. 先跑 4.1 节的剖析脚本,看你能自动发现几类问题(预期:双轨 ID 和时间格式能被统计探针抓到);
  2. 再做样本抽查,找剖析抓不到的(预期:标签备注和虚假注册的语义特征要靠人读);
  3. 给每个问题写五段式诊断条目(问题/证据/影响/建议/决策);
  4. 最后对照标准答案核查你有没有漏掉"组合雷"——比如"虚假注册 + 双轨 ID"叠加的会员,是沙盘里埋得最深的一批坑。

4.2.8 给 Agent 的数据准入门槛 ​

收尾前把四种模式综合成一个可操作的机制:数据准入门槛。Agent 要引用任何一张表/字段之前,过一道检查,像机场安检:

字段准入检查单(Agent 数据源接入前)
────────────────────────────────────────
□ 模式体检     已通过 4.1 剖析脚本,无未解释异常
□ 语义确认     三角验证完成:IT/用户/数据三方口径一致
□ 脏模式清查   四种模式逐一排查,脏字段已修复或已加过滤
□ 抽查通过     50-100 行人工抽查,bad case 样本归档
□ 注册挂载     字段描述 + 已知 caveats 写入语义层
────────────────────────────────────────
五项全绿才准入;任何一项黄/红 → 进诊断报告走决策

这套门槛的价值在于把"数据质量"从形容词变成流程:团队成员任何人接新字段,同一张检查单,同样的准入标准。它同时也是跟客户沟通的语言——"这张表还没有过准入检查,Agent 暂时不能引用它"远比"这数据不太行"有说服力,前者是流程,后者是抱怨。

W6 的数据安全质询会在这张单子上再加两项(权限边界、脱敏要求),到时候这张检查单会长成正式的数据准入规范——你现在打的每张检查单,都是在为那时铺路。

4.2.9 要点总结 ​

  • 脏数据有模式:认出模式就有先例可循,认不出就把每种脏数据当新问题,诊断周期拖三倍。
  • 四大高频模式:标签当备注(Agent 误信字段语义)、双轨 ID(统计失真 + 会员分裂)、批量虚假注册(污染北极星与归因)、时间格式不统一(静默错误最危险)。
  • 处理各有定式:抽取重建、置信分级映射、真实度过滤 + 治理披露、入仓标准化 + 单调性校验。
  • 脏数据的本质是组织问题的数据投影:只修数据不改流程,三个月后重新长出来。
  • 沙盘数据包按四种模式全量复刻,练习目标是建立"探针抓统计病、人眼抓语义病、五段式写诊断"的肌肉记忆。

参考资料 ​