当用户将源端数据同步至分析引擎时候,有一些特殊场景需要将源端的某些数据操作变更屏蔽掉,使操作不会同步到目标端。当具有此类需求时,可使用CDC任务配置中的“忽略执行”来进行操作。
支持忽略类型
操作类型 | 操作 | 对象 | 是否支持忽略 |
DML | DELETE | 表 | 支持 |
DML | INSERT | 表 | 不支持 |
DML | UPDATE | 表 | 不支持 |
DDL | DROP | 库 | 支持 |
DDL | DROP | 表 | 支持 |
DDL | TRUNCATE | 表 | 支持 |
忽略后行为
当库或者表设置了DROP操作过滤,则源端数据库中包含DROP表或者DROP库的行为后,LibraDB中将不会删除库和表。
若设置了表的DELETE或TRUNCATE操作忽略,则当前CDC任务中所涉及的所有表的源端DELETE操作均不会同步至LibraDB中。
若设置了表的DELETE或者TRUNCATE操作忽略,在源端数据表又进行数据更新。此时同步至LibraDB后出现了重复字段值,LibraDB将会对主键重复的记录保留两个不同的数据版本。可通过final 查询最终的实时数据。
若对应的库表配置有多表归并,当前CDC任务中涉及的库表的忽略操作不影响其他CDC任务中未设置的过滤行为。即其他CDC任务的数据同步变更操作正常执行。
忽略操作步骤
特殊场景操作指南
当需要对指定对象中的“某些”对象进行单独的忽略操作时。请将有着同样忽略需求的对象配置在“同一个CDC任务”中。目前无法针对一个CDC任务配置某部分指定对象的忽略操作,或者同一CDC任务中配置不同对象的不同忽略操作。