开发者社区> 问答> 正文

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信息:

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

展开
收起
EXCEED 2021-12-07 15:36:50 1449 0
1 条回答
写回答
取消 提交回答
  • SQL client 读取mysql的部分想当于一个connector, 这个connector只支持 DECIMAL(38,18)的,所有DECIMAL(p, s)都会转到这个类型,这是因为SQL Client还是用的legacy 的数据类型。 你可以用其他 connector 如 Filesystem、Kafka等connector读取, 社区已经有一个issue[1] 在跟进了。

    祝好, Leonard Xu [1] https://issues.apache.org/jira/browse/FLINK-17948 https://issues.apache.org/jira/browse/FLINK-17948

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

    2021-12-07 16:06:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像