直接回答:InfluxDB 删数据必须指定 bucket 和时间范围,只按条件删是不行的;写入失败最常见的原因是同一个字段前后写入了不同类型,时序库对字段类型一旦确定就不允许再变。

删除一条数据

1
influx delete --bucket IOT  --start "2009-01-02T23:00:00Z" --stop "2022-05-24T23:00:00Z" --predicate '_measurement="FZ4854ECF6C01EBDA4&4"'

因为我的influxdb是安装在docker里的,所以要先进入docker容器

写入数据的时候的坑

一定要检查写入的数据,只能是数字类型,不能是nil,不能是字符串,否则以后查询会报错,需要将之前的错误数据删除才行

删除数据的方式

1
influx delete --bucket Bucket     --start 2020-03-01T00:00:00Z   --stop 2023-11-14T00:00:00Z

查询数据的时候多个测点合并为一条数据显示

1
2
|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value") // 将多个测点合并为一行数据
|> drop(columns: ["_start", "_stop", "_measurement", "table"]) //删除某一列
1
2
3
dataSet
|> window(every: 1m)
|> mean()

进行表聚合以后会没有time列,但是会有starttime stoptime,所以需要自己指定下哪个用作time列

1
|> duplicate(column: "_stop", as: "_time")
1
2
3
4
5
dataSet
|> window(every: 1m)
|> mean()
|> duplicate(column: "_stop", as: "_time")
|> window(every: inf)
---

这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到[留言板](/message/)一起聊聊。

站内搜索

没有找到内容!