【InfluxDB 第三篇章】行协议

InfluxDB 行协议是 InfluxDB 数据库独创的一种数据格式,它由纯文本构成,只要数据符合这种格式,就能使用 InfluxDB 的 HTTP API 将数据写入数据库。该协议与CSV相似,在 InfluxDB 行协议中,一条数据和另一条数据之间使用换行符分隔,所以一行就是一条数据。在时序数据库领域,一条数据由以下四种元素构成:

一、测量名称(Measurement)

必需元素,测量的名称。可以将其当作普通关系型数据的表,但实际上并非如此。在 InfluxDB 行协议中,测量名称不可省略,且大小写敏感,不可以用下划线_打头。

二、标签集(Tag Set)

可选元素,键值关系使用=表示,多个键值对之间使用英文逗号分隔。标签的键和值都区分大小写,且键不能以下划线_开头。标签应该用在一些值的范围有限(可枚举)、不太会变动的属性上,比如传感器的类型和ID等。在 InfluxDB 中,一个 Tag 相当于一个索引,给数据点加上 Tag 有利于将来对数据进行检索。但如果索引太多了,就会减慢数据的插入速度。

三、字段集(Field Set)

必需元素,一个数据点上所有的字段键值对,键是字段名,值是数据点的值。一个数据点至少要有一个字段。字段集的键是大小写敏感的。字段集的值可以是浮点数、整数、无符号整数、字符串或布尔值。

四、时间戳(Timestamp)

可选元素,但通常建议包含,用于标识数据点的时间。如果数据点中不包含时间戳,InfluxDB 会使用本地服务器的时间作为时间戳。时间戳支持多种时间精度,写入数据的时候需要用参数指定时间精度,支持从小时到纳秒的6种时间精度。

示例

以下是一个典型的 InfluxDB 行协议数据点示例:

myMeasurement,tag1=value1,tag2=value2 field1=1.0,field2="string",field3=true 1648432611249500

在这个示例中:

  • myMeasurement 是测量名称。
  • tag1=value1,tag2=value2 是标签集,包含两个标签。
  • field1=1.0,field2="string",field3=true 是字段集,包含三个字段,字段类型分别为浮点数、字符串和布尔值。
  • 1648432611249500 是时间戳,表示数据点的时间。

注意事项

  • 空格在 InfluxDB 行协议中起到分隔作用,第一个未转义的空格将测量名称&标签集与字段集分开,第二个未转义空格将字段集和时间戳分开。
  • 字段集的值需要明确指定数据类型,否则 InfluxDB 会根据值的格式进行推断。
  • 时间戳默认是纳秒级时间戳,但可以通过参数指定其他时间精度。

InfluxDB 行协议是 InfluxDB 数据写入的基础,了解其格式和规则对于高效地使用 InfluxDB 至关重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值