Documentation

Write to InfluxDB

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_measurementidloc_field_value
2021-01-01T00:00:00Zm001SFtemp72.1
2021-01-01T01:00:00Zm001SFtemp71.8
2021-01-01T02:00:00Zm001SFtemp71.2
_time_measurementidloc_field_value
2021-01-01T00:00:00Zm001SFhum40.5
2021-01-01T01:00:00Zm001SFhum50.1
2021-01-01T02:00:00Zm001SFhum52.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

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

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.

_start and _stop columns are ignored.

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:

Group key = [_measurement, id, loc]

_time_measurementidlocminmaxmean
2021-01-01T00:00:00Zm001FR264.0
2021-01-01T01:00:00Zm001FR21810.0
2021-01-01T02:00:00Zm001FR1137.0
_time_measurementidlocminmaxmean
2021-01-01T00:00:00Zm001BK444.0
2021-01-01T01:00:00Zm001BK354.0
2021-01-01T02:00:00Zm001BK586.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

import "experimental"

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

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

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

Was this page helpful?

Thank you for your feedback!


New in InfluxDB 3.5

Key enhancements in InfluxDB 3.5 and the InfluxDB 3 Explorer 1.3.

See the Blog Post

InfluxDB 3.5 is now available for both Core and Enterprise, introducing custom plugin repository support, enhanced operational visibility with queryable CLI parameters and manual node management, stronger security controls, and general performance improvements.

InfluxDB 3 Explorer 1.3 brings powerful new capabilities including Dashboards (beta) for saving and organizing your favorite queries, and cache querying for instant access to Last Value and Distinct Value caches—making Explorer a more comprehensive workspace for time series monitoring and analysis.

For more information, check out:

InfluxDB Docker latest tag changing to InfluxDB 3 Core

On February 3, 2026, the latest tag for InfluxDB Docker images will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments.

If using Docker to install and run InfluxDB, the latest tag will point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in your Docker deployments. For example, if using Docker to run InfluxDB v2, replace the latest version tag with a specific version tag in your Docker pull command–for example:

docker pull influxdb:2