Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An_introduction_to_Flux.pdf

Avatar for Yves Bourgeois Yves Bourgeois
October 08, 2018
10

 An_introduction_to_Flux.pdf

Avatar for Yves Bourgeois

Yves Bourgeois

October 08, 2018

Transcript

  1. New functional language - and engine - to gather and

    process time-series data Under MIT license Flux
  2. True-SQL vs like-SQL SQL was designed for relational models and

    calculations Time-series databases are based on a continuous stream of data
  3. Flux language characteristics (1/8) Gather and process time-series data -

    without changing its state Database agnostic Flow-based functional processing
  4. Flux language characteristics (2/8) from(bucket: "MySensorData") |> filter(fn: (r) =>

    r["_measurement"] == "TempSensor1") |> range(start: -30m) |> window(every:10m) |> mean() |> filter(fn: (r) => r._value > 20)
  5. Flux language characteristics (3/8) Piping forward from(bucket: "MySensorData") |> filter(fn:

    (r) => r["_measurement"] == "TempSensor1") |> range(start: -30m) |> window(every:10m) |> mean() |> filter(fn: (r) => r._value > 20)
  6. Flux language characteristics (4/8) Functional from(bucket: "MySensorData") |> filter(fn: (r)

    => r["_measurement"] == "TempSensor1") |> range(start: -30m) |> window(every:10m) |> mean() |> filter(fn: (r) => r._value > 20)
  7. Flux language characteristics (5/8) Anonymous functions from(bucket: "MySensorData") |> filter(fn:

    (r) => r["_measurement"] == "TempSensor1") |> range(start: -30m) |> window(every:10m) |> mean() |> filter(fn: (r) => r._value > 20)
  8. Flux language characteristics (6/8) Custom functions square = (table=<-) =>

    { table |> map(fn: (r) => r._value = r._value * r._value) }
  9. Flux language characteristics (7/8) SQL HAVING functionality from(bucket: "MySensorData") |>

    filter(fn: (r) => r["_measurement"] == "TempSensor1") |> range(start: -30m) |> window(every:10m) |> mean() |> filter(fn: (r) => r._value > 20)
  10. Flux language characteristics (8/8) SQL JOIN functionality current = from(bucket:

    "tanksystem") |> filter(fn: (r) => (r.pump == "I1")) |> range(start: -1h) past = from(bucket: "tanksystem") |> filter(fn: (r) => (r.pump == "I1")) |> range(start: -2h, stop: -1h) |> shift(shift:1h) difference = join(on: ["_time"], tables: {current:current,past:past}) |> map(fn: (r) => r.current__value - r.past__value) |> limit(n:15)
  11. Release dates Full release coming fall with Influx 2.0 Spec

    https://github.com/influxdata/flux/blob/m aster/docs/SPEC.md Grafana plugin https://grafana.com/plugins/grafana-influx db-flux-datasource/installation