一、该问题的重现步骤是什么?
1. 设备上报数据,是除法,所以是浮点数存在精度问题,比如是:13.9999983232,如果第一次写入时序数是没有问题的,influxdb会认为是浮点数,但是如果正好整除,或者为0,则设备上报的是14,或者0,那么就成整数了,会导致influxdb存不进去,所以物联网平台里一直是多个小时之前的数组,好像后续都存不进去了。这个属性值也不知道在物模型里是定义成int还是float,有没有好解决办法?暂时我是让硬件判断如果是整数,强制加个0.00000001变成float,目前只能是用influx studio操作数据库清空历史数据,再重新传。
2.
3.
二、你期待的结果是什么?实际看到的又是什么?
能够存入float及int
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
物联网平台 1.2 bladex 4.2 win
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
这个是influxdb本身的设计,一个字段只能是一种类型,如果是不同类型会导致无法入库。不过还是建议如果项目没正式上线,可以尝试切换到tdengine,td的话,会自动针对这些数据类型进行转换,无需代码层干预。
目前设备端加一个固定的值让他变成float可以临时这么处理的。我们内部讨论下如何在服务端针对influxdb这种设计的问题来根据物模型自动兼容一下,后续把他解决掉。
tdengine,td
推荐哪个?涛思?都免费吧
他跟其他时序库比多了个超级表的概念,需要给每个产品物模型重新操作一下“物模型发布”,发布后会自动建超级表,然后之后就可以进行设备上传了。
服务端有3个版本,下载哪个?
就是x86的虚拟机,应该是第一个吧。lite版本行吗
扫一扫访问 Blade技术社区 移动端