暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

时序数据库 InfluxDB 介绍

ThoughtOverFlow 2022-12-25
3215

什么是 InfluxDB

介绍 InfluxDB 之前,先介绍一下时序数据。时序数据是按照时间顺序记录系统或设备状态变化的数据,比如 CPU 使用率、磁盘读写速率等。时序数据以时间作为主要的查询维度,通常会将连续的多个时序数据绘制成线,制作成基于时间的多维度报表,用于揭示数据背后的趋势、规律、异常,进行实时在线预测和报警。时序数据主要有以下特点:

  • 时间是一个主坐标轴

  • 数据通过按照时间顺序抵达

  • 数据几乎总是作为新条目被记录,无更新操作

时序数据库是存放时序数据的专用型数据库,并且支持时序数据的快速写入、持久化、多维度的实时聚合运算等功能。InfluxDB 是一个有 InfluxData 公司开发的开源时序型数据库,专注于海量时序数据的高性能读、高性能写、高效存储和实时分析,在 DB_Engines Ranking 时序型数据库上位列榜首,广泛应用于 Devops 监控、IoT 监控、实时分析等场景。InfluxDB 具有以下特性:

  • 部署简单、使用方便,充分利用了 GO 语言特性

  • 类似于 SQL 的查询语言,学习成本低,上手快

  • 丰富的聚合运算和采样能力

  • 灵活的数据保留策略设置数据保留时间和副本数

  • 灵活的连续查询实现对海量数据的采样

  • 支持多种通信协议,如:HTTP、UDP、OpenTSDB、Prometheus、CollectD、Graphite 等

基本概念

InfluxDB 的名词解释:

  • database:数据库

  • measurement:表

  • tag:标签,类似于 MySQL 的索引列

  • field:字段,类似于 MySQL 的非索引列

  • point:数据行,由 time、tag、field 组成

  • series:时间线,由 retention policy、measurement、tag sets 组成

  • retention policy:保留策略,指定数据的保留时间

InfluxDB 与常见关系型数据库的对比:

概念MySQLInfluxDB
数据库databasedatabase
tablemeasurement
columntime、tag、field

注意,在 InfluxDB 中,一条数据至少包括 measurement、0 个或多个 K-V 结构的 tag、至少一个 K-V 结构的 field、timestamp。measurement 无需提前定义,会在数据写入时自动创建表结构。

数据类型

InfluxDB 支持以下数据类型,具体的数据类型和字段关系如下表:

类型使用该类型的对象描述
浮点型字段值数值型指标默认为浮点型
整型字段值使用时,需要在数值型指标后面加小写字母 i,否则会当做浮点型
字符串表名、标签键/值、字段键/值双引号字符串字段
布尔型字段值以下值为 true:t、true、false、TRUE、True。以下值为 false:f、F、false、False、FALSE
纳秒级精度 UNIX 时间时间戳UNIX 纳秒级时间戳

行协议

InfluxDB 支持行协议,行协议是一种基于文本格式的协议。行协议的单行文本表示一条时序数据,由表、标签集、字段集和时间戳组成。行协议基本语法如下:

<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

行协议的格式比较严格的,要求 measurement 和 0 个或多个 tag 之间必须是紧挨着的,中间不能有空格;同时多个 filed 之间也是不能有空格,tag 和 field 的 key,tag 的 value 都是字符串类型;时间戳不是必须的,如果为空则使用服务端的本地时间作为时间戳。相同时间戳的数据第二次写入会覆盖第一次写入的数据,相当于更新操作。

行协议中的一些字段对某些特殊符号较敏感,当需要使用这些敏感符号时,需要进行转义处理,特殊符号如下:

字段特殊符号
逗号 空格
标签键/值、字段键逗号 等号 空格
字符串类型的指标值双引号 反斜杠

除了行协议,InfluxDB 还支持 CollectD、Graphite、OpenTSDB、Promethus、UDP 等第三方协议。


文章转载自ThoughtOverFlow,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论