|
Measurement
|
Sensor
|
Temperature
|
Timestamp
|
|
iot-oven
|
S1
|
290
|
1633953600000000000
|
|
iot-oven
|
S2
|
105
|
1633953615000000000
|
|
iot-oven
|
S1
|
305
|
1633953660000000000
|
|
iot-oven
|
S2
|
120
|
1633953675000000000
|
from(bucket: "training")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "iot-oven")
|> filter(fn: (r) => r._field == "temperature")
|> filter(fn: (r) => r.sensor == "S2")
|> filter(fn: (r) => r._value < 100)
from(bucket: "training")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "iot-oven")
|> group(columns: ["_field"])
|> mean()
from(bucket: "training")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "iot-oven")
|> filter(fn: (r) => r.sensor == "S1")
|> group(columns: ["_field"])
|> last()
... |> map(fn: (r) => ({
r with _value:
if r._value == true then 1
else 0 }))
from(bucket: "training")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "iot-oven")
|> filter(fn: (r) => r._field == "temperature")
|> filter(fn: (r) => r.sensor == "S1")
|> aggregateWindow(every: 2m, fn: mean)
createEmpty: false can be used to consider only the windows that contains data (its default value is true)
from(bucket: "training") ...
|> map(fn: (r) => ({ r with correctValue: r._value - 5.0 }))
r with clause maintains alla the original columns and adds the new one.
adjValues = (tables=<-, x) =>
tables
|> map(fn: (r) => ({ r with correctValue: r._value + x}))
from(bucket: "training")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "iot-oven")
|> adjValues(x:-5.0)
<- pipe-receive expression.
from(bucket: "training")
...
join(tables: {s1: hs1, s2: hs2}, on: ["_time"], method: "inner")
No comments yet.
Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.