物联网平台-属性值类型变化导致无法入时序库(浮点数与整数)

Blade 未结 2 87
six_six_2005
six_six_2005 剑圣 2024-12-30 10:24

一、该问题的重现步骤是什么?

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

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  • 2024-12-30 11:21

    这个是influxdb本身的设计,一个字段只能是一种类型,如果是不同类型会导致无法入库。不过还是建议如果项目没正式上线,可以尝试切换到tdengine,td的话,会自动针对这些数据类型进行转换,无需代码层干预。

    目前设备端加一个固定的值让他变成float可以临时这么处理的。我们内部讨论下如何在服务端针对influxdb这种设计的问题来根据物模型自动兼容一下,后续把他解决掉。


    作者追问:2024-12-30 12:01

    tdengine,td
    推荐哪个?涛思?都免费吧

    回答: 2024-12-30 12:06

    回答: 2024-12-30 12:08

    他跟其他时序库比多了个超级表的概念,需要给每个产品物模型重新操作一下“物模型发布”,发布后会自动建超级表,然后之后就可以进行设备上传了。

    0 讨论(0)
  • 2024-12-30 12:24

    服务端有3个版本,下载哪个?

    image.png

    回答: 2024-12-30 12:24

    就是x86的虚拟机,应该是第一个吧。lite版本行吗

    作者追问:2024-12-30 12:27

    0 讨论(0)
提交回复