InfluxDB官网:https://www.influxdata.com/
官方文档:https://docs.influxdata.com/influxdb/v2/
时序数据库
- 写入性能:都是LSM Treew的变种,顺序写入磁盘来增强写入性能。单点,每秒写入数十万的能力。
- 数据价值:随着时间推移,只有最新的数据才认定有价值。将数据分为冷数据、热数据。冷数据甚至可能会被删除。节省磁盘空间。
- 时间不可倒流,数据只写不改:时序数据库为了性能,不支持事务,不能删除、更新某条数据
安装InfluxDB
docker run --name influxdb -p 8086:8086 influxdb:2.7.4
安装完成,访问:http://127.0.0.1:8086/
输入基本信息账号和密码
主界面
InfluxDB涉及的TICK技术栈
T:Telegraf:数据菜鸡组件,收集 & 发送数据到InfluxDB
I:InfluxDB:存储数据 & 发送数据到Chronograf
C:Chronograf:用户界面,起到管理功能(1.8后被InfluxDB整合)
K:Kapacitor:后台处理报警信息(1.8后被InfluxDB整合)
开源协议
目前只能使用单机节点,集群版本需要付费。但是一些开源项目实现了集群的代码。
InfluxDB1.8 非官方开源集群版:https://github.com/chengshiwen/influxdb-cluster
创建一个Bucket
往Bucket写入数据
parking num=65 1708268214000
再往Bucket插入2条数据
parking num=100 1708268314000
parking num=85 1708268414000
观察下结果
这里就是InfluxDB管理界面的操作。
什么是InfluxDB行协议?
InfluxDB行协议是InfluxDB数据库独创的一种数据格式,它由纯文本构成,只要符合这个数据格式的文本就能通过InfluxDB的HTTP API写入到数据库中!
与CSV格式相似,一条数据与另一个数据之间用换行符分隔,所以一行就是一条数据。
一行数据中有4个元素构成
measurement,tag_key1=tag_value1,tag_key2=tag_value2 field_key=field_value timestamp
- measurement 测量名称:表示数据的度量值,类似于关系型数据库中的表名。
- Tag Set 标签集:用于添加额外的元数据信息,以便更好地组织和查询数据。是键值对。多个以英文逗号隔开。
- Field Set 字段集:字段包含实际的数据值。
- Timestamp 时间戳:时间戳,表示数据点的时间
假设我们要写入一个名为cpu_usage
的度量值,包含标签host=server1
和字段value=0.75
,时间戳为1623255228
,则行协议格式如下:
cpu_usage,host=server1 value=0.75 1623255228
使用TELEGRAF
现在InFluxDB后台创建一个TeleGraf的配置项,这里我选择的是Redis,并修改未来安装TeleGraf能访问到的Redis地址
服务器安装一个TeleGraf
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.20.1-1.x86_64.rpm
sudo yum localinstall telegraf-1.20.1-1.x86_64.rpm
安装完成后,直接复制执行命令启动即可!比如:如果你修改了配置文件,得重启TeleGraf
配置确认无问题后,回到浏览器 复制相关命令后,启动完成TeleGraf后,再点击SAVE AND TEST
等会查看监控
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤