AI 术语表 · 进阶 · 数据工程
数据契约
数据契约是指数据的生产方和使用方以文档和代码的形式,事先约定“这份数据将以何种格式、含义和质量提供”。违反约定的变更会被提前发现。
通俗解释 它类似于零部件供应商与整车厂之间签订的供货规格书。就像螺丝规格被悄悄更改会让装配线停摆一样,数据格式如果在没有预告的情况下改变,使用这些数据的报表和模型就会出问题。
工作原理
数据契约中通常会写明列名和数据类型等结构(schema)、各个值的含义、是否允许空值或取值范围等质量标准、更新周期、负责人等。这些内容往往既是供人阅读的文档,也以机器可检查的配置文件形式管理。数据生产团队修改代码时,自动检查会确认是否违反契约;如果是破坏性变更,就在部署前拦截或发出提醒。需要做较大变更时,会创建新版本,与使用方达成一致后再迁移。
数据契约包含的内容
格式与含义
- 列名和数据类型(schema)
- 各个值的含义
质量
- 是否允许空值
- 取值范围
运营
- 更新周期
- 负责人
- 变更时的版本与协商流程
为什么重要
很多数据问题源于源系统开发者在不知道有下游使用方的情况下修改了列名或格式。数据契约把这类事故从事后补救变为事前预防。在数据网格这种由多个团队分别负责数据的架构中,它是明确团队之间约定的关键机制。它也有助于防止 AI 模型的训练数据被悄悄改变而导致性能下降。
注意事项
契约只有在生产方接受遵守责任时才有效,因此组织层面的共识比技术更难。与其一开始就应用到所有数据,不如从重要数据入手更为现实。仅靠格式检查无法发现“值没错但含义错了”这类问题,所以要与数据可观测性等监控工具配合使用。与其说存在一个统一的标准格式,不如说各公司和各工具的写法都略有不同。
示例
运营订单系统的开发团队提交了修改“订单金额”列数据类型的代码后,部署流水线中的自动检查会确认契约显示该列正被销售仪表盘和需求预测模型使用,并阻止这次变更。开发团队与使用方团队协商,制定新版本的契约,然后按顺序迁移。