Documentation

使用influxctl命令行工具写入行协议数据

使用influxctl CLI将行协议数据写入InfluxDB集群。

构建行协议

通过对 行协议 的基本理解, 您现在可以构建行协议并将数据写入 InfluxDB。 考虑一个用例,您从家中的传感器收集数据。 每个传感器收集温度、湿度和一氧化碳读数。 要收集这些数据,请使用以下模式:

  • 测量: home
    • 标签
      • room: 客厅或厨房
    • 字段
      • temp: 摄氏度中的温度 (浮点数)
      • hum: 湿度百分比 (浮点数)
      • co: 一百万分之一的空气中一氧化碳含量 (整数)
    • 时间戳: Unix 时间戳,单位为精度

以下行协议表示上述描述的模式:

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

对于本教程,您可以将此行协议直接作为字符串传递给influxctl write命令,或者通过stdin,或者您可以将其保存到文件中并从中读取。

将行协议写入InfluxDB

使用influxctl write命令家庭传感器样本数据写入您的InfluxDB集群。提供以下内容:

  • 使用database名称的--database标志

  • 一个 数据库令牌(在目标数据库上具有写权限)使用 --token 标志

  • 使用 --precision 标志的时间戳精度为秒 (s)

  • 行协议。 通过以下方式之一传递行协议:

    • 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'

替换以下内容:

  • DATABASE_NAME: 要写入的数据库名称。
  • DATABASE_TOKEN: 具有对目标数据库写权限的数据库令牌。
  1. 在你的终端中,输入以下命令以创建示例数据文件:

    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
  1. 输入以下CLI命令将样本文件中的数据写入:

    influxctl write \
      --database 
    DATABASE_NAME
    \
    --token
    DATABASE_TOKEN
    \
    --precision s \ $
    LINE_PROTOCOL_FILEPATH

替换以下内容:

  • DATABASE_NAME: 要写入的数据库名称。
  • DATABASE_TOKEN: 具有目标数据库写入权限的数据库令牌。
  • $LINE_PROTOCOL_FILEPATH: 包含行协议的文件的文件路径。可以是绝对文件路径或相对于当前工作目录的路径。
cat 
$LINE_PROTOCOL_FILEPATH
| influxctl write \
--database
DATABASE_NAME
\
--token
DATABASE_TOKEN
\
--precision s \ -

替换以下内容:

  • DATABASE_NAME: 要写入的数据库名称。
  • DATABASE_TOKEN: 具有目标数据库写入权限的数据库令牌。
  • $LINE_PROTOCOL_FILEPATH: 包含行协议的文件的文件路径。可以是绝对文件路径或相对于当前工作目录的相对路径。


Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: