首页/数据/NoSQL 速查/InfluxDB line protocol 行协议

InfluxDB line protocol 行协议

行协议是 InfluxDB 的写入格式:measurement,tag=value 空格 field=value 空格 可选时间戳;时间戳默认纳秒,不传则由服务端补当前时间。

NoSQL 速查数据更新于 2026-10-13

行协议是什么

行协议(line protocol)是 InfluxDB 的写入格式:measurement、标签集、字段集与可选时间戳依次排列,标签与字段之间用一个空格分隔,标签之间用逗号。时间戳默认按纳秒解析,不传则由服务端补当前时间。写数据前先把结构和单位定好,因为同一 measurement 内字段的类型与顺序一致性直接影响写入是否被接受。

基本信息

格式<measurement>[,<tag_key>=<tag_value>…] <field_key>=<field_value>[,…] [<timestamp>]
字段类型浮点 1.0、整数 1i、布尔 true、字符串 "text"
时间戳默认纳秒,precision 参数可指定 s/ms/us/ns
分隔符标签集与字段集之间用空格,标签之间用逗号
转义逗号、等号、空格在标签值中需转义
适用版本InfluxDB 1.x 与 2.x 均支持

典型使用场景

  • 监控代理批量上报指标数据
  • 脚本手工写入单条测试数据验证结构
  • 从 CSV 或日志转换为行协议后批量导入
  • IoT 设备按行协议上报采集值
  • 数据迁移:从其他时序库转成行协议落库
  • 压测时构造行协议数据体评估写入吞吐

示例

示例
cpu,host=web-1,region=cn usage=0.73,idle=99.2 1719792000000000000   # 标签在前,字段在后
http_requests,service=api,code=200 count=42i 1719792000000000000   # 整数加 i 后缀
temperature,room=office value=23.5                                  # 不传时间戳,服务端补当前时间
weather,location=us-midwest temperature="sunny" 1719792000000000000  # 字符串字段要加引号

元素读法

元素作用注意点
measurement表名/指标名类似表名,不能为空
tag索引化的维度,字符串类型基数过高会拖垮内存
field实际数值或文本类型在同一分片内需一致
timestamp时间点默认纳秒,单位写错会错位
precision时间戳单位写入参数里指定
同一行里多个 field 会写入同一个点;field 的顺序与类型在同一 measurement 的同一分片周期内需保持一致,否则写入会被拒绝。
field 类型在同一分片内变更(如 1 变成 "1")会导致 field type conflict 错误,写入被拒绝,混用类型前要先统一口径。
行协议的时间戳默认纳秒,误传秒级时间戳会被解析成 1970 年附近的时间点,看不到近期数据时优先检查单位。

易错点

  • field 类型在同一分片内变更会导致写入被拒绝,出现 field type conflict 错误
  • 行协议的时间戳默认纳秒,误传秒级时间戳会被当成 1970 年附近的时间
  • 标签值里含逗号、等号或空格没有转义会导致整行解析错误,写入失败
  • 把高基数值(如请求 ID、容器名)当标签使用会迅速推高序列基数并吃光内存
  • 同一行里标签与字段之间少了空格分隔会整行报错,构造数据时报错信息不直观,要按格式逐段核对

数据来源与参考

  • InfluxData Docs: Line protocol
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌