cdc怎么配置某个字段值变化时 触发cdc同步

ignore-update-new-value-expr = “participation_status = @old.participation_status
image

是不是客户端与服务端之间的网络连接可能存在问题,导致请求无法到达或响应无法返回?

ping 或 telnet 测试一下连接

要么看下发送给 CDC API 的请求参数

在toml配置文件中加了ignore-update-new-value-expr = “participation_status = @old.participation_status” 这个 就报错了 ,删除了是能正常创建cdc的

  1. 主流 CDC 工具均通过 对比字段前后值 实现 “字段变化触发同步”,核心是利用beforeafter镜像
  2. Debezium 通过配置Filter转换器实现无代码配置,适合简单场景;Flink CDC 通过代码过滤更灵活,适合复杂逻辑
  3. 需注意新增(无before)、删除等特殊操作的处理,避免漏同步或误同步

需要在toml文件中怎么修改

# 目标端TiKV的tikv.toml配置
[storage]
write-batch-size = "1MB"  # 增大写入批大小
[raftstore]
raft-entry-max-size = "8MB"  # 增大Raft日志条目大小,减少同步次数

加入这个试试

通过 TiCDC 的 filter 规则结合 event-filter 实现字段级变更过滤

  1. 旧值引用方式错误:TiDB CDC 中引用旧值需用OLD.字段名,而非@old.字段名

配置位置错误:该参数需嵌套在filter规则模块下,不能独立配置。

可以一试

TiDB CDC 支持通过 event-filter 配置 行级过滤条件 ,利用 CDC 内置的 old (字段旧值)和 new (字段新值)变量,判断目标字段是否发生变化,从而决定是否触发同步

1 个赞

有个版本要求TiDB CDC 版本 ≥ v5.4.0

对目标表有 SELECT 权限

默认不会同步吗