前言
InfluxDB是一个时序性数据库,详细资料如下
http://liubin.org/blog/2016/02/18/tsdb-intro/

下载和安装
LZ从官网下载的是influxdb-1.2.4_windows_amd64这个版本,这种数据库不需要安装,解压后配置完毕直接使用,解压后的文件为

influx.exe---->influxdb 命令行客户端
influxd.exe---->influxdb服务器
influxdb.conf---->配置文件,指定对应数据存储文件的位置、日志信息、连接数量、连接时间等等功能的具体配置

主要需要修改的内容如下:
meta部分

data部分

retention部分

shard-percreation部分

monitor部分

admin部分

bind-address端口视服务器端口使用情况而定,这个端口是用来通过浏览器访问的
http部分

这个端口是用来通过程序来访问的,各种参数的具体含义详见
https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20170206_InfluxDB%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE.md

启动
通过cmd打开window的命令窗口,进入到influxdb的放置目录,执行命令:influxd.exe -config influxdb.conf即可开启influxdb服务,同时按照上面配置文件产生相应的文件

通过http://127.0.0.1:8089即可实现图形化的访问,其中8087是influxdb.conf文件中admin部分bind-address所指定的,在浏览器中输入这个地址即可实现图形化的访问

http请求的方式为http://178.24.1.3:8086,其中178.24.1.3为当前window机器的IP地址,8086为influxdb.conf文件中http部分bind-address所指定的,这种方式是供程序访问的地址;

另外,还可以直接打开influx.exe,通过influxDB提供的命令来查询数据库中的内容;

备份
备份数据库时,按照influxdb.conf文件中meta、data部分指定的meta、data、wal目录,将这三个目录备份即可;

基础概念
InfluxDB教程
https://www.linuxdaxue.com/influxdb-study-series-manual.html

Java持久层框架
官方提供目前只提供了通过http api访问数据库的方式,我们用GitHub上的开源框架与数据库进行交互,项目地址为:https://github.com/influxdata/influxdb-java,主要实现类如下

InfluxDBFactory
是一个工厂类,可以通过如下方式返回一个InfluxDB的实例

InfluxDB influxDB = InfluxDBFactory.connect("http://172.17.0.2:8086", "111", "111");
1
InfluxDBImpl
实现了InfluxDB接口,提供了对数据库操作的基本方法,如新建数据库,删除数据库,插入数据,进行查询

Point
相当于关系型数据库中的一行数据,因为此类数据库一行数据在图中一般显示为一个点,故为Point,可以此类添加行数据,如tag(索引列)field(普通列)

Query
通过要执行的SQL和数据库名构造Query对象,作为参数传递到InfluxDBImpl类的查询方法中,即可返回一个QueryResult对象,里面封装了查询生成的数据

QueryResult
这个类比较复杂

public class QueryResult {
private List<Result> results;
private String error;

public static class Result {
private List<Series> series;
private String error;
}

public static class Series {
private String name;
private Map<String, String> tags;
private List<String> columns;
private List<List<Object>> values;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
其中Result和Series为QueryResult的内部类,嵌套比较深,取数据比较麻烦,取数据的方法大都类似于

Object obj = queryResult.getResults().get(0).getSeries().get(0).getValues().get(0).get(1);
1
这种方法

InfluxDBResultMapper
可以通过如下方式将查询结构映射到一个Bean中

InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
List<NewBean> cpuList = resultMapper.toPOJO(queryResult, NewBean.class);
1
2
其中NewBean是一个POJO类

注意事项
通过StringBuilder拼接SQL语句,进行查询,注意不能单独查询tag列,必须有一个field列

推荐

————————————————
版权声明:本文为CSDN博主「Java识堂」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zzti_erlie/article/details/76422871

InfluxDB入门教程的更多相关文章

  1. InfluxDB学习系列教程,InfluxDB入门必备教程

    nfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统. 本文是一系列InfluxDB学习教程的目录,现主 ...

  2. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  3. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  4. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  5. Content Security Policy 入门教程

    阮一峰文章:Content Security Policy 入门教程

  6. gulp详细入门教程

    本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...

  7. UE4新手引导入门教程

    请大家去这个地址下载:file:///D:/UE4%20Doc/虚幻4新手引导入门教程.pdf

  8. ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  9. webpack入门教程之初识loader(二)

    上一节我们学习了webpack的安装和编译,这一节我们来一起学习webpack的加载器和配置文件. 要想让网页看起来绚丽多彩,那么css就是必不可少的一份子.如果想要在应用中增加一个css文件,那么w ...

随机推荐

  1. B-Tree目录和Hash索引的区别

    Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-T ...

  2. java之rpc/orm

    Netty线程模型 其中ChannelPiepline的设计模型采用的是Handler组成的责任链模型 blocking I/O 阻塞nonblocking I/O 非阻塞I/O multiplexi ...

  3. nginx 重发机制导致的重复扣款问题

    问题:    nginx 重发机制导制重复提交(客户还款,被扣俩笔款,前端调用一次,后端执行2次) proxy_next_upstream 语法: proxy_next_upstream error ...

  4. LINQ to DataSet,对离线数据的Linq支持、AsEnumeable()

    一.DataTable的扩展方法: 1.DataTable转Linq:AsEnumerable 方法 返回IEnumerable<T>对象,其中泛型参数T是DataRow. 此对象可用在 ...

  5. Springboot AOP写操作日志 GET POST

    pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  6. node.js接收异步任务结果的两种方法----callback和事件广播

    事件广播 发送方调用emit方法,接收方调用on方法,无论发送方或是接收方,都会工作在一个频道 声明了一个模块,用于读取mime.json中的记录 var fs = require('fs'); va ...

  7. How to change the default browser in Visual Studio

    http://www.hanselman.com/blog/HowToChangeTheDefaultBrowserInVisualStudioProgrammaticallyWithPowerShe ...

  8. set/unset

    自定义一个变量 name=value 查看现有变量 删除变量或函数 unset name

  9. Solr 7.X 安装和配置--Linux篇

    1. 关闭防火墙和Selinux 2. 安装所需环境JDK 3. 下载Solr7.4版本 4. 下载并配置solr的中文分词器IK Analyzer 5. 启动Solr 6. 注意事项以及说明 1. ...

  10. 使用Excel拼凑SQL语句

       快速将一列多行数据合并到一个单元格            EXCEL如何快速将一列多行数据合并到一个单元格,并加分隔符?这是批量处理由一线业务员统计的数据时的常用方法,尤其是当一列数据是wher ...