文档文档

Line protocol reference

InfluxDB 使用 Line Protocol 写入数据点。它是一种基于文本的格式,提供数据点的 measurement、tag set、field set 和 timestamp。

// 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 中的单个点。Line Protocol 对空格敏感。

Line Protocol 不支持在 tag 或 field 值中使用换行符 \n

Line Protocol 的元素

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

Measurement

必需)measurement 名称。InfluxDB 每个点接受一个 measurement。Measurement 名称区分大小写,并受命名限制约束。

数据类型: 字符串

Tag set

可选 – 点的所有 tag 键值对。键值关系用 = 运算符表示。多个 tag 键值对用逗号分隔。Tag 键和 tag 值区分大小写。Tag 键受命名限制约束。Tag 值不能为空;请改为从 tag set 中省略该 tag。

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

Field set

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

键数据类型: 字符串
值数据类型: Float | Integer | UInteger | 字符串 | Boolean

始终使用双引号引用字符串 field 值。有关引号的更多信息,请参见下文

measurementName fieldKey="field string value" 1556813561098000000

Timestamp

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

数据类型: Unix 时间戳

关于时间戳的重要说明

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

空格

Line Protocol 中的空格决定了 InfluxDB 如何解释数据点。第一个未转义的空格将 measurement 和 tag set 与 field set 分隔开。第二个未转义的空格将 field set 与时间戳分隔开。

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

数据类型和格式

Float

IEEE-754 64 位浮点数。默认数值类型。InfluxDB 支持 float field 值中的科学计数法。

Float field 值示例
myMeasurement fieldKey=1.0
myMeasurement fieldKey=1
myMeasurement fieldKey=-1.234456e+78

Integer

有符号 64 位整数。数字末尾的 i 指定为整数。

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

UInteger

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

最小 uinteger最大 uinteger
0u18446744073709551615u
UInteger field 值示例
myMeasurement fieldKey=1u
myMeasurement fieldKey=12485903u

字符串

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

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

Boolean

存储 truefalse 值。

Boolean 值接受的语法
TruetTtrueTrueTRUE
FalsefFfalseFalseFALSE
Boolean field 值示例
myMeasurement fieldKey=true
myMeasurement fieldKey=false
myMeasurement fieldKey=t
myMeasurement fieldKey=f
myMeasurement fieldKey=TRUE
myMeasurement fieldKey=FALSE

不要引用 boolean field 值。引用的 field 值将被解释为字符串。

Unix 时间戳

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

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

引号

Line Protocol 支持单引号和双引号,如下表所述

元素双引号单引号
Measurement有限 *有限 *
Tag 键有限 *有限 *
Tag 值有限 *有限 *
Field 键有限 *有限 *
Field 值仅限字符串从不
Timestamp从不从不

* Line Protocol 接受 measurement 名称、tag 键、tag 值和 field 键中的双引号和单引号,但将其解释为名称、键或值的一部分。

特殊字符

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

元素转义字符
Measurement逗号、空格
Tag 键逗号、等号、空格
Tag 值逗号、等号、空格
Field 键逗号、等号、空格
Field 值双引号、反斜杠

您无需转义其他特殊字符。

Line Protocol 中特殊字符的示例
# 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

转义反斜杠

Line Protocol 同时支持字面反斜杠和作为转义字符的反斜杠。对于两个连续的反斜杠,第一个被解释为转义字符。例如

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

注释

Line Protocol 将行首的 # 解释为注释字符,并忽略所有后续字符,直到下一个换行符 \n

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

命名限制

Measurement 名称、tag 键和 field 键不能以下划线 _ 开头。_ 命名空间为 InfluxDB 系统使用保留。

重复点

点由 measurement 名称、tag set 和时间戳唯一标识。如果您提交具有相同 measurement、tag set 和时间戳,但具有不同 field set 的 Line Protocol,则 field set 将成为旧 field set 和新 field set 的并集,其中任何冲突都倾向于新的 field set。


此页内容是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版本现已公开发布 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

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

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