现在遇到一个问题,通过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邮件归档
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邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。