You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS DMS同步MySQL至Kinesis/S3出现重复记录如何解决?

解决AWS DMS到Kinesis的重复记录问题

一、从DMS源头减少重复推送

  • 启用DMS的变更数据捕获(CDC)严格模式:在迁移任务的CDC设置里开启严格模式,DMS会更精准跟踪MySQL的binlog,避免因binlog重读、任务重启引发的重复事件。
  • 调整任务重试策略:在DMS任务设置里配置MaxRetryCount和RetryInterval参数,合理设置重试间隔和次数,减少临时故障导致的重复推送。
  • 检查MySQL binlog配置:确保binlog格式为ROW模式(DMS强制要求),且binlog不会被提前清理,避免DMS重新拉取旧binlog片段产生重复;若无需跨实例复制,禁用log_slave_updates防止循环复制。

二、Lambda无持久化实时去重方案

针对实时处理需求,不用持久化数据的话,可以用以下内存级去重方式:

  • 基于DMS生成的eventId去重:DMS推送到Kinesis的每条记录都带唯一eventId,Lambda内存中维护一个最近处理过的eventId哈希集合,只保留5-10分钟内的ID(可根据业务延迟调整),新记录先检查集合,不在集合内再处理。注意Lambda容器复用会保留集合,但容器销毁后会丢失,适合短时间内集中重复的场景。
  • 基于业务主键+操作标识去重:如果DMS输出包含业务表主键(如id)和操作类型(INSERT/UPDATE/DELETE),可以用主键+操作时间戳作为唯一标识,在Lambda内存中维护该标识集合,过滤重复的同一操作。
  • 批量记录即时去重:利用Lambda批量处理Kinesis记录的特性,先对一批记录做内存去重(比如用Python的set对唯一标识去重),再执行后续处理,同时控制批量大小避免内存占用过高。

三、S3存储桶场景的额外处理

如果是DMS直接推数据到S3,可以在S3目标配置里开启EnableDuplicateDataDetection,DMS会自动检测并跳过重复记录,无需额外处理。

内容的提问来源于stack exchange,提问作者Pregz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 02:01:10