去重位置
| 层面 | 做法 | 代价 |
|---|---|---|
| 目标端 | 主键 upsert / MERGE | 目标需要主键约束 |
| 加工层 | 按 主键+位点 去重,保留最近窗口 | 状态内存受规模限制 |
| 消息层 | Kafka 幂等/事务生产者 | 只覆盖 Kafka 消费段 |
| 调度层 | 回补任务设计为可重复执行 | 全量重算成本较高 |
按位点去重的 SQL 思路
按位点去重的 SQL 思路
SELECT pk, file_name, pos, op
FROM (
SELECT pk, file_name, pos, op,
ROW_NUMBER() OVER (PARTITION BY pk, file_name, pos ORDER BY ts_ms DESC) AS rn
FROM stage_cdc_events
) t
WHERE t.rn = 1;去重窗口要设上限:无界状态会让长跑作业内存持续增长。