先给有条件的结论:如果导出任务支持按时间窗或游标续跑,且你能拿到每次导出的请求参数与返回条数,那么遗漏分页通常可以通过“重跑同一时间窗并比对主键集合”来确认完整性;但如果导出接口只返回聚合结果、不返回分页游标或原始主键,这个结论就不成立,你只能改用抽样回查或从渠道侧对账。下面按这个前提展开。
自动导出遗漏分页,可能发生在三个不同层:请求层、解析层、存储层。三层的证据不同,处理动作也不同。
先定位层级,再决定是重跑、改映射还是改去重规则。跳过这一步直接全量重导,往往会把存储层的问题再复制一遍。
假设某推广渠道的导出接口支持按日期范围拉取,并返回每条记录的稳定ID。你可以这样做:
这个动作的结果直接影响下一步:差集为空时,问题可能在解析或存储层,需要查字段映射和去重规则;差集非空时,问题在请求层,需要检查分页触发条件或接口的页数上限。
如果渠道接口的排序字段不稳定,比如按“更新时间”排序但同一秒内有多条记录,那么即使重跑参数完全一致,两次返回的分页边界也可能不同。此时主键集合比对会出现“假差集”:两次都完整,但边界漂移导致某些记录在两次中落在不同页。这种情况下,集合比对不能证明遗漏,只能证明分页不稳定。你需要改用按主键区间切分的方式,或者要求接口支持稳定排序。没有稳定排序时,任何基于分页比对的完整性结论都不可靠。
当旧渠道需要退出、但部分数据仍有保留价值时,完整性检查的目标不是“全量恢复”,而是“确认要保留的那部分没有缺口”。具体动作:先圈定要保留的记录范围,比如某个时间段或某类转化事件;然后只对这个范围做分页重跑和主键比对;最后把差集记录补入保留集,其余数据按退出流程处理。这样做的结果是,你不需要为已经决定放弃的数据反复重导,也能对保留部分给出可核对的完整性依据。如果保留范围本身依赖渠道后台的筛选条件,而该条件无法在导出接口中复现,那么完整性检查只能降级为抽样核对,并在记录中注明抽样比例和假设。
完成上述比对后,按以下顺序推进:
无论哪种结果,都要把“本次比对使用的参数、假设和未覆盖范围”写进退出记录,这样后续复查时能区分“确实没有遗漏”和“当前方法无法证明遗漏”。