首页 > 其他分享 >InfluxDB(1):安装

InfluxDB(1):安装

时间:2022-11-18 18:06:45浏览次数:62  
标签:10 安装 数据库 InfluxDB 时序 查询 数据

InfluxDB使用场景

InfluxDB 是一种时序数据库,时序数据库通常被用在监控场景,比如运维和 IOT(物联网)领域。这类数据库旨在存储时序数据并实时处理它们。

比如。我们可以写一个程序将服务器上 CPU 的使用情况每隔 10 秒钟向 InfluxDB 中写 入一条数据。接着,我们写一个查询语句,查询过去 30 秒 CPU 的平均使用情况,然后让这个查询语句也每隔 10 秒钟执行一次。最终,我们配置一条报警规则,如果查询语句的执行结果>xxx,就立刻触发报警。

上述就是一个指标监控的场景,在 IOT 领域中,也有大量的指标需要我们监控。比如, 机械设备的轴承震动频率,农田的湿度温度等等。

为什么不用关系型数据库

写入性能

关系型数据库也是支持时间戳的,也能够基于时间戳进行查询。但是,从我们的使用场景出发,需要注意数据库的写入性能。通常,关系型数据库会采用 B+树数据结构,在数据写入时,有可能会触发叶裂变,从而产生了对磁盘的随机读写,降低写入速度

当前市面上的时序数据库通常都是采用 LSM Tree 的变种,顺序写磁盘来增强数据的写入能力。网上有不少关于性能测试的文章,同学们可以自己去参考学习,通常时序数据库都会保证在单点每秒数十万的写入能力。

数据价值

时序数据库一般用于指标监控场景。

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

时间不可倒流,数据只写不改

时序数据是描述一个实体在不同时间所处的不同状态。

就像是我们打开任务管理器,查看 CPU 的使用情况。我发现 CPU 占用率太高了,于是杀死了一个进程,但 10 秒前的数据不会因为我关闭进程再发生改变了。

这是时序数据的一大特点。与之相应,时序数据库基本上是插入操作较多,而且还没有什么更新需求。

1.X 的 TICK 技术栈与 2.X 的进一步融合

根据上文的介绍,我们首先可以知道时序数据一般用在监控场景。大体上,数据的应 用可以分为 4 步走。

  • 数据采集
  • 存储
  • 查询(包括聚合操作)
  • 报警

这样一看,只给一个数据库其实只能完成数据的存储和查询功能,上游的采集和下游的报警都需要自己来实现。因此 InfluxData 在 InfluxDB1.X 的时候推出了 TICK 生态来推出 start 全套的解决方案。

TICK4 个字母分别对应 4 个组件。

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

image-20221117162811507

到了 2.x,TICK 进一步融合,ICK 的功能全部融入了 InfluxDB,仅需安装 InfluxDB 就能得到一个管理页面,而且附带了定时任务和报警功能。

influxDB 版本说明

2020 年 InfluxDB 推出了 2.0 的正式版。2.x 同 1.x 相比,底层引擎原理相差不大,但会涉及一些概念的转变(例如 db/rp 换成了 org/bucket)。另外,对于 TICK 生态来说,1.x 需要自己配置各个组件。2.x 则是更加方便集成,有很棒的管理页面。

另外,在查询语言方面,1.x 是使用 InfluxQL 进行查询,它的风格近似 SQL。2.x 推出了 FLUX 查询语言,可以使用函数与管道符,是一种更符合时序数据特性的更具表现力的查询语言。

InfluxDB 从 0.11 版本开始,就闭源了集群功能的代码。也就是说,你只能免费试用 InfluxDB 的单节点版(开源),想要集群等功能就需要购买企业版。

不过就 InfluxDB 1.8 来说,有开源项目根据 0.11 的代码思路提供了 InfluxDB 开源的集群方案。

也有开源项目给 InfluxDB 2.3 增加了反向代理功能,让我们可以横向拓展 InfluxDB 的服务能 力。项目参考地址:

InfluxDB Cluster 对应 1.8.10:https://github.com/chengshiwen/influxdb-cluster

InfluxDB Proxy 对应 1.2 - 1.8:https://github.com/chengshiwen/influx-proxy

InfluxDB Proxy 对应 2.3:https://github.com/chengshiwen/influx-proxy/tree/influxdb-v2

Centos安装

wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.5.1.x86_64.rpm
sudo yum localinstall influxdb2-2.5.1.x86_64.rpm
sudo service influxdb start
sudo service influxdb status

image-20221117172604045

访问http://ip:8086

第一次进入,设置用户名密码,组织和存储桶,初始化InfluxDB

image-20221117172658529

快速开始:

image-20221117172817763

image-20221117172922857

基本使用

创建一个桶,然后通过行协议插入数据:

数据内容

home num=40 1668679808999

image-20221117181202849

成功的内容返回的绿色图标:

image-20221117181243450

查看数据:

image-20221117182342513

标签:10,安装,数据库,InfluxDB,时序,查询,数据
From: https://www.cnblogs.com/wwjj4811/p/16904113.html

相关文章