行协议参考
InfluxDB 3 Core 现已公开发布 Alpha 版本
InfluxDB 3 Core 现已公开发布 alpha 版本,可用于测试和反馈,但不适用于生产环境。产品和本文档都在不断完善中。我们欢迎并鼓励您提供关于 alpha 版本使用体验的反馈,并邀请您加入我们的公共频道以获取更新和分享反馈。
InfluxDB 3 Core 使用行协议写入数据点。它是一种基于文本的格式,提供数据表的表名、标签集、字段集和时间戳。
// Syntax
<table>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
// Example
myTable,tag1=value1,tag2=value2 fieldKey="fieldValue" 1556813561098000000
以换行符 \n
分隔的行表示 InfluxDB 中的单个数据点。行协议对空格敏感。
行协议不支持在标签或字段值中使用换行符 \n
。
行协议的组成部分
表
(必需) 表名。InfluxDB 每个数据点接受一个表。表名区分大小写,并受命名限制约束。
数据类型: 字符串
如果您熟悉以前的 InfluxDB 版本,“表”与“measurement(度量)”同义。
标签集
可选 – 数据点的所有标签键值对。键值关系用 =
运算符表示。多个标签键值对用逗号分隔。标签键和标签值区分大小写。标签键受命名限制约束。标签值不能为空;请从标签集中省略该标签。
字段集
(必需) 数据点的所有字段键值对。数据点必须至少有一个字段。字段键和字符串值区分大小写。字段键受命名限制约束。
键数据类型: 字符串
值数据类型: 浮点数 | 整数 | 无符号整数 | 字符串 | 布尔值
始终使用双引号引用字符串字段值。有关引号的更多信息,请参见下文。
tableName fieldKey="field string value" 1556813561098000000
时间戳
可选 – 数据点的 Unix 时间戳。InfluxDB 每个数据点接受一个时间戳。如果未提供时间戳,InfluxDB 将使用其主机系统的系统时间 (UTC)。
数据类型: Unix 时间戳
关于时间戳的重要说明
- 为确保数据点包含观察到指标的时间(而不是 InfluxDB 接收到的时间),请包含时间戳。
- 如果您的时间戳不是纳秒,请在将数据写入 InfluxDB 3 Core 时指定时间戳的精度。
空白字符
行协议中的空白字符决定了 InfluxDB 如何解释数据点。第一个未转义的空格分隔表和标签集与字段集。第二个未转义的空格分隔字段集与时间戳。
数据类型和格式
浮点数
IEEE-754 64 位浮点数。默认数值类型。InfluxDB 支持浮点字段值中的科学计数法。
浮点字段值示例
myTable fieldKey=1.0
myTable fieldKey=1
myTable fieldKey=-1.234456e+78
整数
带符号 64 位整数。数字后面的 i
指定为整数。
最小整数 | 最大整数 |
---|---|
-9223372036854775808i | 9223372036854775807i |
整数字段值示例
myTable fieldKey=1i
myTable fieldKey=12485903i
myTable fieldKey=-12485903i
无符号整数
无符号 64 位整数。数字后面的 u
指定为无符号整数。
最小无符号整数 | 最大无符号整数 |
---|---|
0u | 18446744073709551615u |
无符号整数字段值示例
myTable fieldKey=1u
myTable fieldKey=12485903u
字符串函数
纯文本字符串。长度限制为 64KB。
字符串示例
# String table name, field key, and field value
myTable fieldKey="this is a string"
布尔值
存储 true
或 false
值。
布尔值 | 接受的语法 |
---|---|
True(真) | t , T , true , True , TRUE |
False(假) | f , F , false , False , FALSE |
布尔字段值示例
myTable fieldKey=true
myTable fieldKey=false
myTable fieldKey=t
myTable fieldKey=f
myTable fieldKey=TRUE
myTable fieldKey=FALSE
不要引用布尔字段值。带引号的字段值会被解释为字符串。
Unix 时间戳
采用指定精度的 Unix 时间戳。默认精度为纳秒 (ns
)。
最小时间戳 | 最大时间戳 |
---|---|
-9223372036854775806 | 9223372036854775806 |
Unix 时间戳示例
myTableName fieldKey="fieldValue" 1556813561098000000
引号
行协议支持单引号和双引号,如下表所述
元素 | 双引号 | 单引号 |
---|---|---|
表 | 有限 * | 有限 * |
标签键 | 有限 * | 有限 * |
标签值 | 有限 * | 有限 * |
字段键 | 有限 * | 有限 * |
字段值 | 仅限字符串 | 从不 |
时间戳 | 从不 | 从不 |
* 行协议接受表名、标签键、标签值和字段键中的双引号和单引号,但会将它们解释为名称、键或值的一部分。
特殊字符
行协议支持字符串元素中的特殊字符。在以下上下文中,它要求使用反斜杠 (\
) 转义某些字符
元素 | 转义字符 |
---|---|
表 | 逗号、空格 |
标签键 | 逗号、等号、空格 |
标签值 | 逗号、等号、空格 |
字段键 | 逗号、等号、空格 |
字段值 | 双引号、反斜杠 |
您无需转义其他特殊字符。
行协议中特殊字符的示例
# Table name with spaces
my\ Table fieldKey="string value"
# Double quotes in a string field value
myTable fieldKey="\"string\" within a string"
# Tag keys and values with spaces
myTable,tag\ Key1=tag\ Value1,tag\ Key2=tag\ Value2 fieldKey=100
# Emojis
myTable,tagKey=🍭 fieldKey="Launch 🚀" 1556813561098000000
转义反斜杠
行协议同时支持字面反斜杠和作为转义字符的反斜杠。对于两个连续的反斜杠,第一个被解释为转义字符。例如
反斜杠 | 解释为 |
---|---|
\ | \ |
\\ | \ |
\\\ | \\ |
\\\\ | \\ |
\\\\\ | \\\ |
\\\\\\ | \\\ |
注释
行协议将行首的 #
解释为注释字符,并忽略直到下一个换行符 \n
之间的所有后续字符。
# This is a comment
myTable fieldKey="string value" 1556813561098000000
命名限制
表名、标签键和字段键是字母数字字符,并且必须以字母或数字开头。它们可以包含短划线 (-
) 和下划线 (_
)。
重复数据点
数据点由表名、标签集和时间戳唯一标识。如果您提交的行协议具有相同的表、标签集和时间戳,但字段集不同,则字段集将成为旧字段集和新字段集的并集,其中任何冲突都倾向于新的字段集。
此页面是否对您有帮助?
感谢您的反馈!
支持与反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB 3 Core 和本文档的反馈和错误报告。如需获得支持,请使用以下资源
拥有年度合同或支持合同的客户 可以联系 InfluxData 支持。