结论先说:如果导出任务原本按“总页数”翻页,而某次自动导出只落了部分分页,判断完整性不能只看文件行数或任务状态。更可靠的检查是先用一个可独立验证的小切片对照,再决定是补导遗漏页还是重跑整批。若你的工具把“分页”实现为游标而不是页码,这个结论会失效,因为漏页往往表现为游标提前结束,而不是页码跳号。
这两种机制决定了“遗漏分页”长什么样。页码分页下,遗漏通常体现为页码不连续或末页缺失;游标分页下,遗漏更可能体现为翻到某一页后返回空结果,但总数并未真正取完。检查前先看导出日志里记录的是 page= 还是 cursor=,这决定了后面用哪种核对方法。
总行数会骗人。假设某次导出得到 4800 行,而你以为总量约 5000 行,差 200 行既可能是漏了一页,也可能是查询条件本身有过滤、去重或时间窗口变化。更稳的做法是选一个可独立验证的切片:例如某个明确的关键词组或某个较短时间范围,单独导出一次,与整批导出中对应部分逐条比对。
实际动作:先固定查询条件(时间范围、匹配方式、去重规则),只导出一个小切片并记录其条目数;再用相同条件跑整批导出,从结果中筛出该切片对应部分。如果两者数量与内容一致,说明分页逻辑在这段区间内是完整的,可以继续补导其余部分;如果不一致,说明问题可能不在分页,而在筛选条件或去重规则,此时补导遗漏页没有意义,应先修正条件再重跑。
遗漏经常发生在边界:第一页之后、末页之前,或者总数刚好是每页条数整数倍时多出的空页。检查时重点看三处:
如果排序字段有重复值,翻页时同一批条目可能在相邻页重复出现或直接跳过。这时即使页码连续,完整性也不成立。判断依据是:把导出结果按唯一标识去重后,数量是否与切片对照一致;若去重后变少,说明存在跨页重复或遗漏。
如果工具在导出期间数据本身在变化,例如排名或条目在翻页过程中新增、删除,那么“切片对照一致”也不能证明整批完整。因为你在不同时间点看到的集合本来就不同。这种情况下,正确动作是先冻结查询条件或指定一个固定快照时间,再重新导出;否则补导遗漏页只会把不同时间点的数据混在一起,完整性无法成立。
检查完成后按结果分流:
每次重跑后都保留导出条件与切片对照结果,这样下一次出现遗漏时,你能快速判断是工具分页问题还是查询条件问题,而不是反复重导却始终得不到稳定结果。