文档说明

行协议

InfluxDB 使用行协议写入数据点。这是一种基于文本的格式,提供了数据点的测量、标签集、字段集和时间戳。

// Syntax
<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]

// Example
myMeasurement,tag1=value1,tag2=value2 fieldKey="fieldValue" 1556813561098000000

由换行符 \n 分隔的行在 InfluxDB 中表示一个单独的数据点。行协议对空白字符敏感。

行协议不支持在标签或字段值中使用换行符 \n

行协议元素

测量,tag1=val1,tag2=val2 field1="v1",field2=1i 0000000000000000000

测量

(必需) 测量名称。InfluxDB 每个数据点接受一个测量值。 测量名称区分大小写,并受 命名限制 的约束。

数据类型: 字符串

标签集

可选 – 点的所有标签键值对。键值关系由 = 操作符表示。多个标签键值对由逗号分隔。 标签键和标签值区分大小写。标签键受 命名限制 的约束。标签值不能为空;相反,从标签集中省略标签。

键数据类型: 字符串
值数据类型: 字符串

字段集

(必需) 点的所有字段键值对。数据点必须至少有一个字段。 字段键和字符串值区分大小写。字段键受 命名限制 的约束。

键数据类型: 字符串
值数据类型: 浮点数 | 整数 | 无符号整数 | 字符串 | 布尔值

始终使用双引号引字字符串字段值。更多关于引号的信息 见下文

measurementName fieldKey="field string value" 1556813561098000000

时间戳

可选 – 数据点的 Unix 时间戳。InfluxDB 每个数据点接受一个时间戳。如果没有提供时间戳,InfluxDB 使用其主机机的系统时间(UTC)。

数据类型: Unix 时间戳

关于时间戳的重要说明

  • 为了确保数据点包含度量值被观察的时间(而不是被 InfluxDB 收到的时间),请包含时间戳。
  • 如果您的时间戳不是以纳秒为单位,请在 将数据写入 InfluxDB 时指定您时间戳的精度。

空白字符

行协议中的空白字符决定了 InfluxDB 如何解释数据点。第一个未转义的空格分隔测量和标签集与字段集。第二个未转义的空格分隔字段集与时间戳。

测量,tag1=val1,tag2=val2 field1="v1",field2=1i 0000000000000000000

数据类型和格式

浮点数

IEEE-754 64 位浮点数。默认数值类型。 InfluxDB 支持在浮点字段值中使用科学记数法。

浮点字段值示例
myMeasurement fieldKey=1.0
myMeasurement fieldKey=1
myMeasurement fieldKey=-1.234456e+78

整数

有符号 64 位整数。数字末尾的 i 指定了一个整数。

最小整数最大整数
-9223372036854775808i9223372036854775807i
整数字段值示例
myMeasurement fieldKey=1i
myMeasurement fieldKey=12485903i
myMeasurement fieldKey=-12485903i

无符号整数

无符号 64 位整数。数字末尾带有 u 的指定为无符号整数。

最小无符号整数最大无符号整数
0u18446744073709551615u
无符号整数字段值示例
myMeasurement fieldKey=1u
myMeasurement fieldKey=12485903u

字符串

纯文本字符串。长度限制 64KB。

字符串示例
# String measurement name, field key, and field value
myMeasurement fieldKey="this is a string"

布尔值

存储 truefalse 值。

布尔值接受的语法
tTtrueTrueTRUE
fFfalseFalseFALSE
布尔值字段值示例
myMeasurement fieldKey=true
myMeasurement fieldKey=false
myMeasurement fieldKey=t
myMeasurement fieldKey=f
myMeasurement fieldKey=TRUE
myMeasurement fieldKey=FALSE

不要引用布尔值字段值。引用的字段值被解释为字符串。

Unix 时间戳

指定精度 下的 Unix 时间戳。默认精度为纳秒 (ns)。

最小时间戳最大时间戳
-92233720368547758069223372036854775806
Unix 时间戳示例
myMeasurementName fieldKey="fieldValue" 1556813561098000000

引号

行协议支持单引号和双引号,如下表所述

元素双引号单引号
测量有限 *有限 *
标签键有限 *有限 *
标签值有限 *有限 *
字段键有限 *有限 *
字段值仅字符串从不
时间戳从不从不

* 行协议接受测量名称、标签键、标签值和字段键中的双引号和单引号,但将它们解释为名称、键或值的一部分。

特殊字符

行协议支持在 字符串元素 中使用特殊字符。在以下上下文中,它要求使用反斜杠 (\) 转义某些字符

元素转义字符
测量逗号、空格
标签键逗号、等号、空格
标签值逗号、等号、空格
字段键逗号、等号、空格
字段值双引号、反斜杠

您不需要转义其他特殊字符。

行协议中特殊字符的示例
# Measurement name with spaces
my\ Measurement fieldKey="string value"

# Double quotes in a string field value
myMeasurement fieldKey="\"string\" within a string"

# Tag keys and values with spaces
myMeasurement,tag\ Key1=tag\ Value1,tag\ Key2=tag\ Value2 fieldKey=100

# Emojis
myMeasurement,tagKey=🍭 fieldKey="Launch 🚀" 1556813561098000000

转义反斜杠

行协议支持字面反斜杠和作为转义字符的反斜杠。如果有连续的两个反斜杠,第一个被解释为转义字符。例如

反斜杠解释为
\\
\\\
\\\\\
\\\\\\
\\\\\\\\
\\\\\\\\\

注释

行协议将行开头的 # 解释为注释字符,并忽略直到下一个换行符 \n 的所有后续字符。

# This is a comment
myMeasurement fieldKey="string value" 1556813561098000000

命名限制

测量名称、标签键和字段键不能以下划线 _ 开头。下划线命名空间保留供 InfluxDB 系统使用。

重复的数据点

一个点由测量名称、标签集和时间戳唯一标识。如果您提交具有相同测量、标签集和时间戳但不同字段集的行协议,则字段集成为旧字段集和新字段集的并集,其中任何冲突都优先考虑新字段集。


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB v3 增强功能和 InfluxDB 集群版现已全面上市

新功能包括更快的查询性能和管理工具,推动 InfluxDB v3 产品线的进步。InfluxDB 集群版现已全面上市。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面进行了重大改进,并提供了新的管理工具。这些改进包括一个操作仪表板来监控您的 InfluxDB 集群的健康状况,InfluxDB Cloud 专用中的单一登录(SSO)支持,以及用于令牌和数据库的新管理 API。

了解新的 v3 增强功能


InfluxDB 集群版全面上市

InfluxDB 集群版现已全面上市,并为您在自管理堆栈中提供 InfluxDB v3 的功能。

与我们讨论 InfluxDB 集群版

InfluxDB Cloud 驱动 TSM