先给结论:自动导出遗漏分页,多数不是导出按钮坏了,而是“分页边界”没有被定义清楚。你要做的第一件事,是把手中那份导出文件当作一份待核对资料,先算出它理论上应该覆盖多少条、覆盖到哪一页,再和实际行数、末页内容逐项对照。只有确认缺口的位置和性质,才能决定是补导、改筛选条件,还是换一种导出方式。
不同角色对“遗漏分页”的理解常常不一致:运营看到的是最后几页没进来,技术看到的是请求在某一页返回空,主管看到的是总数对不上。把分歧转成可核对项目,需要先写清三个边界。
假设你导出的是某栏目下全部已收录页面,按“更新时间”倒序,每页50条。如果更新时间存在大量相同值,翻页时同一批记录可能在相邻两页重复出现,也可能被跳过。此时末页看起来正常,中间却已经缺了一段。遇到这种结构,先改用唯一性更强的字段排序,再重新导出,往往比逐页补导更省事。
拿到文件后,不要只盯总行数。下面三个信号能帮你区分“真遗漏”和“看起来像遗漏”。
这里要提醒一点:请求量归零、抓取量下降或某页返回空,都不能单独证明“已经导完”。返回空也可能是筛选条件过严、该页确实无数据,或请求被临时限制。把空结果当作完成信号之前,先用同一条件换一个排序字段再跑一次,看空页是否仍然出现。
确认缺口后,按缺口性质选择动作,而不是一律重跑全量。
一个注明假设的短例子:假设你预期导出1200条,每页50条,理论上是24页。实际文件只有1150条、23页,第23页只有50条且没有第24页。此时不能直接断定少了第24页,因为也可能总数本来就是1150。正确做法是回到数据源,用不带分页的计数方式核对总数;如果计数确实为1200,再检查第24页请求返回了什么。这个动作的结果决定下一步是补导一页,还是修正你对总数的预期。
补导完成后,完整性检查还没有结束。第一件事是去重规则:如果按整行去重,两个字段相同但其他字段不同的记录可能被误删;如果按唯一ID去重,则要先确认导出文件里确实包含该ID。第二件事是排序复核:合并后的文件应按唯一字段重新排序,再检查相邻记录是否连续,而不是沿用补导前的顺序。
另外,如果导出涉及多个角色共同使用,建议在文件里保留一列“数据来源页或分段标识”。这样当有人质疑某条记录缺失时,你能直接定位它来自哪一次导出、哪一段范围,把争论变成可复查的条目。具体工具是否支持保留该字段、字段名称是什么,需要以你实际使用的版本为准,不能凭印象假定。
如果连续两轮补导后,缺口仍然出现在不同位置,说明问题不在单页请求,而在分页机制本身。这时继续逐页补导只会消耗时间。更合理的动作是改变导出粒度:缩小时间区间、减少筛选维度,或改为按唯一ID批量查询。判断标准很简单——当每一段的边界都能被独立验证,且段与段之间没有重叠和空洞,完整性才算可核对。达不到这个标准,就不要把“行数接近预期”当作完成。