先给结论:不要急着重新导出全部数据,而是先用一份“边界样本”验证遗漏是导出工具的分页逻辑问题,还是源站本身在分页处发生了变化。判断依据是:遗漏的分页是否集中在固定页码区间,以及导出结果里相邻两页的记录键是否连续。如果连续,说明是导出侧截断;如果不连续,说明源站分页已经变动,需要先修正抓取范围。
自动导出遗漏分页,常见原因有两类。一类是导出工具按固定页码递增请求,遇到源站返回空页就提前停止;另一类是源站分页本身不稳定,同一页码在不同时间返回不同记录。两者处理方式完全不同。
可区分的证据是记录键的分布。假设某列表按发布时间倒序,每页20条。导出后第3页最后一条的发布时间是10:00,第4页第一条却是09:20,中间缺失了09:40到09:20之间的记录。这说明第4页内容被跳过,属于导出侧分页参数错误。反之,如果第3页和第4页之间时间连续,但总条数少于源站页面显示的计数,则更可能是源站分页在导出过程中发生了重排。
面对遗漏,有两种看似合理的做法:一是直接扩大导出范围,把页码上限调高;二是先做小样本边界测试,再决定是否重跑。
选择依据是:如果遗漏只出现在最后一页附近,且前面页码记录键连续,优先扩大上限;如果遗漏出现在中间页码,或多次导出遗漏位置不一致,优先做边界测试。
取导出结果中相邻两页的边界,各抽3条记录,记录它们的唯一键(如ID或URL)。然后手动请求源站对应页码,比对边界处是否出现相同的唯一键。
具体动作:假设导出结果第5页最后一条ID为A105,第6页第一条ID为A086。手动打开源站第6页,如果第一条是A105之后的A104,说明导出时第6页被整体跳过;如果源站第6页第一条也是A086,说明源站分页本身在两次请求之间发生了重排。这个结果直接决定下一步:前者修正导出工具的分页参数,后者需要改用按时间或ID范围增量抓取,而不是按页码抓取。
上述检查假设记录有稳定唯一键,且源站允许按页码访问。如果源站只提供游标分页,或唯一键在导出结果中被截断,边界比对就不成立。此时应改用总数校验:记录导出首尾时间范围,再与源站该时间范围内的计数比对。计数不一致只能说明有遗漏,不能单独证明是导出工具的问题,还需要排除源站期间新增、删除或审核状态变化。
另外,如果导出任务本身耗时较长,源站数据在任务期间发生更新,也会造成边界不连续。这种情况下,完整性检查应固定在数据低峰期执行,或改用带时间戳的快照导出。具体工具是否支持快照或游标模式,需要以该工具当前文档为准,不能仅凭旧版说明推断。