先给结论:自动导出如果漏掉分页,单看导出文件“有没有报错”或“行数是不是整数”都不够。更可靠的做法是先保留原始导出文件,再用一个可复核的最小动作——按分页边界抽样回查——判断遗漏是局部的、系统性的,还是导出口径本来就不包含那些页。在确认之前,不要直接改写数据或据此退出查询流程。
发现行数偏少时,第一反应往往是补数据或直接清洗。但自动导出遗漏分页有两种性质完全不同的原因:一种是工具只抓到了前若干页就停止,另一种是导出规则本身设了上限,后面的页从未进入任务范围。前者是执行遗漏,后者是口径限制。如果先改写文件,两种原因会混在一起,之后无法区分。
因此建议先做保留动作:把原始导出文件按导出时间单独存档,不改列名、不删空行、不合并重复项。保留的价值在于,后面无论选择补导、改写还是退出,都能回到同一个基准。如果一上来就改写,后续任何行数对比都失去参照。
保留之后再看一个信号:文件末尾是否存在明显的截断特征,例如最后一页的记录数明显少于前面各页,或最后一条记录的时间戳集中在某个较早区间。这只能作为线索,不能单独证明遗漏,因为排序方式变化也会造成类似现象。
总行数对不上,可能来自遗漏分页,也可能来自去重、筛选条件变化或字段截断。要缩小范围,可以按分页边界抽样:从导出结果中取出第一页末尾、中间某页末尾、最后一页末尾附近的记录,回到查询界面逐条核对是否存在、字段是否一致。
具体动作可以这样设计:假设导出规则是每页固定条数,先记录导出文件里实际出现的页边界位置,再挑三个边界各取若干条记录回查。如果只有最后一页之后的记录缺失,偏向执行中断;如果中间页边界也出现缺失,偏向分页参数或翻页逻辑问题;如果边界记录都在、只是总数偏少,则要优先怀疑去重或筛选口径。
这个动作的结果会直接影响下一步:边界抽样通过,说明遗漏范围可能很小,可以进入补导验证;边界抽样失败,说明遗漏是结构性的,此时补导同一规则大概率仍会漏,应先调整导出范围或分页方式,而不是反复重跑。
保留适用于:遗漏尚未定位,且这份数据还要用于后续对比。前提是你能接受暂时不产出结论,先存好原始文件和抽样记录。保留不是拖延,而是为后面的判断留证据。
改写适用于:已经确认遗漏只发生在末尾少量分页,且这些页可以通过重新查询补齐。前提是补齐后的记录能与原文件按同一字段对齐,否则合并会引入重复或错位。改写前应记录改了哪些行、依据是什么,否则下次无法复现。
退出适用于:确认导出规则本身就不覆盖你需要的那部分数据,且当前权限或查询条件无法改变这一范围。前提是你已经用抽样验证过,而不是因为一次行数偏少就放弃。退出时至少要留下“哪些页不在范围内”的记录,供后续换口径时参考。
假设某次导出设定为按页抓取,每页若干条,任务在中间某页后停止,文件里最后一页记录数明显偏少。此时先不回改文件,而是取该页末尾若干条回查:若这些记录在查询结果中确实存在,说明是抓取中断;若查询结果里也找不到,则可能是筛选条件在导出过程中发生了变化。两种情况的下一步不同——前者补导同一范围即可验证,后者需要先固定筛选条件再重新导出。这个例子只说明比较方法,不代表任何具体工具的现状。
导出任务显示完成、文件能正常打开、行数恰好是某个整数,这些都不能单独证明分页完整。任务完成只说明流程结束,不说明覆盖了全部分页;行数整齐可能只是巧合,也可能来自去重后的结果。反过来,行数偏少也不必然等于遗漏,筛选条件、时间范围、字段截断都可能造成同样现象。
可执行的收尾动作是:把抽样回查的记录、原始文件、导出时的查询条件放在一起,形成一份最小核对记录。只要这份记录能回答“漏在哪一页、为什么漏、下一步用哪个口径补”,完整性检查就算完成;如果回答不了,就继续停留在保留状态,不要急着改写或退出。