ticdc 同步大表的方案

【 TiDB 使用环境】生产环境
【 TiDB 版本】8.5.4
【背景】tidb上游 cdc一张大表(100个字段,一天8000w数据量)到下游tidb,该表除了正常写,一条记录insert后,还会有2~3次的更新,所以产生的日志特别多,在高峰期,非常容易延时问题。
【诉求】有什么办法可以减少同步的字段?tidb->ticdc->tidb目前是不支持直接过滤字段。

可以试试在上游 TiDB中创建一张仅包含需要同步的字段的精简表 ,通过触发器 / 存储过程 / 应用层逻辑,将原表的关键字段数据同步到精简表,再让 TiCDC 同步这张精简表到下游。

可以在业务代码在写入 / 更新原表时,同时写入 / 更新精简表(可通过事务保证一致性)

如果有kafka,可以将数据输出到 Kafka,自定义消费者从 Kafka 中读取数据,过滤掉不需要的字段后,再写入下游 TiDB

这张表有 100 个字段,通常意味着有些字段是“热”的(频繁访问),有些是“冷”的(很少用到)。如果把这些字段按冷热重新建不同的表, 再导入, 应该快一点

建表时候可以按分区, 不同分区数据互斥, 这样可以同时导入

参数调优 硬件扩容也可以考虑一下