引入依赖
<dependency>
<groupId>org.influxdb</groupId>
<artifactId>influxdb-java</artifactId>
<version>2.23</version>
</dependency>
测试程序
package world.xuewei;
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.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class InfluxConnTest {
private InfluxDB influxDB;
@Before
public void getConnection() {
influxDB = InfluxDBFactory.connect("http://ip:port", "username", "password");
}
@After
public void closeConnection() {
influxDB.close();
}
@Test
public void testDataBase() {
influxDB.query(new Query("create database logs"));
influxDB.setDatabase("history");
QueryResult queryResult = influxDB.query(new Query("show databases"));
System.out.println(queryResult);
influxDB.query(new Query("drop database logs"));
boolean logs = influxDB.databaseExists("logs");
QueryResult result = influxDB.query(new Query("show databases"));
List<QueryResult.Result> results = result.getResults();
results.forEach(res -> {
List<QueryResult.Series> series = res.getSeries();
for (QueryResult.Series value : series) {
List<List<Object>> values = value.getValues();
values.forEach(System.out::println);
}
});
}
@Test
public void testMeasurement() {
QueryResult queryResult = influxDB.query(new Query("show measurements"));
System.out.println(queryResult);
influxDB.query(new Query("drop measurement test"));
}
@Test
public void testInsert() {
influxDB.setDatabase("history");
Point point = Point.measurement("actual")
.tag("id", "10")
.tag("origin", "slave")
.addField("cpu", 25.0)
.addField("wind", 19.0)
.addField("power", 34.2)
.time(new Date().getTime(), TimeUnit.MILLISECONDS)
.build();
influxDB.write(point);
}
@Test
public void testBatchInsert() {
influxDB.setDatabase("history");
Point point = Point.measurement("actual")
.tag("id", "10")
.tag("origin", "slave")
.addField("cpu", 25.0)
.addField("wind", 19.0)
.addField("power", 34.2)
.time(new Date().getTime(), TimeUnit.MILLISECONDS)
.build();
influxDB.write(BatchPoints.builder().points(point).build());
}
@Test
public void testQuery() {
influxDB.setDatabase("history");
QueryResult queryResult = influxDB.query(new Query(" select * from actual"));
System.out.println(queryResult);
List<QueryResult.Result> results = queryResult.getResults();
for (QueryResult.Result result : results) {
List<QueryResult.Series> series = result.getSeries();
for (QueryResult.Series serie : series) {
List<String> columns = serie.getColumns();
List<List<Object>> values = serie.getValues();
for (int i = 0; i < values.size(); i++) {
List<Object> points = values.get(i);
for (int j = 0; j < points.size(); j++) {
System.out.println("column: " + columns.get(j) + " value: " + points.get(j));
}
System.out.println("=======================================");
}
}
}
}
@Test
public void testPolicy() {
influxDB.setDatabase("history");
QueryResult queryResult = influxDB.query(new Query("show retention policies"));
System.out.println(queryResult);
influxDB.query(new Query("create retention policy history_policy on history duration 168h replication 1 shard duration 168h default"));
QueryResult queryResult1 = influxDB.query(new Query("show retention policies"));
System.out.println(queryResult1);
influxDB.query(new Query("alter retention policy autogen on history default "));
influxDB.query(new Query("drop retention policy history_policy on history"));
QueryResult queryResult2 = influxDB.query(new Query("show retention policies"));
System.out.println(queryResult2);
}
}