FAQ-实时传输 mysql2doris 字段隐式转换
更新时间: 2026-11-04 17:41:07
阅读 32
FAQ-实时传输 mysql2doris 字段隐式转换
问题描述/异常栈
来源mysql表字段查询有数据 去向doris写入为0

发现版本
引擎版本:FLINK-1.14 插件版本 2.x解决方案
jdbc链接串加jdbc:mysql://127.0.0.1:3306/db?tinyInt1isBit=false&transformedBitIsBoolean=false且来源字段和去向字段保持兼容一致 例如:mysql字段兼容替换成tinyint(4)问题原因
这是 Flink CDC 同步 MySQL 时非常经典的 “tinyint(1) 布尔值陷阱”。
在 MySQL 中,tinyint(1) 通常被用作布尔值(0 表示 false,非 0 表示 true),但它本质上仍是数值。而在 Flink CDC(底层依赖 Debezium 和 MySQL JDBC 驱动)读取时,默认会将 tinyint(1) 隐式转换为 BOOLEAN 类型(true/false)。
当 Flink 将 BOOLEAN(如 true)写入 Doris 的 TINYINT(期望数值)时,Doris 无法将字符串 "true" 解析为数字,导致解析失败。由于 Doris 的 Stream Load 默认非严格模式(strict_mode = false),解析失败的数值字段会被默默置为 0。排查过程
查看来源和去向有问题的字段ddl来源表ddl:

去向表ddl:

作者:chenjie
文档反馈
以上内容对您是否有帮助?