This commit is contained in:
caixiang 2022-10-18 09:07:21 +08:00
parent 9b9a6fe315
commit 13075f4507
5 changed files with 147 additions and 3 deletions

View File

@ -170,7 +170,20 @@ public class Main {
//两种写法都可以获取到前三天的日期
// calendar1.set(Calendar.DAY_OF_YEAR,calendar1.get(Calendar.DAY_OF_YEAR) -3);
//在当前时间的基础上获取前三天的日期
calendar1.add(Calendar.DATE, -3);
calendar1.add(Calendar.DATE, -999);
//add方法 参数也可传入 月份获取的是前几月或后几月的日期
//calendar1.add(Calendar.MONTH, -3);
Date day = calendar1.getTime();
return day;
}
public static Date getDateAfter(){
Date date = new Date();//获取当前日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");//格式化一下
Calendar calendar1 = Calendar.getInstance();//获取对日期操作的类对象
//两种写法都可以获取到前三天的日期
// calendar1.set(Calendar.DAY_OF_YEAR,calendar1.get(Calendar.DAY_OF_YEAR) -3);
//在当前时间的基础上获取前三天的日期
calendar1.add(Calendar.DATE, 999);
//add方法 参数也可传入 月份获取的是前几月或后几月的日期
//calendar1.add(Calendar.MONTH, -3);
Date day = calendar1.getTime();

View File

@ -12,6 +12,7 @@ import com.qgs.dc.influx.param.PageInfo;
import com.qgs.dc.influx.param.QueryDataParam;
import com.qgs.dc.influx.param.Range;
import com.qgs.dc.influx.template.Event;
import com.qgs.dc.influx.template.EventString;
import java.util.ArrayList;
import java.util.List;
@ -98,7 +99,18 @@ public enum InfluxClient {
}
writeApi.writePoints(list);
}
public void batchInsertString(List<EventString> events, String measurement){
List<Point> list = new ArrayList<>();
for(EventString event:events){
Point point = Point.measurement(measurement)
.addTag("transationId", event.getTransationId())
.addTag("argName", event.getArgName())
.addField("argValue", event.getArgValue())
.time(event.getTime().toEpochMilli(), WritePrecision.MS);
list.add(point);
}
writeApi.writePoints(list);
}
public List<FluxTable> query(QueryDataParam param){
String measurement = param.getMeasurement();

View File

@ -2,9 +2,12 @@ package com.qgs.dc.influx.controller;
import com.influxdb.client.domain.WritePrecision;
import com.influxdb.client.write.Point;
import com.influxdb.query.FluxRecord;
import com.influxdb.query.FluxTable;
import com.qgs.dc.influx.config.InfluxClient;
import com.qgs.dc.influx.param.InsertParam;
import com.qgs.dc.influx.param.*;
import com.qgs.dc.influx.template.Event;
import com.qgs.dc.influx.template.EventString;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;
@ -13,8 +16,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.qgs.dc.influx.Main.getDate;
import static com.qgs.dc.influx.Main.getDateAfter;
@RestController
@RequestMapping("/influx")
public class InfluxDemoController {
@ -44,6 +51,53 @@ public class InfluxDemoController {
InfluxClient.Client.batchInsert(insertParam.getList(),insertParam.getMeasurement());
}
public static void main(String[] args) throws InterruptedException {
// InsertParamString insertParam = new InsertParamString();
// List<EventString> list = new ArrayList<>();
// EventString event = new EventString();
// event.setTransationId("S1");
// event.setTime(new Date().toInstant());
// event.setArgName("A1");
// event.setArgValue("v1");
//
// EventString event2 = new EventString();
// event2.setTransationId("S1");
// event2.setTime(new Date().toInstant());
// event2.setArgName("A2");
// event2.setArgValue("v2");
// list.add(event);
// list.add(event2);
// insertParam.setList(list);
// insertParam.setMeasurement("CSCSCSCCS");
// InfluxClient.Client.batchInsertString(insertParam.getList(),insertParam.getMeasurement());
InsertParam insertParam = new InsertParam();
List<Event> list = new ArrayList<>();
Event event = new Event();
event.setTransationId("S1");
event.setTime(new Date().toInstant());
event.setArgName("A1");
event.setArgValue((double)3);
Thread.sleep(100);
Event event2 = new Event();
event2.setTransationId("S1");
event2.setTime(new Date().toInstant());
event2.setArgName("A2");
event2.setArgValue((double)4);
list.add(event);
list.add(event2);
insertParam.setList(list);
insertParam.setMeasurement("CSCSCSCCS");
InfluxClient.Client.batchInsert(insertParam.getList(),insertParam.getMeasurement());
}
@PostMapping("/insertBatchString")
public void insertBatchString(@RequestBody InsertParamString insertParam) throws InterruptedException {
InfluxClient.Client.batchInsertString(insertParam.getList(),insertParam.getMeasurement());
}
public Point insert(Event event, String measurement){
Point point = Point.measurement(measurement)
@ -67,7 +121,30 @@ public class InfluxDemoController {
InfluxClient.Client.insert(event,"ASProcessCompleteEvent");
}
@PostMapping("/query")
public void query() throws InterruptedException {
QueryDataParam queryDataParam = new QueryDataParam();
queryDataParam.setBucket("qgs-bucket");
queryDataParam.setRange(new Range(getDate().toInstant(),getDateAfter().toInstant()));
queryDataParam.setMeasurement("ASDASD");
queryDataParam.setTag(new Tag("argName","1233"));
queryDataParam.setDropedTagName("transationId");
queryDataParam.setPageInfo(new PageInfo(1,100));
List<FluxTable> tables = InfluxClient.Client.query(queryDataParam);
// List<FluxTable> tables = queryApi.query(flux);
for (FluxTable fluxTable : tables) {
List<FluxRecord> records = fluxTable.getRecords();
for (FluxRecord fluxRecord : records) {
Object value = fluxRecord.getValueByKey("_value");
System.out.println("time: "+fluxRecord.getTime() +" key:"+fluxRecord.getField()+" value: " + fluxRecord.getValueByKey("_value")+" measurement: " + fluxRecord.getMeasurement());
}
}
System.out.println();
}
}

View File

@ -0,0 +1,19 @@
package com.qgs.dc.influx.param;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.qgs.dc.influx.template.Event;
import com.qgs.dc.influx.template.EventString;
import lombok.Data;
import java.util.List;
/**
* @Desc: ""
* @Author: caixiang
* @DATE: 2022/10/13 16:10
*/
@Data
public class InsertParamString {
List<EventString> list;
String measurement;
}

View File

@ -0,0 +1,23 @@
package com.qgs.dc.influx.template;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Data;
import java.time.Instant;
/**
* @Desc: ""
* @Author: caixiang
* @DATE: 2022/6/25 11:13
*/
@Data
public class EventString {
private Instant time;
private String transationId;
private String argName;
private String argValue;
}