docs-v2/content/flux/v0/write-data/influxdb.md

6.3 KiB

title list_title description menu weight related list_code_example
Write to InfluxDB InfluxDB Use [`to()`](/flux/v0/stdlib/influxdata/influxdb/to/) or [`experimental.to()`](/flux/v0/stdlib/experimental/to/) to write data to InfluxDB using Flux.
flux_v0
name parent identifier
InfluxDB Write to data sources write-influxdb
101
/flux/v0/stdlib/influxdata/influxdb/to/
/flux/v0/stdlib/experimental/to/
```js data |> to(bucket: "example-bucket") ```

To write data to InfluxDB using Flux, use to() or experimental.to(). Provide the following parameters to both functions:

Write options

Write data to InfluxDB

Use to() to write data structured using the standard InfluxDB v2.x and InfluxDB Cloud data structure. Data must include, at a minimum, the following columns:

  • _time
  • _measurement
  • _field
  • _value

All other columns are written to InfluxDB as tags.

Given the following input stream of tables:

_time _measurement id loc _field _value
2021-01-01T00:00:00Z m 001 SF temp 72.1
2021-01-01T01:00:00Z m 001 SF temp 71.8
2021-01-01T02:00:00Z m 001 SF temp 71.2
_time _measurement id loc _field _value
2021-01-01T00:00:00Z m 001 SF hum 40.5
2021-01-01T01:00:00Z m 001 SF hum 50.1
2021-01-01T02:00:00Z m 001 SF hum 52.8

to() generates the following line protocol and writes it to InfluxDB:

m,id=001,loc=SF temp=72.1,hum=40.5 1609459200000000000
m,id=001,loc=SF temp=71.8,hum=50.1 1609462800000000000
m,id=001,loc=SF temp=71.2,hum=52.8 1609466400000000000

Example: Write data to a bucket

{{< code-tabs-wrapper >}} {{% code-tabs %}} In the same org In a different org On a remote host {{% /code-tabs %}} {{% code-tab-content %}}

data
    |> to(bucket: "example-bucket")

{{% /code-tab-content %}} {{% code-tab-content %}}

data
    |> to(bucket: "example-bucket", org: "example-org", token: "mY5uPeRs3Cre7tok3N")

{{% /code-tab-content %}} {{% code-tab-content %}}

data
    |> to(
        bucket: "example-bucket",
        org: "example-org",
        token: "mY5uPeRs3Cre7tok3N",
        host: "https://myinfluxdbdomain.com/8086",
    )

{{% /code-tab-content %}} {{< /code-tabs-wrapper >}}


Write pivoted data to InfluxDB

Use experimental.to() to write pivoted data to InfluxDB. Input data must have the following columns:

  • _time
  • _measurement

All columns in the group key other than _time and _measurement are written to InfluxDB as tags. Columns not in the group key are written to InfluxDB as fields.

{{% note %}} _start and _stop columns are ignored. {{% /note %}}

To write pivoted data to InfluxDB:

  1. Import the experimental package.
  2. Use experimental.to() to write pivoted data to an InfluxDB bucket.
import "experimental"

data
    |> experimental.to(bucket: "example-bucket")

Given the following input stream of tables:

{{< flux/group-key "[_measurement, id, loc]" >}}

_time _measurement id loc min max mean
2021-01-01T00:00:00Z m 001 FR 2 6 4.0
2021-01-01T01:00:00Z m 001 FR 2 18 10.0
2021-01-01T02:00:00Z m 001 FR 1 13 7.0
_time _measurement id loc min max mean
2021-01-01T00:00:00Z m 001 BK 4 4 4.0
2021-01-01T01:00:00Z m 001 BK 3 5 4.0
2021-01-01T02:00:00Z m 001 BK 5 8 6.5

experimental.to() generates the following line protocol and writes it to InfluxDB:

m,id=001,loc=FR min=2i,max=6i,mean=4 1609459200000000000
m,id=001,loc=FR min=2i,max=18i,mean=10 1609462800000000000
m,id=001,loc=FR min=1i,max=13i,mean=7 1609466400000000000
m,id=001,loc=BK min=4i,max=4i,mean=4 1609459200000000000
m,id=001,loc=BK min=3i,max=5i,mean=4 1609462800000000000
m,id=001,loc=BK min=5i,max=3i,mean=6.5 1609466400000000000

Example: Write pivoted data to InfluxDB

{{< code-tabs-wrapper >}} {{% code-tabs %}} In the same org In a different org On a remote host {{% /code-tabs %}} {{% code-tab-content %}}

import "experimental"

data
    |> experimental.to(bucket: "example-bucket")

{{% /code-tab-content %}} {{% code-tab-content %}}

import "experimental"

data
    |> experimental.to(bucket: "example-bucket", org: "example-org", token: "mY5uPeRs3Cre7tok3N")

{{% /code-tab-content %}} {{% code-tab-content %}}

import "experimental"

data
    |> experimental.to(
        bucket: "example-bucket",
        org: "example-org",
        token: "mY5uPeRs3Cre7tok3N",
        host: "https://myinfluxdbdomain.com/8086",
    )

{{% /code-tab-content %}} {{< /code-tabs-wrapper >}}