自动导出遗漏分页,先别急着补导,而要判断遗漏发生在“任务层”还是“结果层”。如果导出任务本身被截断,补导只会重复残缺数据;如果是结果层分页边界漏掉,补导才能补齐。下面给出两种条件下的不同检查路径。
两种遗漏的外在表现相似,都是导出文件里少了若干行,但成因不同,检查动作也不同。区分依据是:导出文件的总行数与任务日志中记录的“处理行数”是否一致。
可以做一个假设性例子:某次导出得到 480 行,日志记录处理 500 行,差额 20 行集中在第 7 页附近。这更接近分页边界遗漏,而不是任务截断,因为差额小且位置集中。若文件只有 120 行而日志记录 500 行,则更可能是任务截断。
当两者一致却仍怀疑遗漏,重点检查分页游标是否稳定。常见原因是排序字段存在大量重复值,导致相邻页之间出现“跳过”或“重复”。
如果加入唯一排序后缺失行出现,说明原导出受排序不稳定影响,后续所有导出都应固定排序字段。如果缺失行仍未出现,则要转向检查分页参数是否被工具默认值覆盖。
如果日志记录的处理行数就低于预期总量,说明遗漏发生在任务开始之前,而不是分页过程中。此时补导没有意义,应先修正任务边界。
这一步的实际动作是“放宽过滤条件后重跑”,它的结果直接决定下一步:若行数上升,就按新条件重新导出;若行数不变,就应检查账号权限或工具侧的任务配额,而不是继续调整分页。
总行数一致不代表内容完整,因为可能同时存在遗漏和重复。更可靠的做法是抽样对账。
如果三个抽样点都能对上,完整性基本可信;如果某页首行存在但末行缺失,说明该页被截断,应回到分页游标检查。抽样对账不能证明绝对无遗漏,但能快速区分“整体缺失”和“局部截断”,避免盲目重导。
还有一种情况容易被误判为遗漏:导出期间源数据正在更新,导致同一查询条件在不同时间返回不同结果。此时文件行数可能正常,但对比时总觉得少了某些记录。
判断方法是记录导出开始和结束的时间戳,然后重新查询同一条件,看缺失记录是否出现在新的结果中。如果出现,说明是数据时效差异,不是导出遗漏。后续如需稳定对比,应在导出前固定一个时间快照,或接受“导出结果只代表导出时刻”这一前提。
无论走哪条路径,检查顺序都应是:先对齐日志行数与文件行数,再判断是任务边界还是分页边界,最后用抽样对账确认。跳过前两步直接补导,往往只是重复一次同样的遗漏。