InfluxDB行协议
认识 InfluxDB 行协议
InfluxDB 行协议是 InfluxDB 数据库独创的一种数据格式,它由纯文本构成,只要数据符合这种格式,就能使用 InfluxDB 的 HTTP API 将数据写入数据库。
与 CSV 相似,在 InfluxDB 行协议中,一条数据和另一条数据之间使用换行符分隔,所以一行就是一条数据。另外,在时序数据库领域,一行数据一行数据由下面 4 种元素构成。
- measurement(测量名称)
- Tag Set(标签集)
- Field Set(字段集)
- Timestamp(时间戳)
measurement:测量的名称。在 InfluxDB 行协议中,测量名称不可省略。大小写敏感,不可以用下划线_打头。
Tag Set:
标签应该用在一些值的范围有限(可枚举)的,不太会变动的属性上。比如传感器的 类型和 id 等等。在 InfluxDB 中一个 Tag 相当于一个索引。给数据点加上 Tag 有利于将来对 数据进行检索。但是如果索引太多了,就会减慢数据的插入速度。
可选
键值关系使用=表示
多个键值对之间使用英文逗号 , 分隔
标签的键和值都区分大小写
标签的键不能以下划线 _ 开头
键的数据类型:字符串
值的数据类型:字符串
Field Set:
必需
一个数据点上所有的字段键值对,键是字段名,值是数据点的值。
一个数据点至少要有一个字段。
字段集的键是大小写敏感的。
字段
键的数据类型:字符串
值的数据类型:浮点数 | 整数 | 无符号整数 | 字符串 | 布尔值
Timestamp:
可
数据点的 Unix 时间戳,每个数据点都可以制定自己的时间戳。
如果时间戳没有指定。那么 InfluxDB 就使用当前系统的时间戳。
数据类型:Unix timestamp
如果你的数据里的时间戳不是以纳秒为单位的,那么需要在数据写入时指定时间戳的 精度。
空格
行协议中的空格决定了 InfluxDB 如何解释数据点,第一个未转义的空格将测量值&Tag Set(标签集)与 Field Set(字段集)分开。第二个未转义空格将 Field Set(字段级)和时 间戳分开。
协议中的数据类型及其格式
Float(浮点数)
IEEE-754 标准的 64 位浮点数。这是默认的数据类型。
示例:
myMeasurement fieldKey=1.0
myMeasurement fieldKey=1
myMeasurement fieldKey=-1.234456e+78
Integer(整数)
有符号 64 位整数。需要在数字的尾部加上一个小写数字 i 。
整数最小值 -9223372036854775808i
整数最大值 9223372036854775807i
UInteger(无符号整数)
无符号 64 位整数。需要在数字的尾部加上一个小写数字 u 。
示例:
myMeasurement fieldKey=1u
myMeasurement fieldKey=12485903u
String(字符串)
普通文本字符串,长度不能超过 64KB
示例:
myMeasurement fieldKey="this is a string"
Boolean(布尔值)
true 或者 false。
布尔值 | 支持的语法 |
---|---|
True | t, T, true, True, TRUE |
False | f, F, false, False, FALSE |
不要对布尔值使用引号,否则会被解释为字符串
Unix Timestamp(Unix 时间戳)
myMeasuremetName fieldKey="fieldValue" 1556813561098000000
注释
以井号 # 开头的一行会被当做注释。
标签:协议,Set,数据类型,InfluxDB,myMeasurement,fieldKey,数据 From: https://www.cnblogs.com/wwjj4811/p/16904115.html# 这是一行数据
myMeasurement fieldKey="string value" 1556813561098000000