Write to InfluxDB
To write data to InfluxDB using Flux, use to()
or experimental.to()
.
Provide the following parameters to both functions:
- bucket or bucketID: InfluxDB bucket name or bucket ID to write to.
- org or orgID: InfluxDB organization name or organization ID to write to.
- host: InfluxDB URL or InfluxDB Cloud region URL.
- token: InfluxDB API token.
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
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:
- Import the
experimental
package. - 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 | _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
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!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.