先看一个矛盾:小样本导出看似完整,规模化后却总在分页边界丢数据。要检查完整性,不能只看总条数,而要用“分页标记+边界抽样”双轨核对,并先确认导出任务是否真的覆盖了全部分页。
个别样本成立,不代表全量成立。常见原因有两个,需要分开验证。
解释一:分页游标或页码在跨页时被重置。 当每页条数固定、但排序字段存在重复值时,第二页可能重复返回第一页末尾的记录,同时跳过另一条。样本量小时重复与跳过恰好抵消,总数看起来正确;规模变大后,跳过量累积,总数仍可能因重复而显得接近,掩盖了真实缺口。
解释二:导出任务在某一页超时或达到返回上限后静默停止。 这种遗漏的特征是尾部整段缺失,而不是随机缺行。它通常发生在数据量接近工具单次返回上限的位置,与排序无关。
两种解释指向不同的修复动作:前者要改排序键或去重逻辑,后者要改分页终止条件或分批策略。判断错方向,改完仍会漏。
能区分两者的证据是边界记录的连续性,而不是总数。
假设某次导出设定每页 200 条,共 5 页。第一页末条主键为 A200,第二页首条也是 A200,说明边界重复,实际有效记录可能不足 1000 条。这个假设只用于说明比较方法,不代表任何工具的真实返回上限,具体每页条数和上限需以实际工具说明为准。
把检查拆成三步,每步的结果决定下一步怎么做。
这个动作的结果会直接影响下一步:边界比对通过但反向抽样仍缺记录,说明问题不在分页逻辑,而可能在导出筛选条件或时间范围设定,需要回到筛选条件重新核对。
这套方法成立的前提是:导出结果可按主键或稳定排序字段定位,且源数据可被独立抽样。若源数据本身在导出期间仍在写入,边界比对会出现假性跳跃,此时应先固定导出快照时间,再执行检查。
若工具不暴露分页信息,也不支持按时间窗口切分,那么“分页完整性”无法在导出侧直接验证,只能改为在导入侧做去重与缺口标记,并明确告知下游:当前结果不能视为全量。这是边界,不是可以绕过的步骤。
另外,导出条数归零或某页返回为空,不能单独证明分页处理正确。它也可能是筛选条件过窄、时间范围错误或权限不足导致的。需要结合边界记录和抽样结果一起判断,才能决定是重导、缩小范围还是更换导出方式。