结论先行:只有当你能证明“遗漏分页”确实存在于导出范围之外,而不是导出规则本身排除了它们,才值得立刻补导。一个可操作的办法是先用一份小样本做边界测试,再决定是补导还是改规则。如果测试结果与直觉相反——例如补导后总数反而减少——优先怀疑分页游标或排序字段不稳定,而不是数据源缺页。
自动导出常按时间、状态或某个ID区间切分页。当最后一页数量少于每页上限时,工具通常停止翻页,这属于正常结束;真正需要检查的是中间页被跳过的情况。区分二者的证据不同:范围问题表现为某段时间的记录整体缺失,分页问题表现为记录分散缺失且与排序字段相关。
假设某次导出设定每页100条、按“最后更新时间”升序。如果导出过程中有记录被更新,它的排序位置会前移或后移,游标翻页就可能重复或漏掉。这类遗漏无法靠“再导一次”自动修复,需要固定排序键或改用基于唯一ID的游标。
这三组证据要一起看。单独看总数或单独看ID跳跃,都可能把“数据源本来就没有这条记录”误判成“导出遗漏”。
即使边界抽样发现空档,也不能直接断定导出不完整。反例是:数据源在两次导出之间发生了删除或状态变更,原本存在的记录已不在当前结果集中。此时补导不会找回它,强行对比历史快照只会得到更多噪声。
另一个反例是分页排序字段存在大量相同值。当多页记录共享同一时间戳时,工具的分页边界可能落在相同值中间,导致部分记录被重复读取、部分被跳过。这种情况下,补导次数越多,重复越严重,而缺失未必减少。
如果证据指向分页机制,先不要扩大导出范围。把排序键换成唯一且不可变的字段,例如记录ID,再重新执行一次导出。动作的结果会直接决定下一步:
做完这一步后,把本次使用的排序键、每页大小和导出时间窗口记录下来。下一次出现类似异常时,可以直接对比是规则变了还是数据变了,而不必从零排查。完整性检查的目标不是让导出条数等于某个预期数字,而是让每一次缺失都能被解释清楚。