ticdc 采集binlog到kafka,decimal精度丢失

哪里改成字符串?业务数据库的字符类型吗?

这个问题是发生在业务数据已经写入,精度位数比较大,cdc采集到kafka阶段


考虑升级来解决问题

把 tidb的版本升级到 v8.5.4 另外 ticdc 也可以用新架构,新架构新能会好非常多。

这个文档的意思我理解是数据写入tidb,超长decimal的数据写入tidb阶段的处理逻辑。

我目前的阶段是已经完整写入tidb的数据,写出到kafka。两个阶段不一样的。

强制将 DECIMAL 以字符串 形式传输,确定精度

可尝试这两个方案解决 Decimal 精度丢失:
关闭debezium-disable-schema,让 TiCDC 携带完整 Decimal 元数据;
改用canal-json协议,该协议对高精度 Decimal 的兼容性更优。

可以升级试试

cdc 的 debezium 目前不支持 string mode,可以提 PR 来解这个问题

TiCDC 配置中开启了高精度 decimal 同步模式了吗?

请教一下什么情况下需要这么长的小数位? amount decimal(40,20) DEFAULT NULL COMMENT ‘金额(高精度)’

跨境结算 / 银行清算 量化交易 / 金融衍生品 科学计算 / 税务审计

可以从携带完整decimal和高精度decimal出发去解决

精度设置的位数太多了吧

萌新一直在学习,

请问下有找到是什么原因了嘛