[ https://issues.apache.org/jira/browse/FLINK-20170?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17234455#comment-17234455 ]
CaoZhen commented on FLINK-20170: --------------------------------- hi all, I've had this problem too. I think the problem comes from when "com.fasterxml.Jackson" deserializes JSON. [1] As mulan said, we can fix it by code in JsonRowDeserializationSchema and JsonRowDataDeserializationSchema: objectMapper.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); So whether to consider opening the Jackson configuration to users? [1] https://github.com/FasterXML/jackson-databind/wiki/Deserialization-Features#type-conversions > json deserialize decimal loses precision > ---------------------------------------- > > Key: FLINK-20170 > URL: https://issues.apache.org/jira/browse/FLINK-20170 > Project: Flink > Issue Type: Improvement > Components: Formats (JSON, Avro, Parquet, ORC, SequenceFile), Table > SQL / API > Reporter: Mulan > Priority: Major > Attachments: image-2020-11-18-16-51-35-317.png > > > {code:java} > CREATE TABLE ods ( > id BIGINT, > factor DECIMAL(38, 18) > ) WITH ( > 'connector.type' = 'kafka', > 'connector.version' = 'universal', > 'connector.topic' = '_foo', > 'connector.topic?' = '_foo', > 'connector.properties.bootstrap.servers' = 'localhost:9092', > 'connector.properties.group.id' = 'g', > 'format.type' = 'json', > 'update-mode' = 'append' > ); > {code} > this following is input data. > {code:json} > {"id": 1, "factor": 799.929496989092949698} > {code} > this following is output data and loses precision. > {code:json} > 1, 799.929496989093000000 > {code} > This following code call readTree() method. This method make value loses > precision. > {code:java} > public Row deserialize(byte[] message) throws IOException { > try { > final JsonNode root = objectMapper.readTree(message); > return (Row) runtimeConverter.convert(objectMapper, > root); > } catch (Throwable t) { > throw new IOException("Failed to deserialize JSON > object.", t); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)