Read in English

一个字段改了,什么都没报错

分层的数据资产与取舍

最贵的数据事故看起来都不像事故。什么也不报错,行照常到达,任务跑完,模型训完,三周后有人发现输出变了。

字段被悄悄改掉,是这类失败里最常见的一种。

它为什么一直静悄悄

改名的列变成空值,而空值在下游某处被一个默认值接住了。新增的取值变成未知,而未知通常被映射成「其他」。被删掉的字段,只是让表变窄了。

每一条路单独看都说得过去。合在一起,意思是模型训练用的数据,已经和数据卡里描述的那份不是同一个东西了。

把约定写下来

约定就是一个小文件:字段名、类型、允许的取值或范围、能否为空、以及版本。它放在数据旁边,不放在 wiki 里。

然后让装载器去检查它。违反约定的行带着理由被拒绝,而不是被掰成合适的形状。

大声拒绝,但在私底下

在生产里拒绝行听起来吓人,所以团队选择了强制转换。正确的做法是拒绝进异常队列、计数,然后由人来决定。

有异常队列的链路可以信任。静默强转的链路不行,看板再绿也不行。

给约定版本,不只是给数据版本

每次改动都有版本号和日期。下游任务声明它期望哪个版本,不匹配就是一个启动错误,而不是月底的意外。

Zovda 通过 Datuva 交付每一批数据时都附一份带版本的约定。数据研究语料展示了字段清单如何跟数据一起走。

告诉我们你的链路依赖哪些字段,我们会在 1 个工作日内回复。

说说哪一处会无声地崩掉

相关文章

把数据这件事做成可规划的项目

在投入之前,把数据集、更新节奏和成本算清楚,我们在 1 个工作日内回复。

申请试用

申请试用

告诉我们你要解决的问题,我们在 1 个工作日内回复。