有条件的结论是:当自动导出只拿到部分分页时,完整性不能靠“总条数看起来正常”判断,而要靠可复算的分页边界和唯一标识核对。若导出接口本身按时间窗口或去重规则截断,再多的条数比对也会给出错误的安全感。
自动导出遗漏分页,通常有三个不同层次:请求层没有发出全部分页请求;响应层返回了分页但被程序丢弃;写入层把多页合并时覆盖了同键记录。三者的检查动作不同,不能只盯最终文件行数。
缺少完整数据或权限时,仍可执行的最小动作是:记录导出任务实际请求过的分页参数,例如页码、游标值或时间区间,并与导出文件中的最小和最大排序值对照。如果文件里最大排序值小于最后一次请求的边界值,说明写入或响应环节可能丢了数据;如果请求记录本身就停在中间,问题在请求层。
这一步只能说明“请求与文件不一致”,不能直接推出“数据源只有这些数据”。数据源可能确实没有更多记录,也可能因为权限过滤而少返回,需要下一步用独立查询验证。
比总条数更可靠的是唯一标识。对推广软件导出的关键词、广告组、落地页或报表行,先确认每行是否有稳定主键,例如内部ID、计划ID加时间戳。然后做两件事:
假设一个导出任务按游标分页,每页返回100条,最后一次请求的游标是cursor=900,而文件里最大游标只到cursor=780。在假设每页边界严格递增的前提下,这说明至少有一页没有写入。这个假设不成立时,例如游标会跳变或服务端会重排,结论就不成立。
这里的关键动作是:把“最后一次请求边界”和“文件内最大边界”都保存下来。若两者不一致,下一步不是立刻重跑全量,而是先缩小范围,只重导缺失边界附近的分页,避免重复覆盖已有数据。
一个容易失效的判断是“总条数等于预期条数,所以完整”。如果导出过程中发生了去重,两个不同分页里的重复记录被合并,总条数仍可能等于预期,但实际缺少了另一条被覆盖的记录。此时唯一标识检查会暴露重复或缺口,而条数检查不会。
另一个反例是权限过滤。缺少完整权限时,接口可能只返回当前账号可见的记录,条数和分页都自洽,但相对全量数据仍是遗漏。这种情况下,完整性只能定义为“当前权限范围内的完整”,不能推出全量完整。
因此,判断完整性前要先写明范围:是全量数据、当前账号可见数据,还是某个时间窗口内的数据。范围不清,后续任何比对都没有稳定基准。
没有导出全量权限时,不要用“抓取量归零”或“请求量下降”单独证明处理正确,这些现象也可能是任务被限流、时间窗口错开或数据源本身没有新增。
可以执行的最小动作是:
这个动作的结果会直接影响下一步:若对照页也返回空,优先检查时间窗口和权限过滤;若对照页有数据而文件没有,优先检查分页合并逻辑和写入覆盖。
与其每次导出后凭感觉判断,不如固定记录三个值:最后一次请求的分页边界、文件内最大和最小主键、以及本次导出的权限范围。下一次导出时,先比对这些值,再决定是否重跑缺失分页。这样既不会因为一次条数正常就放过遗漏,也不会因为一次请求异常就推翻整个导出结果。具体工具的分页参数名称、去重规则和权限模型需要按实际使用的搜索引擎推广软件核对,不能把通用方法直接当成某个产品的现行行为。