需求
项目中需要接入电表设备,求用电量。
按天和设备统计用电量
按天统计用电量
统计总用电量
存在的问题
difference 函数可以求增量,但是以上计算均存在一个问题,比如xx设备有8.1号和8.2号的数据,我统计每天的用电量,由于8.1号之前无数据对比,相当于8.1号的用电量丢失,只计算出8.2号的用电量。
解决思路
目前我是在业务代码里实现它,例如我这边需要求7.29号-7.30号这两天每日电表的用电量。第一个表达式主要是算出这段时间范围内每日电表的最后一次记录值R1,第二个表达式算出这段时间范围内电表的最早一次记录值R2,第三个表达式求出这段时间范围之前的最后一次记录值R3。
7.30用电量:R1(7.30last)-R1(7.29last)
7.29用电量(29号前有数据):R1(7.29last)-R3(<7.29last)
7.29用电量(29号前无数据):R1(7.29last)-R2(7.29first)
备注:时间有限,目前能想到的解决思路,如有更好的办法欢迎提出一起探讨,如有问题还望批评指出,谢谢。
其它
2019年前因为用influxdb2.0写数据出现了oom,现在2.7版本不知道有没有解决这个问题,保险起见换成调用httpclient批量接口写入了,其次写入数据对数据的时间直接做了偏移处理,后期查询无需转换时间,节省查询效率。详情可看上篇文章Influxdb2入门