先给有条件的结论:如果导出任务的分页参数、排序方式和抓取时间窗口都能被复现,那么“自动导出遗漏分页”多半是导出端对总条数或游标推进的判断出错,而不是数据源本身缺页。此时应优先核对分页边界,而不是重新跑全量。反例是:当数据源在导出过程中发生删除、下架或权限变更,即使分页逻辑正确,也会出现真实缺页,这时任何分页检查都只能证明“当时读到多少”,不能证明“应该有多少”。
把问题拆成三层:数据源总条数、导出工具请求到的页数、最终落盘的行数。三者不一致时,才能定位是分页逻辑、网络中断还是去重规则造成的。具体动作是:用同一组筛选条件,按“创建时间升序”和“创建时间降序”各导出一次,比较两边首尾记录的标识是否互补。如果升序缺的是尾部、降序缺的是头部,通常指向游标在最后一页没有继续推进;如果两边缺的是同一批中间记录,更可能是筛选条件在两次请求之间发生了变化。
以下证据能帮助区分原因,而不是只看总数是否对得上:
这里要说明一个限制:抓取量或请求量归零,并不能单独证明分页处理正确。它也可能是权限失效、接口返回空结果或筛选条件过窄造成的。需要结合上表逐项排除。
假设某次导出应得到 1000 条记录,工具按每页 100 条请求,最终落盘 900 条。先不要直接补跑。检查第 10 页返回的游标是否为空,以及第 9 页最后一条记录在按升序导出时是否出现在第 10 页开头。如果第 10 页返回了数据但落盘时被去重规则合并,那么缺的 100 条可能只是重复项,不是遗漏。这个例子的数字仅用于说明比较方法,不代表任何工具的实际表现。
具体动作是:取导出结果的首条、末条和每页交界处各一条记录,回到数据源逐条核对是否存在。若交界处记录存在但未出现在导出文件中,则把该页号、排序字段和请求时间记录下来,作为复现条件。这个动作的结果会直接影响下一步:如果能稳定复现,应先调整分页参数或改用游标分页,而不是扩大导出范围;如果无法复现,则应保留两次导出的差异清单,按数据变动处理,并在下一次导出前固定筛选条件和时间窗口。
当旧内容或旧合作关系需要退出,导出完整性检查的目标不是“把所有历史记录都拉回来”,而是确认哪些记录仍然需要保留。做法是:先按退出范围缩小筛选条件,再对保留下来的记录单独做一次分页边界校验。若某批记录在缩小范围后仍然缺页,说明问题出在分页逻辑;若缩小范围后不再缺页,说明原先的缺页来自范围过大或数据源变动。两种结果对应不同的后续动作:前者修导出逻辑,后者只保留校验通过的记录即可。
最后要提醒的是,分页完整性检查只能证明导出过程在给定条件下是否自洽,不能替代对数据源当前状态的核对。具体工具的按钮位置、字段名称和分页上限需要以你实际使用的版本为准,必要时应核对官方说明或直接测试一页边界记录。