Centos 7 安装 influxdb
一、Introduce(简介)
InfluxDB是使用GO编写的一个开源的分布式时序数据库,无需外部依赖。
你肯定想知道什么是时序数据库?
时序数据库全称为时间序列数据库,时间序列数据库主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)数据,带时间标签的数据库也称为时间序列数据。在有时间的坐标中将这些数据连成线,往过去看可以看成维度报表,揭示其趋势性,规律性。
简单来说就是 一个与时间相关的数据库。
从DB-Engines Ranking of Time Series DBMS可以看出,现在排名第一的TSDB就是influxDB。
二、Install(安装)
centos 安装 influxdb,很简单的。
1、将InfluxDB加入yum源
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
2、安装
#安装
sudo yum install -y influxdb
3、influxdb的状态,启动,关闭
在linux中,systemctl 管理大多数服务,可以执行以下命令
systemctl status influxdb // 查看influxdb的状态
systemctl start influxdb // 启动influxdb服务
systemctl stop influxdb // 停止influxdb服务
4、使用influx进入客户端
三、Operation(操做)
进入客户端之后,我们需要做简单的操作
1、(show databases)查看数据库
show databases;
这里我有一个叫做devops的数据库。
2、(create database)创建数据库
create database test
这里新建一个test数据库
3、(use databases)使用数据库
use test;
使用test数据库
4、(insert measurement)创建所谓的表
use test;
insert disk_free,host=127.0.0.1,monitor_name=test count=1;
select * from disk_free;
disk_free就是measurement的名称,后面相当与属性值
四、Web site(web界面)
我现在还没有办法访问web界面,还存在一些问题
五、Through Java Operation(通过java操作)
别直接运行,你是运行不了的。
我就给出用到的接口代码吧。
这是InfluxDBImpl类的其中一个构造方法。
/**
* Constructs a new {@code InfluxDBImpl}.
*
* @param url
* The InfluxDB server API URL
* @param username
* The InfluxDB user name
* @param password
* The InfluxDB user password
* @param okHttpBuilder
* The OkHttp Client Builder
*/
public InfluxDBImpl(final String url, final String username, final String password, final OkHttpClient.Builder client) {
this(url, username, password, client, ResponseFormat.JSON);
}
这是InfluxDBImpl类里面的查询接口。
/**
* @param command the query command
* @param database the database to query
*/
public Query(final String command, final String database) {
this(command, database, false);
}
这是写的测试类,使用了junit。
@Test
public void test(){
OkHttpClient client=new OkHttpClient.Builder()
.connectTimeout(60, TimeUnit.SECONDS) //设置连接超时
.readTimeout(60, TimeUnit.SECONDS) //设置读超时
.writeTimeout(60,TimeUnit.SECONDS) //设置写超时
.retryOnConnectionFailure(true) //是否自动重连
.build();
InfluxDBImpl influxDB = new InfluxDBImpl("http://192.168.44.237:8086", "root", "root", client.newBuilder());
Query query = new Query("select * from disk_free", "devops");
QueryResult result = influxDB.query(query);
QueryResult.Result oneResult = result.getResults().get(0);
System.out.println("_______________________________________________________");
if (oneResult.getSeries() != null){
System.out.println(oneResult.getSeries().toString());
}
System.out.println("_______________________________________________________");
}
这是一些简单说明。