能否配置AWS RDS仅将INSERT操作同步至AWS DMS并输出到Kinesis?
问题解答
可行方案:使用DMS原生转换规则过滤非INSERT操作
仅通过RDS->DMS->Kinesis的原生能力即可实现需求,不需要引入额外服务或在消费端处理,核心用到DMS的记录级转换规则能力,具体配置步骤如下:
- 进入你的DMS同步任务配置页面,找到「表映射(Table mapping)」板块,切换到JSON视图(也可以通过可视化界面直接配置)
- 添加一条删除型转换规则,示例JSON配置如下,你需要替换其中的
schema_name、table_name为你要同步的特定表对应的Schema名和表名:
{ "rule-type": "transformation", "rule-id": "1", "rule-name": "filter-non-insert-ops", "rule-action": "remove-record", "rule-target": "record", "object-locator": { "schema-name": "你的Schema名", "table-name": "你的目标表名" }, "filter-expression": "operation != 'INSERT'" }
- 保存规则后重启DMS任务即可生效。
规则说明
- 该规则会在DMS捕获到变更数据后、写入Kinesis之前生效,直接过滤掉所有UPDATE、DELETE类型的变更记录,不会产生额外的传输或存储成本
- 规则可以同时匹配多张表,你可以使用通配符(比如
%)匹配符合命名规则的一批表,也可以为不同的表单独配置规则 - 全量同步阶段的迁移记录本身属于INSERT类型,不会被该规则误过滤,全量+增量的任务也可以直接使用该配置
相关说明
你之前查询的DMS选择与过滤规则仅支持库、表、列级别的筛选,确实不支持操作类型过滤,而转换规则是DMS提供的更高阶的记录处理能力,支持基于字段、操作类型等维度过滤、修改记录内容,刚好匹配该场景需求。
内容的提问来源于stack exchange,提问作者raxaghi
相关产品推荐
相关产品推荐

