Read in English

「更新数据」其实是一次结构变更

分层的数据资产与取舍

每月更新一批数据,感觉像是往后面追加行。它其实是一次伪装成追加的结构变更——因为产出数据的上游也变了,而它没有事先打招呼。

字段改名、装载器把那一列填成空值,什么都不会坏。训练照常跑完。结果悄悄不一样了。

那种安静的断裂

一次更新里会有三件事变,只有一件是「多了几行」:

  • 结构不变的新行,这是所有人都准备好的情况
  • 既有字段里出现新值,这是会毁掉配比的情况
  • 定义变了,比如某个类别现在包含了它原本排除的东西

第三种在行数上看不出来,在行为上却是决定性的。

把结构钉住,让内容按版本走

把字段清单当成一份带版本号的约定。上游加了一个取值,那是一个新版本,不是某个普通的星期二。

旧版本要一直保持可读,只要下游还有东西可能跑在它上面。只能读最新结构的数据链路,复现不了上个月那次训练。

回填是另一份工作

用新定义去补历史,会做出一个看起来一致、其实不一致的集合,因为那些旧行是在已经不存在的规则下产出的。

要么按当时的规则回填,并且标注清楚;要么不碰历史,从新定义生效的那天开始。把选择写下来。

每次更新该记的四行

新增行数、删除行数、每个类别的取值分布及变化、上游变更的日期。四行字,能把一次「玄学」变成一份差异清单。

这些语料由 Zovda 通过 Datuva 维护,每次更新留下自己的记录,上游删掉的内容也不会在下游变成一个洞。语料总目录列出了按月更新的几类。

告诉我们你的数据要多频繁地动,我们会在 1 个工作日内回复。

说说你的更新必须保住什么

相关文章

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

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

申请试用

申请试用

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