先给结论:自动导出遗漏分页,通常不是“导出失败”,而是分页边界、去重和过滤规则共同造成的静默丢数。检查完整性不能只看总条数,要先固定一份可复算的基准,再让导出结果与基准逐层对齐。对旧内容、旧系统或旧合作关系准备退出时,这个动作决定了哪些数据值得保留、哪些可以改写后继续用、哪些应当直接放弃。
自动导出遗漏分页,可能发生在三个不同位置:请求层没有取到全部页,解析层把某些页当成重复丢弃,写入层被过滤条件筛掉。三者的表现都是“结果变少”,但处理方式完全不同。
判断方法很直接:保留一份原始响应或中间文件,不要只留最终导出结果。只要中间层还在,就能复算;如果只剩最终文件,完整性就无法验证,只能重新导出。
总条数会骗人。分页接口在导出过程中数据仍在变动,或者去重规则把两条合成一条,总数都会变化,但这不代表导出正确或错误。更可靠的基准是“页码集合加每页标识”。
假设一个工具按页返回结果,每页带有页码和该页首条记录的稳定标识。导出完成后,检查两件事:页码是否从第一页连续到最后一页;每一页的首条标识是否都出现在结果中。这个假设只用于说明比较方法,实际字段名和分页方式需要按所用工具核对。
如果页码连续、每页首条标识齐全,但总数仍少于预期,问题多半在写入层去重,而不是分页遗漏。这时应该去查去重键,而不是继续翻页。反过来,如果页码有断点,无论总数多接近预期,都应视为不完整。
旧内容、旧系统或旧合作关系准备退出时,面对一份可能不完整的导出结果,有三种取舍,各自适用前提不同。
这三种选择不是必须全部走一遍。多数情况下,先判断中间文件是否还在,就能直接排除其中一两种。
具体动作:在导出前,先单独请求第一页和最后一页,记录页码、每页条数和首条标识;导出完成后,用同一组字段在结果里查找。如果最后一页的首条标识找不到,说明分页没有取全,下一步应检查请求层的终止条件,而不是调整去重规则。
这个动作的结果会直接影响下一步:标识齐全,才值得花时间做去重和过滤的核对;标识缺失,先修分页逻辑,其他检查都是次要的。对准备退出的旧系统,这一步还能帮你决定是否值得为它再修一次导出程序。
不同工具对分页、去重和导出的处理方式差异很大,分页上限、去重键默认值和导出字段是否包含页码,都属于需要按实际工具核对的项。不要根据界面上的“导出全部”字样推断完整性,也不要根据一次成功的导出推断规则稳定。把导出规则、去重键和过滤条件记录下来,比记住某个按钮的位置更有用。
如果这批数据还要继续使用,先补上页码和首条标识这两个字段,再谈保留还是改写;如果补不上,就把它当作参考清单,不要让一份无法复算的结果进入后续决策。