Java查询influxdb工具类
时间: 2025-01-06 07:47:10 浏览: 6
### Java InfluxDB 客户端库介绍
为了在Java项目中操作InfluxDB,可以使用官方提供的`influxdb-client-java`库[^2]。这个客户端库支持多种功能,包括写入数据、查询数据以及管理数据库资源。
#### 添加依赖项
如果正在使用Maven构建项目,则可以在项目的`pom.xml`文件中添加如下依赖:
```xml
<dependency>
<groupId>com.influxdb</groupId>
<artifactId>influxdb-client-java</artifactId>
<version>6.7.0</version>
</dependency>
```
对于Gradle用户,在`build.gradle`中加入下面的内容即可:
```groovy
implementation 'com.influxdb:influxdb-client-java:6.7.0'
```
#### 创建连接实例
创建一个新的`InfluxDBClient`对象来建立与服务器之间的通信链接:
```java
import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxDBClientFactory;
// 使用URL和Token初始化客户端
final String url = "http://localhost:8086";
final String token = "my-token";
InfluxDBClient influxDBClient = InfluxDBClientFactory.create(url, token.toCharArray());
```
#### 执行基本操作
##### 写入数据点
向指定的bucket内插入新的时间序列记录:
```java
import com.influxdb.client.WriteApi;
import com.influxdb.client.domain.WritePrecision;
import com.influxdb.client.write.Point;
WriteApi writeApi = influxDBClient.getWriteApi();
Point point = Point.measurement("measurementName")
.addTag("tagKey", "tagValue")
.addField("fieldKey", fieldValue)
.time(System.currentTimeMillis(), WritePrecision.MS);
writeApi.writePoint(bucket, org, point);
```
##### 查询数据集
从存储桶读取符合条件的数据条目并处理返回的结果集合:
```java
import com.influxdb.client.QueryApi;
import reactor.core.publisher.Flux;
QueryApi queryApi = influxDBClient.getQueryApi();
String fluxQuery = "from(bucket:\"your-1h)";
Flux<String> result = queryApi.queryStream(fluxQuery).map(it -> it.getValueByKey("_value").toString());
result.subscribe(System.out::println);
```
关闭会话前记得释放资源:
```java
influxDBClient.close();
```
阅读全文