直接回答: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/)一起聊聊。