文档说明

行协议

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 云专用版中的单点登录(SSO)支持,以及用于令牌和数据库的新管理 API。

了解新的 v3 增强功能


InfluxDB 集群版普遍可用

InfluxDB 集群版现已普遍可用,为您在自管理的堆栈中提供了 InfluxDB v3 的功能。

与我们谈谈 InfluxDB 集群版