flink任务处理下线流水数据,数据遗漏不全(一)
背景
1、test3是单独接受T4301的mqtt主题数据
以下是flink代码
以下是node-red的
跟踪分析
拉出tdengine里面的数据曲线,看是否存在遗漏的情况
少2023-04-05 22:05:48的日志
贴上我的代码
小结
1、虽然下线记录比之前的多很多了,但是还是遗漏一些数据,不全!!
2、再看看Test2的程序log,因为Test2是接受所有的,看看这里的T43-1是否存在遗漏情况
跟踪Test2发现
也少了数据
发现Test2和Test3一样的,遗漏一样的数据
Test2的数据量是Test3的四倍!!!
目前没有证据指名是数据量大小导致数据遗漏的,我觉得可能是程序判断有Bug,先把Test3的原因找到!!
数据遗漏的原因,如果不是跟数据量有关
可能的原因1、判断下线的代码有误
我把这里判断的数据改成之前的程序,然后运行看看2023-04-06 11:27发布的Test2 Test3
这个版本不对,== 改成equals();不然2分钟就会存储一次数据 2023-04-06 12:12:00
可能的原因2、tdengine数据莫名其妙的错位
昨天发现很奇怪的现象,数据存在CWW=40多和CWW=0.1交错;上一秒数据是40多,下一秒数据0.1,查遍整个流程的代码,并没有出现,topic写错的情况!!!
然后怀疑是数据到达emqx的时候有混乱排序,把数据的时间改成从Node-red创建时间,而不是在emqx中插入语句的now();
今天并未出现这种现象!!
所以我打算把所有的topic的now()改成node-red数据发出时创建的时间ts!