InfluxDBConnect java使用
package ssm.spring.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.influxdb.dto.QueryResult;
import org.influxdb.dto.QueryResult.Result;
import org.influxdb.dto.QueryResult.Series;
import org.springframework.beans.BeanWrapperImpl;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
public class InfluxDBConnect {
Util util = new Util();
public static void main(String[] args){
InfluxDBConnect idbc = new InfluxDBConnect();
System.out.println( idbc.getTest());
}
public void createDatabase(){
String url="http://localhost:8086/query";
MultiValueMap<String,String> postParameter=new LinkedMultiValueMap<>();
postParameter.add("q","CREATE DATABASE mydb1");
RestTemplate restTemplate=new RestTemplate();
restTemplate.postForObject(url,postParameter,Object.class);
}
public void write(String pointValue){
String url="http://localhost:8086/write?db=mydb1";
RestTemplate restTemplate=new RestTemplate();
restTemplate.postForObject(url,pointValue,Object.class);
}
public void writeMultiplePoints(){
String url="http://localhost:8086/write?db=mydb1";
String pointValue="my_test_table,host=server02 num=0.67\nmy_test_table,host=server02 num=0.81\ncpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257\ncpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257";
RestTemplate restTemplate=new RestTemplate();
restTemplate.postForObject(url,pointValue,Object.class);
}
public String StringBuilder(){
StringBuilder sb=new StringBuilder();
sb.append("cpu_load_short,host=server02 value=0.67\\n");
sb.append("cpu_load_short,host=server02,region=us-west value=0.55\\n");
sb.append("cpu_load_short,direction=in,host=server01,region=us-west value=2.0\\n");
String str=sb.toString();
return str;
}
public List<Map<String,Object>> getTest(){
RestTemplate restTemplate=new RestTemplate();
String url="http://localhost:8086/query?db=mydb1&q= select * from cpu_load_short";
QueryResult results=restTemplate.getForObject(url,QueryResult.class);
if(results.getResults() == null){
return null;
}
List<String> columns =null;
List<List<Object>> values = null;
for (Result result : results.getResults()) {
List<Series> series= result.getSeries();
for (Series serie : series) {
values = serie.getValues();
columns = serie.getColumns();
System.out.print(values.get(0).get(2)+" ");
System.out.print(columns.get(2)+" ");
}
}
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
for(int i=0;i<values.size();i++) {
Map<String,Object> maps = new HashMap<>();
for(int j=0;j<columns.size();j++) {
maps.put(columns.get(j), values.get(i).get(j));
}
list.add(maps);
}
return list;
}
private List<Map<String,Object>> getQueryData(List<String> columns, List<List<Object>> values){
List<Map<String,Object>> lists = new ArrayList<Map<String,Object>>();
for (List<Object> list : values) {
Map<String,Object> info = new HashMap<>();
BeanWrapperImpl bean = new BeanWrapperImpl(info);
for(int i=0; i< list.size(); i++){
String propertyName = setColumns(columns.get(i));
Object value = list.get(i);
bean.setPropertyValue(propertyName, value);
}
lists.add(info);
}
return lists;
}
private String setColumns(String column){
String[] cols = column.split("_");
StringBuffer sb = new StringBuffer();
for(int i=0; i< cols.length; i++){
String col = cols[i].toLowerCase();
if(i != 0){
String start = col.substring(0, 1).toUpperCase();
String end = col.substring(1).toLowerCase();
col = start + end;
}
sb.append(col);
}
return sb.toString();
}
}