之前做测试时发现v5.3.0 的 TiCDC 工具会把上游的 Replace 转换为下游的 Delete + Replace 操作,会有写放大的现象。当前版本下,经过观察上游的 DML 经过 TiCDC 工具后会有下面的转换:
- 1 delete → 1 delete
- 1 insert → 1 delete + 1 replace
- 1 update → 1 delete + 1 replace
- 1 replace → 1 delete + 1 replace
默认情况下,ticdc 的 mysql sink 使用 safe_mode ,即上面的方式,会影响性能,但是可以保证同步可重入。 mysql sink 配置可关闭 safe_mode(ticdc v6.1.3 默认情况下关闭 safeMode)。
为了保证业务数据同步的幂等性,还是保留默认的 safe_mode 配置。楼主根据需要调整一下就好。