一、什么是InfluxDB
InfluxDB是influxdata 公司提供的一款专门处理高写入和查询负载的开源时序数据库,专门设计用于处理时间序列数据。时序数据是按时间顺序排列的数据,通常用于表示传感器数据、应用程序指标、日志和事件等。InfluxDB具有高效存储和查询的能力,采用自适应压缩算法和特定的存储引擎,可以高效地存储大量的时序数据,并通过类似SQL的查询语言(InfluxQL)提供丰富的查询功能。它支持高并发写入,适用于处理实时数据流,并可定义数据保留策略自动删除旧数据以控制数据库大小。此外,InfluxDB拥有插件生态系统,可扩展其功能,并具备高可用性和容错性,支持数据复制和故障转移。除了InfluxDB外其生态还包括下图中一些组件和工具。
二、InfluxDB有三大特性:
- Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)
- Metrics(度量):你可以实时对大量数据进行计算
- Eevents(事件):它支持任意的事件数据
特点
- 为时间序列数据专门编写的自定义高性能数据存储。 TSM引擎具有高性能的写入和数据压缩
- Golang编写,没有其它的依赖
- 提供简单、高性能的写入、查询 http api,Native HTTP API, 内置http支持,使用http读写
- 插件支持其它数据写入协议,例如 graphite、collectd、OpenTSDB
- 支持类sql查询语句
- tags可以索引序列化,提供快速有效的查询
- Retention policies自动处理过期数据
- Continuous queries自动聚合,提高查询效率
- schemaless(无结构),可以是任意数量的列
- Scalable可拓展
- min, max, sum, count, mean,median 一系列函数,方便统计
- Built-in Explorer 自带管理工具
三、Influxdb相关名词
- bucket(存储桶):存储时间序列数据的指定位置。一个桶可以包含多个测量值。也就是类似关系型数据库中的库
- measurement(度量):时间序列数据的逻辑分组。给定测量中的所有点都应具有相同的标签。代表一组相关的数据点。测量通常对应于一个实体、一个测量对象或一个应用程序指标一个测量包含多个标签和字段。也就是类似关系型数据库中的表
- point(数据端点):通过测量、标签键、标签值、字段键和时间戳来标识的单个数据记录。也就是类似于关系型数据库中的行
- Tags(键值对)::标签是用于标识和过滤数据的键值对。标签通常用于描述测量数据的元数据,如传感器ID、地理位置、设备类型等。标签是字符串类型的键值对,可以根据需要动态添加或修改。
- field(字段):字段是实际存储数据值的键值对。字段可以包含不同类型的数据,如浮点数、整数、字符串或布尔类型。字段的值是实际要存储和查询的数据。其值随时间变化,例如:温度、压力、股票价格等。
- Timestamp(时间戳):与数据关联的时间戳。当存储在磁盘上并查询时,所有数据都按时间排序。
- 数据保留时间(Retention Duration):RP定义了数据在数据库中保留的时间范围。可以根据需求指定保留的时间,例如保留最近7天、30天或更长时间的数据。过期的数据将自动从数据库中删除,以保持数据库的大小和性能控制。
对常见关系型数据库(MySQL)的基础概念对比
- 和传统数据库相比,influxdb在相关概念上有一定不同,具体如下:
influxdb 中的概念 | 传统数据库中的概念 |
---|---|
bucket | 数据库 |
measurement | 数据库中的表 |
point | 表中的一行数据 |
- point相当于传统数据库里的一行数据;数据结构由时间戳(timestemp)、标签(tags)、数据(fields)三部分组成,具体含义如下:
point 属性 | 含义 |
---|---|
timestemp(时间戳) | 每个数据记录时间,是数据库中的主索引(会自动生成) |
tags(标签) | 各种有索引的属性:地区,海拔 |
fields(字段、数据) | 各种记录值(没有索引的属性)也就是记录的值:温度, 湿度 |
注意
在influxdb中,字段必须存在。因为字段是没有索引的。如果使用字段作为查询条件,会扫描符合查询条件的所有字段值,性能不及tag。类比一下,fields相当于SQL的没有索引的列。
tags是可选的,但是强烈建议你用上它,因为tag是有索引的,tags相当于SQL中的有索引的列。tag value只能是string类型。
还有一个重要的名词:series
所有在数据库中的数据,都需要通过图表来表示,series(系列)表示这个表里面的所有的数据可以在图标上画成几条线(注:线条的个数由tags排列组合计算出来)
四、安装
4.1、下载
打开官网 InfluxData Downloads (下载InfluxDB OSS)
在Platform中选择“Linux Binaries(64-bit)”,下面直接出下载地址
https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5_linux_amd64.tar.gz
4.2、解压
新建安装目录
mkdir /usr/local/influxdb
tar -zxvf /opt/software/influxdb2-2.7.5_linux_amd64.tar.gz -C /usr/local/influxdb
4.3、运行
打开目录
cd /usr/local/influxdb/influxdb2-2.7.5
直接运行influxd
./usr/bin/influxd
直接访问:http://192.168.154.129:8086/
用户名为zhangyanfen;密码为12030627(必须八位数)
InfluxDB操作详解
https://blog.youkuaiyun.com/weixin_44831330/article/details/131782086
https://blog.youkuaiyun.com/ss810540895/article/details/130803239
https://www.jianshu.com/p/a1344ca86e9b
https://zhuanlan.zhihu.com/p/659797419
https://blog.youkuaiyun.com/G_D0120/article/details/139418187
https://www.cnblogs.com/Bluebells/p/14116009.html