package com.ysl.influx;
import org.influxdb.InfluxDB;
import org.influxdb.dto.Point;
import org.influxdb.dto.Query;
import org.influxdb.dto.QueryResult;
import java.util.Map;public classInfluxdbService {privateString database;privateString policyName;privateInfluxDB influxDB;publicInfluxdbService(String database, String policyName, InfluxDB influxDB) {this.database =database;this.policyName =policyName;this.influxDB =influxDB;
}public voidcreateDatabase(){
influxDB.createDatabase(database);
}/**
* 建保存策略
* @param duration 存放时间
* @param replicationNum 备份数量*/
public voidcreateRetentionPolicy(String duration, Integer replicationNum){
String cmd= String.format("CREATE RETENTION POLICY %s ON %s DURATION %s REPLICATION %s DEFAULT",policyName,database,duration,replicationNum);
influxDB.query(newQuery(cmd,database));
}publicQueryResult query(String cmd){return influxDB.query(newQuery(cmd,database));
}/**
* 插入数据
* @param measurement 表名
* @param tags
* @param fields*/
public void insert(String measurement,Map tags,Mapfields){
Point.Builder builder=Point.measurement(measurement).tag(tags);if(fields != null && !fields.isEmpty()){
builder.fields(fields);
}
influxDB.write(database,policyName,builder.build());
}publicString getDatabase() {returndatabase;
}publicString getPolicyName() {returnpolicyName;
}publicInfluxDB getInfluxDB() {returninfluxDB;
}
}