InfluxDB时序数据库
我们使用influxDBv2,它自带了一个webui的网页,可以实现图形化操作,以及有数据分析工具,十分的方便。
首先来讲一下存储桶的作用:
存储桶:
在一个 InfluxDB 实例中,所有的时间序列数据都必须存放在某一个存储桶中。它是一个命名的数据容器,主要有以下几个作用:
1. 数据隔离 (Data Isolation)
- 作用: 存储桶是数据的基本组织单位。您可以创建多个存储桶,用来存放来自不同来源或用于不同目的的数据,让它们彼此隔离,互不干扰。
- 比喻: 就像您在电脑上创建不同的文件夹来存放“工作文件”、“家庭照片”和“游戏存档”一样。
- 您的机器人项目示例:
- 您可以创建一个名为
qqbot_events的存储桶,专门用来存放所有接收到的原始消息事件。 - 您可以创建另一个名为
system_metrics的存储桶,用来存放由 Telegraf 采集的服务器性能数据。
- 您可以创建一个名为
2. 数据生命周期管理 (Data Lifecycle Management)
- 作用: 这是存储桶最强大、最核心的功能。每个存储桶都必须关联一个**“保留策略” (Retention Policy)**。
- 保留策略: 这个策略定义了存放在该存储桶中的数据可以保留多长时间。一旦数据的时间戳超出了这个期限,InfluxDB 就会自动、高效地将其删除。
- 示例:
- 您可以为
qqbot_events存储桶设置一个 30 天的保留策略。这意味着,系统会自动删除所有 30 天之前的聊天记录,确保您的数据库不会无限膨胀。 - 对于
system_metrics,您可能只需要保留 7 天的精细数据用于故障排查。
- 您可以为
- 好处: 实现了数据的“自动清理”,极大地简化了数据管理,并节约了存储空间。
3. 权限控制 (Access Control)
- 作用: InfluxDB 的认证令牌 (API Tokens) 的权限是与存储桶紧密绑定的。
- 工作方式: 当您创建一个 API Token 时,您可以精确地指定这个 Token 拥有对哪些存储桶的读取或写入权限。
- 示例:
- 您可以创建一个只写的 Token,专门给 Telegraf 使用,它只能向
system_metrics存储桶写入数据,但不能读取任何数据,也无法访问qqbot_events存储桶。 - 您可以为您的数据分析工具创建一个只读的 Token,它只能从
qqbot_events存储桶中读取数据进行分析。
- 您可以创建一个只写的 Token,专门给 Telegraf 使用,它只能向
- 好处: 实现了非常精细的权限管理,提升了系统的安全性。
工具:
windows上我们比较常用的是cli工具,可以在官网网站下载。官方也有提供示例的csv数据可以直接下载来应用,十分方便,我们可以创建数据桶后,保存token api 然后在cli工具中新建config,用来认证。
