Documentation

行协议

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

行协议的元素

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

测量

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

数据类型: String

标签集

可选 – 该点的所有标签键值对。 键值关系用 = 操作符表示。 多个标签键值对用逗号分隔。 标签键和标签值是区分大小写的。 标签键受 命名限制 的约束。 标签值不能为空;请省略标签即可。

关键数据类型: String
值数据类型: String

字段集合

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

关键数据类型: String
值数据类型: Float | Integer | UInteger | String | Boolean

始终对字符串字段值使用双引号。关于引号的更多信息请参阅下方.

measurementName fieldKey="field string value" 1556813561098000000

时间戳

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

数据类型: Unix时间戳

有关时间戳的重要说明

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

空白字符

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

myMeasurement,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 值。

布尔值接受的语法
正确t, T, true, True, TRUE
f, F, false, False, FALSE
布尔字段值示例
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 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

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

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