先给结论:不要只看导出文件的记录条数。自动导出遗漏分页,通常有两种解释——一是导出任务在抓取阶段提前结束,二是分页参数或去重规则把后续页面过滤掉了。要区分它们,需要把“接口实际返回的页数”和“文件里最终落下的页数”分开核对,而不是用一个总数下判断。
假设某次查询共返回 1,240 条结果,每页 50 条,理论上是 25 页。导出文件有 1,240 行,但逐页核对时发现第 13 页整页缺失,同时某一页出现了重复行。总数没变,分页却断了。这说明“条数相等”不能证明完整性,因为重复行可能恰好补上了缺失行的位置。
这类现象在自动导出里很常见:任务按页请求,页与页之间发生重试、超时或游标错位时,重复与遗漏可以互相抵消。因此完整性检查的最小单位不是总条数,而是页。
工具在请求某一页时超时或触发限流,任务按容错逻辑跳过后继续,最终文件缺少该页。特征是缺失页往往集中在任务后段,或与耗时、报错时间点接近。
起始偏移、每页条数、排序字段设置不一致,会让某些页被跳过;按主键去重时,如果主键选择不当,跨页重复项被删掉后,看起来像整页消失。特征是缺失页位置随机,且常伴随重复行被压缩。
关键是保留一份“过程记录”,而不是只保留最终文件。具体可核对:
如果过程记录显示某页请求失败或被跳过,倾向解释一;如果每页都成功返回,但相邻页的排序字段出现断层,倾向解释二。两者的修复动作不同:前者要调整重试与限流策略,后者要统一分页参数与去重主键。
先做小范围对照:对同一查询条件,分别用自动导出和手动逐页翻取,各取前 5 页,逐页比对首末记录。若手动结果连续、自动结果断层,问题在自动流程;若两者断层位置一致,问题在查询条件或数据本身。
这个动作的结果会直接决定下一步:确认是流程问题,就回到过程记录修重试和分页参数;确认是数据问题,就先固定排序字段和唯一键,再重新导出。无论哪种,都不要在未核对页级记录前扩大导出范围,否则遗漏会被更大的数据量掩盖。
每次导出后至少完成三项:核对实际页数与理论页数、检查相邻页排序字段是否连续、统计去重前后的行数差。三项都通过,再进入分析环节。若某一项不通过,先定位到具体页和具体字段,再决定是重跑任务还是修改查询条件。具体工具的分页上限、去重选项和重试设置各不相同,实际名称与可用范围需要以该工具当前说明为准。