SpringBoot整合TICK(Telegraf+InfluxDB,java大厂面试真题

1.内置HTTP API,所以我们不需要另外写服务端的代码来启动和运行它;

2.它可以为每条数据打上标签,实现更加方便快捷的数据查询;

3.提供类SQL的查询语句,可以实现几乎无成本的SQL学习迁移,方便开发者快速掌握;

4.数据库安装和管理更加简便,快速的数据保存以及读取;

5.它的目的是实时的数据查询响应,当数据进入数据库时将被索引,同时数据的查询结果要在100ms内进行返回。

二、InfluxDB相关概念

|database|field key|field set| |:–😐 :–😐:–: | |field value|measurement|point| |retention policy|series|tag key| |tag set|tag value| timestamp| 下面将对这些概念进行说明。

| time | cpu | usage_idle | host |

| — | :-: | --: | --: |

| 1526035302000000000 | cpu-total | 43.952299828963156 | OS1 |

| 1526035302000000000 | cpu0 | 0 | OS1 |

| 1526035302000000000 | cpu1 | 89.58333333455441 | OS1 |

| 1526035302000000000 | cpu-total | 46.952299823520136 | OS2 |

| 1526035302000000000 | cpu0 | 0 | OS2 |

| 1526035302000000000 | cpu1 | 91.58333339451375 | OS2 |

influxDB是时序性数据库,所以每一条数据都带有时间戳。

服务器cpu数据存在influxDB中的cpu表中,其中cpucpu名称,host为机器名称,time是数据库中每条数据都会自带的时间戳,是fluxDB区别于其他数据库的重要特征之一。usage_idlecpu被称为fields,它是由对应的field key以及field value组成。由于influxDB是时序性数据库,所以每个field value都有对应的时间戳与其进行对应。由上表可知,每组field keyfield value的集合组成了field set

field是influxDB中不可获取的数据组成部分,每一条存放在数据库中的数据都包含field。但是field本身是没有索引的,如果以field为条件进行数据查询的时候,数据库会遍历库中所有的field直到匹配到对应的field,这样的查询是很耗费资源的。所以尽量在索引上去执行数据操作。

以上数据库表中host就相当于tag,因为它是带有索引属性的,通过它作为条件可以进行数据的筛选,意味着通过它来进行查询操作效率更高。

InfluxDB中measurement作为tag,fields和time列的容器,measurement的名字是存储在相关fields数据的描述。 measurement的名字是字符串,相对于传统关系型数据库,influxDB中的measurement就相当于mysql中的table

在样本数据中,measurement census中的所有内容都属于autogenretention policy。 InfluxDB自动创建该存储策略, 它具有无限的持续时间和复制因子设置为1。

现在我们已经熟悉了measurementtag setretention policy,那么现在是讨论series的时候了。 在InfluxDB中,series是共同retention policymeasurementtag set的集合。

| series编号 | retention policy | measurement | tag set |

| — | :-: | --: | --: |

| series 1 | autogen | cpu | host=OS1 |

最后,point就是具有相同timestamp的相同seriesfield集合。

三、InfluxDB数据查询

1.linux环境相关操作

(1) 在linux环境安装好influxDB之后,进入root权限下输入influx,linux显示如下:

这里写图片描述

(2) 输入use telegraf_1,表示使用telegraf_1这个数据库。

这里写图片描述

(3) 输入show measurements,展示该库中存在的表有哪些。后面就可以像普通sql查询一样,使用select语句进行查询的了,但是注意在查询语句后面加上limit做限制,不然会查询出来时间段内所有的数据。

这里写图片描述

SpringBoot工程中需要使用对应的Java Client library来进行相关的数据库操作。在pom文件中引入以下依赖,由于本文需要使用sql的参数化查询功能,所以使用的client版本为2.10。

org.influxdb

influxdb-java

2.10

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

img
img

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V:vip1024b 备注Java获取(资料价值较高,非无偿)
img

最后

学习视频:

大厂面试真题:

HaL-1711582527890)]

最后

学习视频:

[外链图片转存中…(img-JLrUZuOy-1711582527891)]

大厂面试真题:

[外链图片转存中…(img-ySZ5KaUA-1711582527891)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值