先给结论:自动导出遗漏分页,通常不是“导出失败”,而是导出范围与分页状态没有对齐。检查完整性最有效的一步,是在导出完成后立刻核对“应有行数”和“实际行数”,并确认最后一页是否被完整读取。若两者不一致,下一步不是重试,而是先判断遗漏发生在请求阶段还是写入阶段。
关键字排名查询自动导出时,一个常见矛盾是:工具或接口返回的总记录数看起来正常,但导出的明细行数偏少。此时有两种解释。第一种是分页读取时提前停止,例如最后一页返回空数组就结束,但空数组可能只是该页暂时无数据,并不代表前面所有页都已取完。第二种是写入阶段去重或覆盖,例如用关键词作为唯一键,同一关键词在不同分页中重复出现时被合并,导致行数减少。两种解释都会表现为“总数对、明细少”,但处理方式完全不同。
能区分这两种解释的证据有两类。第一类证据是末页返回内容。如果最后一页返回空数组,但前一页的记录数正好等于每页大小,说明分页边界可能被截断,遗漏更可能发生在请求阶段。如果最后一页返回了非空数据,且总页数计算正确,则请求阶段基本完整。第二类证据是重复键统计。导出后按关键词或关键词加地区去重,统计被合并的行数。如果被合并的行数正好等于缺失行数,说明遗漏发生在写入阶段,而不是读取阶段。
假设一个场景:每页100条,总记录数显示为350条,自动导出后得到300条。若第4页返回50条,且没有重复键,则缺失的50条可能来自写入中断;若第4页返回空数组,且前3页各100条,则缺失的50条更可能来自分页停止条件错误。这个例子只用于说明比较方法,不代表任何具体工具的实际行为。
要检查完整性,先固定“应有行数”。这个数字不能只看导出文件,而要从查询条件对应的总数或分页元数据中取得。如果总数本身不可靠,可以用另一种方式:按时间或关键词分段查询,把各段行数相加,作为应有行数的近似值。然后执行以下动作:
这个动作的结果会直接影响下一步。如果缺失由重复键合并造成,下一步应调整导出键,保留分页标识或时间戳,而不是盲目重试。如果缺失由分页停止条件造成,下一步应修改停止条件,例如以总页数为准,而不是以空数组为准。如果缺失由写入中断造成,下一步应检查写入逻辑是否支持断点续写或分批落盘。
上述检查方法适用于自动导出依赖分页接口或分页文件的场景。若导出是一次性全量返回,不涉及分页,则完整性检查应转向字段完整性和编码一致性。另一个常见误判是:把请求量或抓取量归零当作处理正确的证据。归零可能只是查询条件变窄、时间窗口变化或接口限流,不能单独证明分页已完整读取。因此,检查完整性时,应以应有行数与实际行数的比对为主,其他指标只能作为辅助线索。
最后,具体工具的按钮名称、分页参数、去重规则和导出格式需要以实际使用的版本为准,不同工具之间不能直接套用。对未知工具,先按“固定应有行数、逐页比对、区分请求与写入”这三步做通用评估,再决定是否需要调整导出策略。