开发者社区> 问答> 正文

flink1.11.0读取mysql数据decimal类型会强转成decimal(38,18)的问题

现在遇到一个问题,通过sql-client读取mysql数据时,decimal类型会强转成decimal(38,18) mysql ddl: CREATE TABLE test2 ( money decimal(10,2) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into test2 values(10.22);

flink ddl: CREATE TABLE test2 ( money decimal(10, 2) ) WITH ( 'connector.type' = 'jdbc', 'connector.url' = 'jdbc:mysql://localhost:3306/test', 'connector.table' = 'test2', 'connector.username' = 'root', 'connector.password' = 'root' );

flink查询结果,streaming模式: sql:select * from test2;

debug信息:

*来自志愿者整理的flink邮件归档

展开
收起
小阿矿 2021-12-06 15:49:00 1262 0
1 条回答
写回答
取消 提交回答
  • SQL client 读取mysql的部分想当于一个connector, 这个connector只支持 DECIMAL(38,18)的,所有DECIMAL(p, s)都会转到这个类型,这是因为SQL Client还是用的legacy 的数据类型。 你可以用其他 connector 如 Filesystem、Kafka等connector读取, 社区已经有一个issue[1] 在跟进了。*来自志愿者整理的flink邮件归档

    2021-12-06 18:36:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Apache Flink-重新定义计算》PDF下载 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
李劲松|Flink Table Store 典型应用场景 立即下载

相关镜像