Centos MacBook Docker离线安装InfluxDB超级简单
maven依赖InfluxDB
org.influxdb
influxdb-java
2.14
InfluxDB配置
spring:
influx:
url: http://192.168.1.5:8086
user: admin
password: abcd_2021
database: demo
InfluxDB配置类
package com.beyond.data.config;
import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory;
import org.influxdb.dto.BatchPoints;
import org.influxdb.dto.Point;
import org.influxdb.dto.Query;
import org.influxdb.dto.QueryResult;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Component
@Configuration
public class InfluxDBConfig {
@Value("${spring.influx.user}")
private String userName;
@Value("${spring.influx.password}")
private String password;
@Value("${spring.influx.url}")
private String url;
//数据库
@Value("${spring.influx.database}")
private String database;
//保留策略
private String retentionPolicy;
private InfluxDB influxDB;
public InfluxDBConfig(){}
public InfluxDBConfig(String userName, String password, String url, String database) {
this.userName = userName;
this.password = password;
this.url = url;
this.database = database;
// autogen默认的数据保存策略
this.retentionPolicy = retentionPolicy == null || "".equals(retentionPolicy) ? "autogen" : retentionPolicy;
this.influxDB = influxDbBuild();
}
/**
* 设置数据保存策略 defalut 策略名 /database 数据库名/ 30d 数据保存时限30天/ 1 副本个数为1/ 结尾DEFAULT
* 表示 设为默认的策略
*/
public void createRetentionPolicy() {
String command = String.format("CREATE RETENTION POLICY \"%s\" ON \"%s\" DURATION %s REPLICATION %s DEFAULT",
"defalut", database, "30d", 1);
this.query(command);
}
/**
* 连接时序数据库;获得InfluxDB
**/
private InfluxDB influxDbBuild() {
if (influxDB == null) {
influxDB = InfluxDBFactory.connect(url, userName, password);
influxDB.setDatabase(database);
}
return influxDB;
}
/**
* 插入
* @param measurement 表
* @param tags 标签
* @param fields 字段
*/
public void insert(String measurement, Map tags, Map fields) {
influxDbBuild();
Point.Builder builder = Point.measurement(measurement);
builder.time(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
builder.tag(tags);
builder.fields(fields);
influxDB.write(database, "", builder.build());
}
/**
* @desc 插入,带时间time
* @date 2021/3/27
*@param measurement
*@param time
*@param tags
*@param fields
* @return void
*/
public void insert(String measurement, long time, Map tags, Map fields) {
influxDbBuild();
Point.Builder builder = Point.measurement(measurement);
builder.time(time, TimeUnit.MILLISECONDS);
builder.tag(tags);
builder.fields(fields);
influxDB.write(database, "", builder.build());
}
/**
* @desc influxDB开启UDP功能,默认端口:8089,默认数据库:udp,没提供代码传数据库功能接口
* @date 2021/3/13
*@param measurement
*@param time
*@param tags
*@param fields
* @return void
*/
public void insertUDP(String measurement, long time, Map tags, Map fields) {
influxDbBuild();
Point.Builder builder = Point.measurement(measurement);
builder.time(time, TimeUnit.MILLISECONDS);
builder.tag(tags);
builder.fields(fields);
int udpPort = 8089;
influxDB.write(udpPort, builder.build());
}
/**
* 查询
* @param command 查询语句
* @return
*/
public QueryResult query(String command) {
influxDbBuild();
return influxDB.query(new Query(command, database));
}
/**
* @desc 查询结果处理
* @date 2021/5/12
*@param queryResult
*/
public List
调用
@Autowired
private InfluxDBConfig influxDBConfig;
......
influxDBConfig.insert(measurement, tags, fields);