Use the influxctl CLI to write line protocol data
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
- tags
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
flagA database token (with write permissions on the target database) using the
--token
flagThe timestamp precision as seconds (
s
) using the--precision
flagLine 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
Replace the following:
DATABASE_NAME
: Name of the database to write to.DATABASE_TOKEN
: Database token with write permissions on the target database.
In your terminal, enter the following command to create the sample data file:
cat <<EOF > ./home.lp &&
LINE_PROTOCOL_FILEPATH=./home.lp 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 EOF
Enter the following CLI command to write the data from the sample file:
influxctl write \ --database
DATABASE_NAME\ --tokenDATABASE_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!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.