1. 数据模型迭代的全局观:为什么业务驱动是核心?

做了十几年数据架构,我见过太多「完美的烂模型」。

什么叫完美的烂模型?就是表结构设计得规规矩矩,三范式用得滴水不漏,命名规范挑不出毛病。但业务方一看就摇头:「这不是我要的东西。」

为什么会这样?

说白了,你把数据模型当成了纯技术活。你坐在工位上等需求,需求来了就画 ER 图,画完就建表。你觉得自己干得挺好,但业务方觉得你根本不懂他们在做什么。

我个人习惯,接手任何一个数据模型之前,先问自己三个问题:

  • 这个模型要解决谁的什么问题?
  • 业务方拿到数据后,下一步动作是什么?
  • 如果模型错了,最坏的影响是什么?

这三个问题问完,你基本就能判断:这个需求是「真需求」还是「伪需求」。

核心观点:数据模型不是数据库里的几张表,它是业务逻辑的数字化映射。模型迭代的本质,是业务认知的迭代。

从「接需求」到「懂业务」:思维转变的四个层次

我刚开始带团队时,组里有个小伙子,技术底子很好。每次接到需求,他第一句话就是:「字段类型是什么?主键怎么定?」

我说你先别急,咱们先聊聊业务。他很不理解:「需求文档不是写清楚了吗?」

嗯,这里有个常见的误区——需求文档写清楚的,只是业务方以为自己想要的。真正的业务逻辑,往往藏在文档的夹缝里。

我把这种思维转变分成四个层次,你对照看看自己在哪一层:

层次 典型表现 口头禅
L1:需求翻译机 业务说什么就做什么,一字不改 「需求文档里这么写的」
L2:需求优化师 能发现需求中的矛盾,提出改进建议 「这个字段是不是冗余了?」
L3:业务合伙人 理解业务目标,主动设计模型支撑决策 「你们要分析的是这个指标吗?」
L4:业务驱动者 通过数据模型反推业务流程优化 「这个流程本身可以改一改」

大多数数据工程师停留在 L1 和 L2 之间。我曾经也是。直到有一次,我按需求文档做了一个客户画像模型,上线后发现准确率不到 40%。

后来我去找业务方聊,才发现他们口中的「活跃客户」和我理解的「活跃客户」根本不是一回事。他们看的是近 30 天下单次数,我建模用的是近 30 天登录次数。

你看,一个定义没对齐,整个模型就偏了。

我的习惯:每次建模前,花 30 分钟和业务方过一遍核心指标的定义。用大白话写下来,双方签字确认。这一步省下来的返工时间,至少是建模时间的 3 倍。

业务驱动模型迭代的闭环

数据模型不是一次性交付的。它需要跟着业务一起长。

我见过最典型的反面案例:一个电商数据模型,上线两年没改过。业务从纯平台模式变成了自营+平台混合模式,模型还是老一套。结果就是,财务对账永远对不平,运营看数据永远觉得「哪里不对」。

业务驱动的模型迭代,应该是一个闭环:

业务驱动模型迭代闭环 业务目标 理解业务流程 抽象核心实体 验证模型效果 持续迭代优化 每个环节都要回到「业务目标」校验:这个模型真的帮业务解决问题了吗?

这个闭环里,最容易被跳过的就是「验证模型效果」。你想想看,模型上线后,有多少人真正回去问业务方:「用起来怎么样?哪里不对?」

我自己的经验是,每次迭代后,至少跟踪两周的业务反馈。不是看系统日志,是直接找业务方聊。聊的时候别问「模型好不好用」,要问「这个数据帮你做了什么决策」。

避坑指南:我曾经在一个供应链项目中,模型迭代了 5 个版本,每次都是按业务需求改的。结果第 6 个版本上线后,业务负责人换了,新来的负责人说「这个模型完全不对」。为什么?因为前一个负责人关注库存周转率,新负责人关注缺货率。业务目标变了,模型就得跟着变。

业务驱动 vs 技术驱动:两种思维模式的对比

我见过很多团队,技术驱动做得很漂亮。他们追求最新的技术栈、最优雅的代码、最极致的性能。但数据模型最终是给业务用的,不是给技术秀的。

这里我列一个对比表,你可以看看自己团队更偏向哪种:

维度 技术驱动 业务驱动
模型设计起点 数据库范式、性能优化 业务场景、决策需求
字段定义依据 数据类型、长度规范 业务口径、计算逻辑
迭代触发条件 技术债务、性能瓶颈 业务变化、新需求
验收标准 查询速度、数据一致性 业务方是否用起来、是否辅助决策
团队协作方式 产品给需求,技术实现 技术和业务一起讨论,共同设计

不是说技术驱动不好。性能、一致性这些当然重要。但它们是「底线」,不是「天花板」。你模型跑得再快,业务方看不懂、用不上,那就是白做。

我记得有一次,一个运营同事跟我说:「你们那个报表,我每次都要导出到 Excel 重新算一遍。」

我问为什么?他说:「因为报表里的『转化率』是按点击算的,我们考核是按下单算的。」

就这么一个口径差异,导致他们每天多花两小时手工处理。而这个问题,如果建模时多问一句「你们考核口径是什么」,根本不会出现。

如何判断自己是否真正「懂业务」?

我给自己定了一个标准:能不能用一句话说清楚这个模型服务的核心业务场景。

如果你只能说「这是一个客户订单模型」,那说明你还在 L1。如果你能说「这个模型支撑的是大促期间客户从浏览到下单的全链路分析,重点监控各渠道的转化漏斗」,那说明你至少到了 L3。

这里有几个自检问题,你可以拿来问问自己:

  • 这个模型的核心用户是谁?他们每天看什么数据?
  • 模型里的每个字段,业务方是怎么定义的?和你的理解一致吗?
  • 如果明天业务策略变了,这个模型需要改哪里?
  • 业务方最近一次抱怨数据不准,是因为模型问题还是口径问题?

这些问题,没有一个能在需求文档里找到答案。你得走出去,和业务方坐在一起,看他们怎么工作,听他们怎么讨论。

一个小技巧:我每个月会花半天时间,坐在业务方旁边看他们用数据。不提问,不解释,就看。你会发现很多「我以为他们是这样用的」和「他们实际是这样用的」之间的差距。这些差距,就是模型迭代的方向。

好了,这一章我们聊了为什么业务驱动是数据模型迭代的核心。说白了,模型是业务的镜子。镜子脏了,照出来的人像就是歪的。而擦镜子的人,不是业务方,是你自己。