行协议参考
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
。
行协议元素
测量
(必需) 测量名称。InfluxDB 每个数据点接受一个测量名称。 测量名称区分大小写,并受 命名限制 约束。
数据类型: 字符串
标签集
可选 – 该点的所有标签键值对。键值关系用=
运算符表示。多个标签键值对以逗号分隔。标签键和标签值是大小写敏感的。标签键受命名限制约束。标签值不能为空;相反,从标签集中省略该标签。
字段集
(必填) 该点的所有字段键值对。点至少必须有一个字段。字段键和字符串值是大小写敏感的。字段键受命名限制约束。
键数据类型: 字符串
值数据类型: 浮点数 | 整数 | 无符号整数 | 字符串 | 布尔值
始终双引号字符串字段值。更多关于引号见下文。
measurementName fieldKey="field string value" 1556813561098000000
时间戳
可选 – 数据点的Unix时间戳。InfluxDB接受每个点的时间戳。如果没有提供时间戳,InfluxDB将使用主机机的系统时间(UTC)。
数据类型: Unix时间戳
关于时间戳的重要注意事项
- 为了确保数据点包含指标被观察的时间(而不是由InfluxDB接收),请包含时间戳。
- 如果您的时戳不是以纳秒为单位,请在将数据写入InfluxDB时指定时戳的精度。
空白
行协议中的空白决定了InfluxDB如何解释数据点。第一个未转义空格分隔测量值和标签集。第二个未转义空格分隔字段集和时间戳。
数据类型和格式
浮点数
IEEE-754 64位浮点数。默认数值类型。InfluxDB支持浮点字段值中的科学记数法。
浮点字段值示例
myMeasurement fieldKey=1.0
myMeasurement fieldKey=1
myMeasurement fieldKey=-1.234456e+78
整数
有符号64位整数。数字末尾的i
指定一个整数。
最小整数 | 最大整数 |
---|---|
-9223372036854775808i | 9223372036854775807i |
整数字段值示例
myMeasurement fieldKey=1i
myMeasurement fieldKey=12485903i
myMeasurement fieldKey=-12485903i
无符号整数
无符号64位整数。数字末尾的u
指定一个无符号整数。
最小无符号整数 | 最大无符号整数 |
---|---|
0u | 18446744073709551615u |
无符号整数字段值示例
myMeasurement fieldKey=1u
myMeasurement fieldKey=12485903u
字符串函数
纯文本字符串。长度限制64KB。
字符串示例
# String measurement name, field key, and field value
myMeasurement fieldKey="this is a string"
布尔值
存储true
或false
值。
布尔值 | 接受语法 |
---|---|
真 | 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
)。
最小时间戳 | 最大时间戳 |
---|---|
-9223372036854775806 | 9223372036854775806 |
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 系统使用。
重复数据点
一个点由测量名称、标签集和时间戳唯一标识。如果您提交具有相同测量、标签集和时间戳,但具有不同字段集的行协议,则字段集成为旧字段集和新字段集的并集,其中冲突优先考虑新字段集。
这个页面有帮助吗?
感谢您的反馈!