文档说明

行协议参考

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

行协议元素

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

测量

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

数据类型: 字符串

标签集

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

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

字段集

(必填) 该点的所有字段键值对。点至少必须有一个字段。字段键和字符串值是大小写敏感的。字段键受命名限制约束。

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

始终双引号字符串字段值。更多关于引号见下文

measurementName fieldKey="field string value" 1556813561098000000

时间戳

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

数据类型: Unix时间戳

关于时间戳的重要注意事项

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

空白

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

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

了解新的 v3 增强功能


InfluxDB 集群公开发布

InfluxDB 集群现在已公开发布,并为您在自管理堆栈中提供了 InfluxDB v3 的功能。

与我们谈谈 InfluxDB 集群