InfluxDB使用并本地搭建启动?手把手教学!

👨‍🎓作者:bug菌

✏️博客:CSDN、掘金、infoQ、51CTO等

🎉简介:CSDN|阿里云|华为云|51CTO等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金 | InfoQ | 51CTO等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。

...

✍️温馨提醒:本文字数:1999字, 阅读完需:约 5 分钟

🏆本文收录于《Spring Boot从入门到精通》,专门攻坚指数提升。

本专栏致力打造最硬核 Spring Boot 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中...欢迎大家订阅持续学习。

js 复制代码
环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

1. 前言🔥

前几期我们陆续讲解了Mysql、Redis、PostgreSQL、MongoDB等数据库集成及使用案例,接下来,bug菌继续给同学们介绍一种特殊的数据库,到底是什么数据库呢?它就是InfluxDB(时序数据库),那它究竟是什么数据库呢?闻所未闻?以及它在Spring Boot应用中又是如何被集成及使用的呢?它跟以往的数据库有何同异?...既然疑问如此之多,那就让我们带着这些问题,接着往下看咯。

那么,这将又会是干货满满的一期,全程无尿点不废话只抓重点教,具有非常好的学习效果,拿好小板凳准备就坐!希望学习的过程中大家认真听好好学,学习的途中有任何不清楚或疑问的地方皆可评论区留言或私信,bug菌将第一时间给予解惑,那么废话不多说,直接开整!Fighting!!

2.环境说明🔥

本地的开发环境:

  • 开发工具:IDEA 2021.3
  • JDK版本: JDK 1.8
  • Spring Boot版本:2.3.1 RELEASE
  • Maven版本:3.8.2

3.InfluxDB 概述🔥

3.1 InfluxDB简介

InfluxDB是什么?它是一个用于存储和分析时间序列数据的开源数据库。由 Golang 语言编写,也是由 Golang 编写的软件中比较优秀的一个,在很多 Golang 的沙龙或者文章中都可能会把 InfluxDB 当标杆来介绍,这也间接帮助 InfluxDB 提高了知名度。

对于时序数据而言,它是一组按照时间维度索引的数据。时序数据在日常生活中也是随处可见,比如整点的温度、湿度等天气数据,每分钟的股票价格数据等。我们常见到的曲线图、柱状图等形式,就可以用来展现时序数据,这也就是我们常常听到的"数据可视化"。

时序数据库是一种非关系型数据库,以时间作为数据主键,专门用来存储时序数据。

而且在市面上,目前比较流行的时序数据库有:InfluxDB、TDengine、Prometheus、OpenTSDB等,其中InfluxDB在行业内应用使用最广泛。与此同时,刚进入业内视野的国产时序数据库TDengine也是后起之秀。对于Prometheus,它则是Prometheus监控系统中自带的数据库。

3.2 InfluxDB与Mysql类比

如下类比了关系型数据库Mysql,其实概念大差不差,辅助同学们更好的理解它。

mysql influxdb 备注
database database 数据库
table measurement 数据库
record point 一行记录数据

拓展: InfluxDB数据库由database、measurement、point等三部分构成。分别对应关系数据库中的数据库、表、数据行,具体概念分别如下:

  • database:数据库.同Mysql等关系型数据库中的"数据库Database"
  • measurement:数据表.相当于关系型数据库中的"表Table"
  • point:数据点.表示单条数据记录,相当于关系型数据库中的"一行数据"

其中,Point是InfluxDB中独有的概念,一个Point由time、field、tags三类字段组成,其中三类字段及概念分别如下:

  • time:时间戳
  • fields:记录的值
  • tags:索引的属性

3.3 InfluxDB特点

  • 内置 HTTP 接口,使用方便。
  • 数据可以打标记,这样查询可以很灵活。
  • 类 SQL 的查询语句。
  • 安装管理很简单,并且读写数据很高效。
  • 能够实时查询,数据在写入时被索引后就能够被立即查出。

在最新的 DB-ENGINES(全球知名的数据库流行度排行榜网站) 公布的时间序列数据库排行榜中,InfluxDB 位于榜首,可想而知,InfluxDB 会越来越得到开发者及社区的广泛使用,形势一片大好。

3.4 InfluxDB使用场景

阅读完以上内容,想必同学们对时序数据库InfluxDB就有了一定的了解,那么,可能大家就会想它可以适用于那些场景呢?这可能是目前大家心里及其迫切想要知道的,必须学习个新东西,好歹要知道这个可以干什么用,用在那些地方,对吧。心急吃不了热豆腐,同学们接着往下看。

  • IOT行业:电力、化工等工业物联网数据监测。
  • 金融行业:各类金融产品及其衍生品、数字货币数据存储与量化研究。
  • IT行业:服务器、虚拟机、容器等的状态数据实时监测。
  • 互联网行业:用户行为轨迹,日志等数据。

这样同学们心里就有个清楚的认知,它大概可以干嘛用了吧,其实更多的领域它一样也能派上用场,任何一个数据库被设计出来, 往往局限它的不是数据库本身,而是使用者。

4. InfluxDB安装🔥

4.1 前言

接下里,我们就进行数据库的安装教学啦。对于InfluxDB的安装,非常之简单,根据操作系统执行对应的安装命令即可。这里我以window10系统为例,给同学们演示一波Windows下如何安装InfluxDB。

4.2 下载安装包

InfluxDB下载url:dl.influxdata.com/influxdb/re...

chronograf 下载url:dl.influxdata.com/chronograf/...

注意: chronograf 是 InfluxDB的可视化后台管理端,虽然InfluxDB也提供了控制台命令端,如果你使用不习惯,可以使用chronograf 可视化工具进行操作,例如Navicat。

4.2 解压安装包

本地下载好后,这里我们可以看到分别有两个压缩包,influxdb-1.7.4_windows_amd64.zip 与 chronograf-1.7.8_windows_amd64.zip,接下来是分别进行解压。

4.2.1 解压influxdb

influxdb-1.7.4_windows_amd64.zip解压后,我们可以看到influxDB的数据库文件非常简单。如下图所示:

4.2.2 修改配置文件

由于 InfluxDB 的数据存储主要有三个目录。默认情况下是 meta、wal 、 data 这三个目录,InfluxDB 应用程序启动后会自动生成,这个我们后续启动了再验证。

  • meta 用于存储数据库的一些元数据,meta 目录下有一个 meta.db 文件。
  • wal 目录存放预写日志文件,以 .wal 结尾。
  • data 目录存放实际存储的数据文件,以 .tsm 结尾。

由于配置文件指定的默认路径,我们需要将其改为我们自己自定义的路径,方便查阅。

所以接下来我们需要对influxdb.conf 配置文件进行修改,修改如下三个地方的路径指向。

这里我们直接在安装路径下的路径,比如:E:\InfluxDB\influxdb-1.7.4-1,这个改成你们本地安装路径即可。修改样例如下:

ini 复制代码
//第26行
原:dir = "/var/lib/influxdb/meta"
新:dir = "E:/InfluxDB/influxdb-1.7.4-1/meta"
ini 复制代码
//第45行
原:dir = "/var/lib/influxdb/data"
新:dir = "E:/InfluxDB/influxdb-1.7.4-1/data"
ini 复制代码
//第48行
原:wal-dir = "/var/lib/influxdb/wal"
新:wal-dir = "E:/InfluxDB/influxdb-1.7.4-1/wal"

4.2.3 修改端口

InfluxDB服务默认端口为8086,如果你需要指定端口号,则可以修改如下配置。配置文件的第256行,将端口号设置放开并指定你想要的端口号即可,一般我是端口号默认即可。

4.3 启动服务

配置文件修改后,我们记得保存一下,如何启动InfluxDB服务?很坚定,直接运行Influxd.exe使用默认配置运行即可,这里也可以使用自定义的配置文件,则指定conf文件进行启动,自定义配置使用的启动命令如下:

先cmd 进入influxDB目录,然后执行以下命令即可:

influxd.exe -config influxdb.conf

如果就使用默认配置启动,则直接双击【Influxd.exe】即可启动。

双击【Influxd.exe】后会直接弹出一个小黑窗口,如果你的窗口内容看到如下输出,则就说明InfluxDB服务启动成功了。

到此,InfluxDB服务就启动好了。

4.4 InfluxDB使用

对于关系型数据库,例如Mysql,它有它自己的sql语法规则,而 InfluxDB 的也有它的sql语法---InfluxQL。InfluxQL是一种类似于SQL的查询语言,用于与InfluxDB数据库进行交互。

如果你有使用关系数据库及SQL的基础,那么你可以非常快的掌握InfluxQL。但是,InfluxQL与SQL又不全一样,它缺乏SQL中的一些高级的语法,例如union,having、join等。

接下来,我们就来演示一下InfluxQL语言的使用方法。

4.5 连接InfluxDB服务

进入到InfluxDB安装目录后,选中文件全路径,输入cmd回车。会弹出小黑框。

然后在cmd小黑框中输入:influx 即可。

为此你就可以在该输入框中进行sql执行啦,接下来我带着大家进行学习并实践操作一下吧。

... ...

ok,以上就是我这期的全部内容啦,如果还想学习更多,你可以看看如下的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬。

「赠人玫瑰,手留余香」,咱们下期拜拜~~

5. 热文推荐💭

若想学习更多,可以参考这篇专栏总结《2023最新首发,全网最全 Spring Boot 学习宝典(附思维导图)》本专栏致力打造最硬核 Spring Boot 进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中。欢迎大家订阅持续学习。

在入门及进阶之途,我必助你一臂之力,系统性学习,从入门到精通,带你不走弯路,直奔终点;投资自己,永远性价比最高,都这么说了,你还不赶紧来学??

本文涉及所有源代码,均已上传至github开源,供同学们一对一参考 GitHub传送门

同时,原创开源不易,欢迎给个star🌟,想体验下被🌟的感jio,非常感谢❗

6. 文末💭

我是bug菌,CSDN | 阿里云 | 华为云 | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金 | InfoQ | 51CTO等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。

相关推荐
Michael_lcf6 小时前
Java的UDP通信:DatagramSocket和DatagramPacket
java·开发语言·udp
摇滚侠6 小时前
Spring Boot 3零基础教程,WEB 开发 HttpMessageConverter @ResponseBody 注解实现内容协商源码分析 笔记33
java·spring boot·笔记
计算机毕业设计小帅6 小时前
【2026计算机毕业设计】基于Springboot的校园电动车短租平台
spring boot·后端·课程设计
调试人生的显微镜6 小时前
Web前端开发工具实战指南 从开发到调试的完整提效方案
后端
静心观复6 小时前
drawio画java的uml的类图时,class和interface的区别是什么
java·uml·draw.io
Java水解6 小时前
【SQL】MySQL中空值处理COALESCE函数
后端·mysql
Laplaces Demon6 小时前
Spring 源码学习(十四)—— HandlerMethodArgumentResolver
java·开发语言·学习
guygg886 小时前
Java 无锁方式实现高性能线程
java·开发语言
ss2736 小时前
手写Spring第7弹:Spring IoC容器深度解析:XML配置的完整指南
java·前端·数据库
Python私教6 小时前
DRF:Django REST Framework框架介绍
后端·python·django