跨境知识库数据团队

这份数据是给人看还是给系统读,看下游有没有机器在接

同一份数据,做成三列带中文注释的宽表,人看一眼就懂;做成四十个原子字段的宽表,机器读得懂,人打开就懵。选哪个,取决于下游有没有机器。

·

数据结构系统对接交付形态

同一份数据,做成三列带中文注释的宽表,人看一眼就懂;做成四十个原子字段的宽表,机器读得懂,人打开就懵。选哪个,取决于下游有没有机器。

分岔点是这份数据下游有没有机器在读

没有机器来拉,只有一个人打开看,那就该做成给人看的样子。三列合并,列名叫"本月实际出货",数字后面带一句备注。这种表难看,但它服务的是判断。

有第二个系统每天来拉,那就必须是原子字段。列名固定、类型固定、缺值用空而不是零。这种表没人看得舒服,但它服务的是对接。

分岔点落在"下游有没有机器在读",不落在"表好不好看"。

人读格式与机读格式的分岔点与静默失败代价
人读格式与机读格式的分岔点与静默失败代价

有没有机器在读下游,决定这张表长成什么样

两条路摆在这张表里

维度A 路 给人看B 路 给系统读
触发场景只有人看,只有一个人看另一个系统每天来拉
前提条件格式可以随时改字段名被下游写死
执行动作三列合并,标上中文注释四十个原子字段,列名固定
选错的代价下游每次接都重写一遍解析,一个下游一天改一个字段名,下游静默归零,三个报表错十天
回退方案改成机读,四天加双轨两周加个视图,字段映射写进文档,一天
什么时候必须停结构每周都在变,先别定型字段名下游写死了,改名就是事故

给人看这条路买的是理解成本低。给系统读这条路买的是一次做好、长期不用改。

选错的代价差在哪

A 路选错的代价是重复劳动。下游每接一次,就要写一遍解析,字段名带中文、带空格、带说明,一个下游一天,接三个下游就是三天。更麻烦的是解析规则没地方放,下游各自写一份,改一次列名要通知三个团队。

B 路选错的代价是静默失败。机读表的字段名被下游写死之后,你改一次列名,它不报错,它读不到那个字段就当空值处理,图上还画着线,只是线是平的。三个报表错了十天没人发现,因为格式没变、位数没变。

退回来要花多少

给人看改成机读,四天改造加两周双轨。双轨这两周是最烦的,两套结构同时存在,改一处要记得改另一处。

机读改回给人看,加一个视图,一天,字段映射写进文档。但这个回退有个前提:这期间机读表如果已经有别的系统在消费,回退等于让它们断供。退成本最低的时间窗是机读表交付给下游之前。

优劣在什么条件下翻转

下游数量会翻转优劣。只有一个下游,两边差别很小。有三个以上下游同时在拉同一份数据,机读赢,因为口径只需要在一处维护。

另一条是结构稳定性。结构三个月不动,机读赢,一次做好吃三年。结构每周都变,那就先做成给人看的宽表,别急着定型,因为定型之后每次变都要走一遍改造。

两条都不该走的情况

三条同时命中,两边都别做:只有一个人看、下游没有第二个系统、结构每周都在变。这三条凑齐,先做机读是在给自己埋一个改不动的东西。

我自己在这件事上做错过一次。2019 年给一个只有人看的报表做了标准机读结构,四十多个字段,配了两周。结果没有人愿意打开,因为要看一个数得先看六个字段。后来我又改回三列宽表,那套机读结构闲置了半年才删掉。做机读之前先问一句"谁在读",比问"读它做什么"更重要。

← 返回数据团队板块