> 文章列表 > flink任务处理下线流水数据,数据遗漏不全(二)

flink任务处理下线流水数据,数据遗漏不全(二)

flink任务处理下线流水数据,数据遗漏不全(二)

flink任务处理下线流水数据,数据遗漏不全(一)

后续问题跟踪

Test3   只接受T4301的数据

 一切正常

Test2  接受所有T11的数据

  一切正常


2023-04-07 08:15日

1、Job任务的验证(整个铜线)

T43-1正确

T43-2 少一个

T43-3正确

T43-4正确

2、Test2 (T43主题)

T43-1 、T43-3、T43-4都正确,T43-2少一个;

3、Test3 (T43-1主题)

T43-1全部正确


为什么会少一个T43-2凌晨3点的数据呢?

用chunjun的代码与自己写的代码测试写入chunjun表和tjn_test表,都少T43-2凌晨3点的数据

以上证明与数据量无关!!!

继续观察chunjun代码与自己写的,时间长了会如何???谁的稳定性更强!!!

查看了日志,发现有一个错误

java.sql.SQLSyntaxErrorException: Unknown column 'NaN' in 'field list'at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)

用Bing查看了这个错误,我发现是转换为int float类型数据异常。但是报错的日志仅仅指向sql语句而不是某个转换的代码,所以我猜测是数据插入到mysql表中发生冲突。

表中有三个字段是浮点类型的,最大的可能是spec和weight;

chunjun的代码运行一直并未报错,存储到数据库都正常的;说明与weight无关!!

我觉得是spec这里,若获取的spec是空字符串的话,那么转化为float类型就会报错;

我好像知道了,这里代码有问题;既然是null,怎么可能获取到,转换自然有问题

 我觉得出现这个错误的原因是在spec这里有问题、还有本身存在bug,把null转换为float异常