增量空洞检测

增量同步的空洞检测用主键集合做差集:昨日存在、今日消失的主键(排除正常删除),以及状态回退的记录;CDC 断链重放或任务漏跑都会在主键集合上留下痕迹,按日快照主键集合是发现空洞的直接方法。

昨日有今日无的主键

昨日有今日无的主键
SELECT a.order_id
FROM (SELECT DISTINCT order_id FROM dwd_orders_df WHERE dt = '2026-10-10') a
LEFT JOIN (SELECT DISTINCT order_id FROM dwd_orders_df WHERE dt = '2026-10-11') b
  ON a.order_id = b.order_id
WHERE b.order_id IS NULL;
有删除业务的表要结合 delete 事件或 is_deleted 标记过滤,否则差集被正常删除淹没。

易错点

  • 差集里混入大量正常删除,噪音大到无人查看
  • 只看总行数不看主键集合,丢失与补录等量发生时检测不出

数据来源与参考

  • 行业 CDC 与增量同步实践
  • Debezium 官方文档(delete 事件结构)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌