to() function
The to()
function writes data to an InfluxDB v2.0 bucket.
*Function type: Output*
to(
bucket: "my-bucket",
org: "my-org",
timeColumn: "_time",
tagColumns: ["tag1", "tag2", "tag3"],
fieldFn: (r) => ({ [r._field]: r._value })
)
// OR
to(
bucketID: "1234567890",
orgID: "0987654321",
timeColumn: "_time",
tagColumns: ["tag1", "tag2", "tag3"],
fieldFn: (r) => ({ [r._field]: r._value })
)
Output data requirements
The to()
function converts output data into line protocol and writes it to InfluxDB. Line protocol requires each record to have a timestamp, a measurement, a field, and a value. All output data must include the following columns:
_time
_measurement
_field
_value
The to()
function ignores rows with a null _time
value and does not write them to InfluxDB.
Parameters
You must provide a bucket
or bucketID
and an org
or orgID
.
bucket
The bucket to write data to. bucket
and bucketID
are mutually exclusive.
*Data type: String*
bucketID
The ID of the bucket to write data to. bucketID
and bucket
are mutually exclusive.
*Data type: String*
org
The organization name of the specified bucket
. org
and orgID
are mutually exclusive.
*Data type: String*
orgID
The organization ID of the specified bucket
. orgID
and org
are mutually exclusive.
*Data type: String*
timeColumn
Time column of the output. Default is "_time"
.
*Data type: String*
tagColumns
Tag columns in the output. Defaults to all columns with type string
, excluding all value columns and columns identified by fieldFn
.
*Data type: Array of strings*
fieldFn
Function that takes a record from the input table and returns a record. For each record from the input table, fieldFn
returns a record that maps the output field key to the output value. Default is (r) => ({ [r._field]: r._value })
*Data type: Function **Output data type:* Record
Make sure fieldFn
parameter names match each specified parameter. To learn why, see Match parameter names.
Examples
Default to() operation
Given the following table:
_time | _start | _stop | _measurement | _field | _value |
---|---|---|---|---|---|
0005 | 0000 | 0009 | “a” | “temp” | 100.1 |
0006 | 0000 | 0009 | “a” | “temp” | 99.3 |
0007 | 0000 | 0009 | “a” | “temp” | 99.9 |
The default to
operation:
// ...
|> to(bucket:"my-bucket", org:"my-org")
is equivalent to writing the above data using the following line protocol:
_measurement=a temp=100.1 0005
_measurement=a temp=99.3 0006
_measurement=a temp=99.9 0007
Custom to() operation
The to()
functions default operation can be overridden. For example, given the following table:
_time | _start | _stop | tag1 | tag2 | hum | temp |
---|---|---|---|---|---|---|
0005 | 0000 | 0009 | “a” | “b” | 55.3 | 100.1 |
0006 | 0000 | 0009 | “a” | “b” | 55.4 | 99.3 |
0007 | 0000 | 0009 | “a” | “b” | 55.5 | 99.9 |
The operation:
// ...
|> to(
bucket:"my-bucket",
org:"my-org",
tagColumns:["tag1"],
fieldFn: (r) => ({"hum": r.hum, "temp": r.temp})
)
is equivalent to writing the above data using the following line protocol:
_tag1=a hum=55.3,temp=100.1 0005
_tag1=a hum=55.4,temp=99.3 0006
_tag1=a hum=55.5,temp=99.9 0007