IotDB批量数据脱敏DEMO
保密数据要做其他项目测试,在真实数据上,模拟二批数据。
Main
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
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DataBean {private String iotCode;private long start;private long end;/*** 1 true 0 false*/private int factor;
}