目录
InfluxDB 行协议是 InfluxDB 数据库独创的一种数据格式,它由纯文本构成,只要数据符合这种格式,就能使用 InfluxDB 的 HTTP API 将数据写入数据库。
与 CSV 相似,在 InfluxDB 行协议中,一条数据和另一条数据之间使用换行符分隔,所以一行就是一条数据。另外,在时序数据库领域,一行数据一行数据由下面 4 种元素构
成。
- measurement(测量名称)
- Tag Set(标签集)
- Field Set(字段集)
- Timestamp(时间戳)
必需,测量的名称。 你可以将它当作普通关系型数据的 table,虽然实际上不是这么回事。 在 InfluxDB 行协议中,测量名称不可省略。 大小写敏感,不可以用下划线_打头
标签应该用在一些值的范围有限(可枚举)的,不太会变动的属性上。比如传感器的类型和 id 等等。在 InfluxDB 中一个 Tag 相当于一个索引。给数据点加上 Tag 有利于将来对数据进行检索。但是如果索引太多了,就会减慢数据的插入速度。可选,键值关系使用=表示。多个键值对之间使用英文逗号分隔,标签的键和值都区分大小写。标签的键不能以下划线 _ 开头键的数据类型:字符串值的数据类型:字符串
必需,一个数据点上所有的字段键值对,键是字段名,值是数据点的值。一个数据点至少要有一个字段。字段集的键是大小写敏感的。键的数据类型:字符串。值的数据类型:浮点数 | 整数 | 无符号整数 | 字符串 | 布尔值
行协议中的空格决定了 InfluxDB 如何解释数据点,第一个未转义的空格将测量值&Tag Set(标签集)与 Field Set(字段集)分开。第二个未转义空格将 Field Set(字段级)和时间戳分开。
IEEE-754 标准的 64 位浮点数。这是默认的数据类型。
示例:字段级值类型为浮点数的行协议
- myMeasurement fieldKey=1.0
- myMeasurement fieldKey=1
- myMeasurement fieldKey=-1.234456e+78
有符号 64 位整数。需要在数字的尾部加上一个小写数字 i :
整数最小值 | 整数最大值 |
-9223372036854775808i | 9223372036854775807i |
无符号 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
布尔值 | 支持的语法 |
True | t, T, true, True, TRUE |
False | f, F, false, False, FALSE |
- myMeasurement fieldKey=true
- myMeasurement fieldKey=false
- myMeasurement fieldKey=t myMeasurement
- fieldKey=f myMeasurement fieldKey=TRUE
- myMeasurement fieldKey=FALSE
myMeasurementName fieldKey="fieldValue" 1556813561098000000
以井号 # 开头的一行会被当做注释:
- # 这是一行数据
- myMeasurement fieldKey="string value" 1556813561098000000