首页 > 其他分享 >InfluxDB(2):行协议

InfluxDB(2):行协议

时间:2022-11-18 18:06:01浏览次数:53  
标签:协议 Set 数据类型 InfluxDB myMeasurement fieldKey 数据

InfluxDB行协议

认识 InfluxDB 行协议

InfluxDB 行协议是 InfluxDB 数据库独创的一种数据格式,它由纯文本构成,只要数据符合这种格式,就能使用 InfluxDB 的 HTTP API 将数据写入数据库。

与 CSV 相似,在 InfluxDB 行协议中,一条数据和另一条数据之间使用换行符分隔,所以一行就是一条数据。另外,在时序数据库领域,一行数据一行数据由下面 4 种元素构成。

  • measurement(测量名称)
  • Tag Set(标签集)
  • Field Set(字段集)
  • Timestamp(时间戳)

image-20221118163425700

measurement:测量的名称。在 InfluxDB 行协议中,测量名称不可省略。大小写敏感,不可以用下划线_打头。

Tag Set:

标签应该用在一些值的范围有限(可枚举)的,不太会变动的属性上。比如传感器的 类型和 id 等等。在 InfluxDB 中一个 Tag 相当于一个索引。给数据点加上 Tag 有利于将来对 数据进行检索。但是如果索引太多了,就会减慢数据的插入速度。

可选

键值关系使用=表示

多个键值对之间使用英文逗号 , 分隔

标签的键和值都区分大小写

标签的键不能以下划线 _ 开头

键的数据类型:字符串

值的数据类型:字符串

Field Set:

必需

一个数据点上所有的字段键值对,键是字段名,值是数据点的值。

一个数据点至少要有一个字段。

字段集的键是大小写敏感的。

字段

键的数据类型:字符串

值的数据类型:浮点数 | 整数 | 无符号整数 | 字符串 | 布尔值

Timestamp:

数据点的 Unix 时间戳,每个数据点都可以制定自己的时间戳。

如果时间戳没有指定。那么 InfluxDB 就使用当前系统的时间戳。

数据类型:Unix timestamp

如果你的数据里的时间戳不是以纳秒为单位的,那么需要在数据写入时指定时间戳的 精度。

空格

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

image-20221118174600040

协议中的数据类型及其格式

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

注释

以井号 # 开头的一行会被当做注释。

# 这是一行数据

myMeasurement fieldKey="string value" 1556813561098000000

标签:协议,Set,数据类型,InfluxDB,myMeasurement,fieldKey,数据
From: https://www.cnblogs.com/wwjj4811/p/16904115.html

相关文章