3、数据契约的参与者:生产者、消费者、治理者、平台方各自的职责

数据契约不是一个人能搞定的事。我见过太多团队,上来就扔给开发一个模板,说「你们把契约填了」。结果呢?没人认领,没人维护,最后变成一堆没人看的文档。

说白了,数据契约需要四个角色一起玩:生产者、消费者、治理者、平台方。缺一个,这契约就立不住。

下面这张图,是我每次给团队培训时必放的。它把四个角色的关系和核心职责说清楚了。

数据契约四角色协作框架 数据契约 生产者 消费者 治理者 平台方 生产者承诺数据质量 · 消费者反馈使用需求 · 治理者制定规则 · 平台方提供工具和自动化

生产者:数据契约的「第一责任人」

生产者是谁?就是那个产出数据的人或系统。在数据仓库里,可能是 ETL 开发;在微服务架构里,就是提供 API 的后端团队。

我个人的习惯是,谁写代码产出这张表或这个接口,谁就是生产者。别扯什么「数据是公司的」,落地的时候必须落实到人。

生产者的核心职责有三块:

  • 定义契约内容:字段名、类型、长度、枚举值、主键、分区键,这些必须写清楚。我见过一个项目,生产者说「这个字段就是存状态的」,结果消费者查出来一堆「A」「B」「C」,没人知道什么意思。
  • 保证数据质量:空值率、延迟时间、数据量级,这些要有明确的承诺。我曾经遇到一个生产者承诺「延迟不超过 5 分钟」,结果每天凌晨跑批要 2 小时,消费者那边的报表全崩了。
  • 契约变更通知:字段要改、类型要变、表要下线,必须提前通知。别悄咪咪改了,让消费者查了半天才发现字段没了。
我的经验:生产者最好在 CI/CD 流程里加一个步骤——每次发布前自动校验契约是否被破坏。如果改了字段没更新契约,直接阻断发布。这招我用了三年,效果极好。

消费者:别当「沉默的大多数」

消费者是使用数据的人。数据分析师、算法工程师、下游系统,都是消费者。很多人觉得消费者就是「拿来用就行了」,其实不然。

消费者的职责同样重要:

  • 明确使用场景:你要拿这个数据做什么?实时还是离线?每天跑一次还是每秒都要?这些信息必须反馈给生产者。我见过一个消费者说「我要全量数据」,结果生产者每天给他推 10TB,他根本存不下。
  • 遵守契约约定:生产者承诺了「延迟 1 小时」,你就别要求「实时」。生产者说了「这个字段可能为空」,你的代码就得处理空值。别出了问题就甩锅给生产者。
  • 反馈质量问题:发现数据不对、延迟超标、字段含义模糊,第一时间反馈。别自己默默修修补补,然后假装什么都没发生。
避坑指南:我曾经遇到一个团队,消费者从来不反馈问题,自己写了个脚本每天修数据。修了半年,生产者完全不知道自己的数据有问题。最后数据对不上,两个团队吵了三天。记住:发现问题不反馈,等于在埋雷。

治理者:定规则、做仲裁、管生命周期

治理者通常是数据平台团队或数据治理委员会的人。他们不直接写代码,但负责制定游戏规则。

治理者的职责,我总结为三件事:

  1. 制定契约规范:字段命名规则、版本号管理、变更流程、审批机制。没有规范,每个团队都按自己的习惯来,最后就是一团乱麻。
  2. 仲裁争议:生产者和消费者吵起来了,谁来拍板?治理者。比如生产者说「这个字段我就是要删」,消费者说「我还在用」,治理者就得出来协调,定一个迁移计划。
  3. 管理生命周期:契约不是签了就完事了。哪些契约已经过期?哪些字段已经废弃?治理者要定期清理。我见过一个系统里躺着 300 多张表的契约,其中一半已经没人维护了。
治理场景 治理者动作 常见问题
新契约创建 审核字段定义、类型、约束 字段命名不规范,类型选择不合理
契约变更 评估影响范围,协调变更窗口 变更未通知消费者,导致下游报错
契约废弃 确认无消费者使用,归档或删除 废弃后仍有任务依赖,引发数据中断
质量违规 判定责任方,触发整改流程 责任不清,互相推诿

平台方:把契约「自动化」

平台方是提供基础设施的团队。他们不参与具体业务,但负责让契约这件事变得简单、可执行。

平台方的核心产出物:

  • 契约管理平台:在线创建、编辑、审批、发布契约。别让团队用 Excel 或者 Wiki 来管,那玩意儿没法自动化。
  • 自动化校验工具:生产者发布数据时,自动校验是否满足契约。不满足就告警,甚至阻断。
  • 监控与告警:数据延迟、空值率超标、字段类型变化,这些都要有监控。我建议至少做到「分钟级」的检测。
  • 版本管理:契约的每个版本都要可追溯。谁改的?什么时候改的?改了什么?这些信息必须存下来。

平台方的核心原则:让契约成为开发流程的一部分,而不是额外的工作量。如果创建契约需要手动填 20 个字段,没人会愿意用。平台方要想办法从元数据自动生成契约草案,让开发者只需要确认和补充。

四个角色如何协作?

光有角色定义还不够,关键是协作流程。我习惯用「契约生命周期」来串起这四个角色:

  1. 创建阶段:生产者定义契约草案,平台方提供模板和工具。
  2. 审核阶段:治理者审核规范性和完整性,消费者确认是否满足需求。
  3. 发布阶段:平台方将契约注册到元数据中心,开启自动化校验。
  4. 使用阶段:消费者按契约消费数据,发现问题反馈给生产者。
  5. 变更阶段:生产者发起变更,治理者评估影响,消费者确认兼容性。
  6. 废弃阶段:治理者确认无消费者使用,平台方归档契约。

你看,每个阶段都有明确的负责人。没有模糊地带,没有「我以为你会做」的情况。

一个小建议:刚开始推行数据契约时,别追求一步到位。先让生产者和消费者把最基本的字段定义和类型对齐了,治理者和平台方在后面慢慢补工具和流程。我见过太多团队,一上来就想搞个完美的平台,结果搞了半年还没上线。

嗯,四个角色的职责说清楚了。下一件事就是怎么把这些职责落地到具体的流程和工具里。不过那是后面章节的事了,先把角色认领好,别让数据契约变成「没人管的孩子」。