MENU
// //

认识 InfluxDB(一)

August 3, 2023 • 技术分享

认识 InfluxDB

文档内容参考自:尚硅谷【官网】谷粉与老学员力挺的Java培训|大数据培训|前端培训 (atguigu.com)

{bilibili bvid="BV1xd4y1c73c" page="d740731ea9208d4c80166ef2d8c062c1"/}

InfluxDB 的使用场景

  • InfluxDB 是一种时序数据库,时序数据库通常被用在监控场景,比如运维和 IOT(物 联网)领域。这类数据库旨在存储时序数据并实时处理它们。 比如。我们可以写一个程序将服务器上 CPU 的使用情况每隔 10 秒钟向 InfluxDB 中写 入一条数据。接着,我们写一个查询语句,查询过去 30 秒 CPU 的平均使用情况,然后让 这个查询语句也每隔 10 秒钟执行一次。最终,我们配置一条报警规则,如果查询语句的执 行结果>xxx,就立刻触发报警。 上述就是一个指标监控的场景,在 IOT 领域中,也有大量的指标需要我们监控。比如, 机械设备的轴承震动频率,农田的湿度温度等等

Influx与关系型数据库的对比

写入性能

  • 关系型数据库也是支持时间戳的,也能够基于时间戳进行查询。但是,从我们的使用 场景出发,需要注意数据库的写入性能。通常,关系型数据库会采用 B+树数据结构,在数 据写入时,有可能会触发叶裂变,从而产生了对磁盘的随机读写,降低写入速度。 当前市面上的时序数据库通常都是采用 LSM Tree 的变种,顺序写磁盘来增强数据的写 入能力。网上有不少关于性能测试的文章,同学们可以自己去参考学习,通常时序数据库 都会保证在单点每秒数十万的写入能力

数据价值

  • 我们之前说,时序数据库一般用于指标监控场景。这个场景的数据有一个非常明显的 特点就是冷热差别明显。通常,指标监控只会使用近期一段时间的数据,比如我只查询某 个设备最近 10 分钟的记录,10 分钟前的数据我就不再用了。那么这 10 分钟前的数据,对 我们来说就是冷数据,应该被压缩放到磁盘里去来节省空间。而热数据因为经常要用,数据库就应该让它留在内存里,等待查询。而市面上的时序数据库大都有类似的设计。

数据只写不改

  • 就像是我们打开任务管理器,查看 CPU 的使用情况。我发现 CPU 占用率太高了,于 是杀死了一个进程,但 10 秒前的数据不会因为我关闭进程再发生改变了。 这是时序数据的一大特点。与之相应,时序数据库基本上是插入操作较多,而且还没有什么更新需求

Influx技术栈(TICK)

image-20230803102021235.png

  • T : Telegraf - 数据采集组件,收集&发送数据到 InfluxDB。
  • I : InfluxDB - 存储数据&发送数据到 Chronograf。
  • C : Chronograf - 总的用户界面,起到总的管理功能。
  • K : Kapacitor - 后台处理报警信息。
Last Modified: September 11, 2023