彻底搞懂时序数据库InfluxDB,在SpringBoot整合InfluxDB( 二 )


文章插图
 
其中time为time字段,记录数据产生的时间;cpu_usage和memory_usage分别代表CPU使用率和内存使用率,因此他们是field字段,真正的监控数据;cpu 和host代表CPU的名字和服务器IP,所以,他们是tag字段,用于查询和检索 。
在使用和设计InfluxDB数据结构时,需要注意以下几点:
 

  • 1. tag 只能为字符串类型,可以加索引;
  • 2. field 类型无限制,不能加索引;
  • 3. InfluxDB不支持 join;
  • 4. InfluxDB支持连续查询操作(汇总统计数据):CONTINUOUS QUERY;
 
三、InfluxDB安装
InfluxDB安装非常简单,根据操作系统执行对应的安装命令即可 。这里以window为例,演示如何安装InfluxDB 。
3.1 下载
InfluxDB:https://dl.influxdata.com/influxdb/releases/influxdb-1.7.4_windows_amd64.zip
chronograf :https://dl.influxdata.com/chronograf/releases/chronograf-1.7.8_windows_amd64.zip
chronograf为InfluxDB的Web后台管理端,InfluxDB提供了控制台命令端,如果使用不习惯,可以使用chronograf 。
3.2 解压安装包
软件下载成功后,解压,我们可以看到influxDB的数据库文件非常简单 。如下图所示:
彻底搞懂时序数据库InfluxDB,在SpringBoot整合InfluxDB

文章插图
 
3.3 修改配置文件
InfluxDB 的数据存储主要有三个目录 。默认情况下是 meta, wal 以及 data 三个目录,程序启动后会自动生成 。
 
  • meta 用于存储数据库的一些元数据,meta 目录下有一个 meta.db 文件 。
  • wal 目录存放预写日志文件,以 .wal 结尾 。
  • data 目录存放实际存储的数据文件,以 .tsm 结尾 。
 
接下来修改influxdb.conf 配置文件,修改以下部分的路径 。
彻底搞懂时序数据库InfluxDB,在SpringBoot整合InfluxDB

文章插图
 
另外,InfluxDB服务默认端口为8086,如果需要更改端口号,则增加以下配置 。
彻底搞懂时序数据库InfluxDB,在SpringBoot整合InfluxDB

文章插图
 
3.4 启动InfluxDB服务
配置文件修改完成后,接下来启动InfluxDB服务 。直接运行Influxd.exe使用默认配置运行即可 。如果需要使用自定义的配置文件,则指定conf文件进行启动,启动命令如下:
#先cmd 进入influxDB目录influxd.exe -config influxdb.conf
看到如下输出,说明InfluxDB启动成功 。
彻底搞懂时序数据库InfluxDB,在SpringBoot整合InfluxDB

文章插图
 
四、InfluxDB使用
InfluxQL是一种类似于SQL的查询语言,用于与InfluxDB进行交互 。如果你使用过关系数据库及SQL,那么你可以很快速的掌握InfluxQL 。但是,InfluxQL又不完全是SQL,缺乏SQL中的一些高级的语法,例如UNION,JOIN,HAVING等 。
那么InfluxDB的到底如何操作呢?接下来介绍InfluxQL语言的使用方法 。
4.1 连接InfluxDB服务
进入到InfluxDB目录后,在cmd中输入influx命令即可,命令如下:
# 使用Command命令行进入influxdbinflux -port 8086
如果使用的是默认配置,可以不需要加端口,直接influx即可 。
彻底搞懂时序数据库InfluxDB,在SpringBoot整合InfluxDB

文章插图
 
4.2 操作InfluxDB
InfluxQL与SQL命令语法类似 。接下来我们看一看InfluxQL 是怎么使用的?
4.2.1创建数据库# 创建数据库CREATE DATABASE weiz_tes# 显示所有数据库SHOW DATABASES# 删除数据库DROP DATABASE weiz_test# 使用数据库USE weiz_test
4.2.2 表操作
1.创建表
InfluxDB没有专门的创建表的命令,当插入一条数据point至某A表时,此A表会自动创建,并且表的格式、字段名、字段类型也由此条插入命令决定 。
2.修改表
InfluxDB没有修改表的命令,但当插入一条新数据point至表A时,如果此point中的字段多于原A表的字段,会自动修改A表与此条插入数据的格式字段等一致 。


推荐阅读