influxdb JAVA批量插入数据并修改默认time

 使用反射批量插入

  public void insertBatchByPoints(List list){BatchPoints batchPoints = BatchPoints.database(database).consistency(InfluxDB.ConsistencyLevel.ALL).build();list.forEach(object->{Class clasz = object.getClass();//获取度量Measurement measurement = clasz.getAnnotation(Measurement.class);//构建Point.Builder builder = Point.measurement(measurement.name());Field[] fieldArray = clasz.getDeclaredFields();Column column = null;for(Field field : fieldArray){try {column = field.getAnnotation(Column.class);//设置属性可操作field.setAccessible(true);if(column.tag()){//tag属性只能存储String类型builder.tag(column.name(), field.get(object).toString());}else{//设置fieldif(field.get(object) != null){builder.addField(column.name(), field.get(object).toString());}if(field.getName() =="time"){builder.time((long)field.get(object), TimeUnit.NANOSECONDS);}}} catch (IllegalArgumentException | IllegalAccessException e) {e.printStackTrace();}}batchPoints.point(builder.build());});influxDB.write(batchPoints);}

influxdb实体类需要有 long 类型的 time 字段

此处的单位为纳秒,一般为毫秒,可以更改一下单位


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部