文档

Line protocol

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

UInteger

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

最小无符号整数最大无符号整数
0u18446744073709551615u
UInteger字段值示例
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 云无服务器