保密数据要做其他项目测试,在真实数据上,模拟二批数据。
Main
java
public class CreateData {
public static void main(String[] args) throws Exception{
DataBean dataBean1 = new DataBean("root.sup.X",1745418062000L,1745421716000L,1);
DataBean dataBean2 = new DataBean("root.sup.XX",1745421716000L,1745427788000L,1);
DataBean dataBean3 = new DataBean("root.sup.XXX",1745445744000L,1745447163000L,1);
DataBean dataBean4 = new DataBean("root.sup.AAA",1745447163000L,1745448978000L,1);
DataBean dataBean5 = new DataBean("root.sup.A",1745448978000L,1745448995000L,1);
DataBean dataBean6 = new DataBean("root.sup.AA",1745508341000L,1745508743000L,1);
DataBean dataBean7 = new DataBean("root.sup.CCC",1745508341000L,1745508743000L,1);
DataBean dataBean11 = new DataBean("root.sup.DDD",1745152727000L,1745156692000L,0);
DataBean dataBean12 = new DataBean("root.sup.EEE",1745156692000L,1745191639000L,0);
DataBean dataBean13 = new DataBean("root.sup.FFF",1745215381000L,1745216471000L,0);
DataBean dataBean14 = new DataBean("root.sup.HHH",1745216471000L,1745218287000L,0);
DataBean dataBean15 = new DataBean("root.sup.KKK",1745218287000L,1745218303000L,0);
DataBean dataBean16 = new DataBean("root.sup.LLL",1745276411000L,1745278204000L,0);
DataBean dataBean17 = new DataBean("root.sup.MMM",1745276411000L,1745278204000L,0);
List<DataBean> list = new ArrayList<>(14);
list.add(dataBean1);
list.add(dataBean2);
list.add(dataBean3);
list.add(dataBean4);
list.add(dataBean5);
list.add(dataBean6);
list.add(dataBean7);
list.add(dataBean11);
list.add(dataBean12);
list.add(dataBean13);
list.add(dataBean14);
list.add(dataBean15);
list.add(dataBean16);
list.add(dataBean17);
Session session = new Session("192.168.0.204",6667,"root","root");
session.open();
Session session2 = new Session("127.0.0.1",6667,"root","root");
session2.open();
for (DataBean bean : list) {
SessionDataSet dataSet = session.executeQueryStatement("select s0 from "+ bean.getIotCode() +" where time > "+bean.getStart()+" and time < "+bean.getEnd());
dataSet.setFetchSize(102400);
List<String> devices = new ArrayList<>();
List<Long> timestamps = new ArrayList<>();
List<List<String>> measurements = new ArrayList<>();
List<List<TSDataType>> dataTypes = new ArrayList<>();
List<List<Object>> values = new ArrayList<>();
while (dataSet.hasNext()){
RowRecord record = dataSet.next();
devices.add(bean.getIotCode());
timestamps.add(record.getTimestamp());
measurements.add(Collections.singletonList("s0"));
dataTypes.add(Collections.singletonList(TSDataType.FLOAT));
BigDecimal value = new BigDecimal(record.getFields().get(0).getStringValue());
if (bean.getFactor() == 1) {
value = value.multiply(new BigDecimal(RandomUtil.randomDouble(0.9F,0.95F)))
.setScale(6, RoundingMode.DOWN);
}else {
value = value.multiply(new BigDecimal(RandomUtil.randomDouble(0.4F,0.9F)))
.setScale(6, RoundingMode.DOWN);
}
values.add(Collections.singletonList(value.floatValue()));
}
session2.insertRecords(devices,timestamps,measurements,dataTypes,values);
}
}
}
bean
java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DataBean {
private String iotCode;
private long start;
private long end;
/**
* 1 true 0 false
*/
private int factor;
}