不能直接拼接。只有在你能为缺失的共同字段补出一个可核验的映射关系时,个别样本的趋势线才可以延伸到新数据;否则规模化后必然出现例外,趋势会被错读成断崖、跳升或消失。更稳妥的做法是把新旧数据分开呈现,再单独说明两者之间的口径差异。
旧数据与新数据缺少共同字段,常见于三种情形。第一种是旧记录只保留了快照的快照时间与页面地址,而新记录改成了页面状态与内容摘要;第二种是旧记录用页面级条目,新记录用站点级聚合;第三种是旧记录只留下“删除”这个动作,没有保留删除前后的内容版本。
这三种情形对拼接的影响不同。第一种缺的是时间锚点,通常还能通过页面地址回查历史版本;第二种缺的是粒度,聚合值不能反推页面级变化;第三种缺的是对照对象,你只能看到动作,看不到动作前后的差异。只有第一种具备“补字段后拼接”的现实条件,后两种更适合分开统计。
假设你手上有五条旧记录,每条都能通过页面地址在公开存档中找到对应版本,时间戳也能对上。你把它们和新记录按“页面地址+时间窗口”拼接,得到一条平滑的趋势线。这只能说明这五条恰好具备可映射条件,不能说明第六百条也如此。
规模化后最先失效的地方通常是页面地址本身。旧记录里的地址可能带参数、带栏目路径或已改版跳转,新记录里的地址是规范化后的地址。前几百条里改版比例低,映射看起来成立;当改版页面比例上升,地址匹配会大面积失败,趋势线会出现一段没有解释的缺口。此时如果把匹配失败的记录直接丢弃,趋势会被高估或低估,而不是“更干净”。
判断缺口来自数据本身还是来自映射失败,可以看缺口的时间分布。如果缺口随机分散在各个时间段,更可能是采集或存档覆盖不全;如果缺口集中在某次改版、某次栏目调整或某个时间点之后,更可能是地址或字段口径变化导致的映射失败。
这个区分会直接影响下一步动作。随机缺口需要补充数据来源;集中缺口需要先修复映射规则,再决定是否重新拼接。把两种缺口混在一起处理,往往会在修复映射之后发现趋势仍然对不上,因为原来的缺口本来就不是映射问题。
具体动作是:从旧数据中分层抽取样本,按时间段、页面类型和改版状态各取若干条,逐条尝试建立新旧字段映射,记录成功与失败的原因。如果失败集中在某一类页面,就先为这一类单独建立映射规则,而不是全量合并。
这个动作的结果会决定下一步:映射成功率在分层内稳定,才可以把拼接范围限定在对应分层;如果某一层始终无法建立稳定映射,就保留该层为独立序列,只在新数据内部做趋势,不把旧数据强行接上去。这样得到的结论虽然少了一段,但不会把口径差异误读成真实变化。
可以拼接的条件是:缺失字段能通过外部可核验来源补出,补出的值与新数据字段定义一致,且在分层抽样中映射成功率稳定。三者缺一,结论就应降级为“只能并列展示,不能合并趋势”。
反过来,只要出现一个反例——例如某类页面在补字段后仍无法与新数据对齐,而这类页面在整体中占比不可忽略——就不能把个别样本的拼接结果推广到全量。此时更诚实的做法是分别描述旧数据和新数据各自的趋势,再单独说明两者之间的口径差异,而不是给出一个看似连续的合并曲线。