Documentation

Use the influxctl CLI to write line protocol data

Limited availability

InfluxDB Clustered is currently only available to a limited group of InfluxData customers. If interested in being part of the limited access group, please contact the InfluxData Sales team.

Use the influxctl CLI to write line protocol data to InfluxDB Clustered.

Construct line protocol

With a basic understanding of line protocol, you can now construct line protocol and write data to InfluxDB. Consider a use case where you collect data from sensors in your home. Each sensor collects temperature, humidity, and carbon monoxide readings. To collect this data, use the following schema:

  • measurement: home
    • tags
      • room: Living Room or Kitchen
    • fields
      • temp: temperature in °C (float)
      • hum: percent humidity (float)
      • co: carbon monoxide in parts per million (integer)
    • timestamp: Unix timestamp in second precision

The following line protocol represent the schema described above:

home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000

For this tutorial, you can either pass this line protocol directly to the influxctl write command as a string, via stdin, or you can save it to and read it from a file.

Write the line protocol to InfluxDB

Use the influxctl write command to write the home sensor sample data to your InfluxDB cluster. Provide the following:

  • The database name using the --database flag

  • A database token (with write permissions on the target database) using the --token flag

  • The timestamp precision as seconds (s) using the --precision flag

  • Line protocol. Pass the line protocol in one of the following ways:

    • a string on the command line
    • a path to a file that contains the query
    • a single dash (-) to read the query from stdin
influxctl write \
  --database 
DATABASE_NAME
\
--token
DATABASE_TOKEN
\
--precision s \ 'home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000 home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000 home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600 home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600 home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200 home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200 home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800 home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800 home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400 home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400 home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000 home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000'

Replace the following:

  • DATABASE_NAME: Name of the database to write to.
  • DATABASE_TOKEN: Database token with write permissions on the target database.
influxctl write \
  --database 
DATABASE_NAME
\
--token
DATABASE_TOKEN
\
--precision s \
LINE_PROTOCOL_FILEPATH

Replace the following:

  • DATABASE_NAME: Name of the database to write to.
  • DATABASE_TOKEN: Database token with write permissions on the target database.
  • LINE_PROTOCOL_FILEPATH: File path to the file containing the line protocol. Can be an absolute file path or relative to the current working directory.
cat 
LINE_PROTOCOL_FILEPATH
| influxctl write \
--database
DATABASE_NAME
\
--token
DATABASE_TOKEN
\
--precision s \ -

Replace the following:

  • DATABASE_NAME: Name of the database to write to.
  • DATABASE_TOKEN: Database token with write permissions on the target database.
  • LINE_PROTOCOL_FILEPATH: File path to the file containing the line protocol. Can be an absolute file path or relative to the current working directory.

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Read more