in backup-core/src/main/java/org/apache/iotdb/backup/core/service/ExportPipelineService.java [426:465]
private TimeSeriesRowModel conformToRowData(
List<IField>[] lists,
List<List<TimeseriesModel>> groupTimeseriesList,
DeviceModel deviceModel,
Long timestamp) {
TimeSeriesRowModel model = new TimeSeriesRowModel();
model.setDeviceModel(deviceModel);
model.setTimestamp(String.valueOf(timestamp));
for (int i = 0; i < groupTimeseriesList.size(); i++) {
List<TimeseriesModel> timeseriesList = groupTimeseriesList.get(i);
Map<String, TSDataType> dataTypeMap =
timeseriesList.stream().collect(Collectors.toMap(s -> s.getName(), s -> s.getType()));
if (model.getIFieldList() == null) {
model.setIFieldList(new ArrayList<>());
}
if (lists[i] != null) {
// 解决查询出来的数据 不带tsDataType问题
lists[i].stream()
.forEach(
iField -> {
TSDataType type = dataTypeMap.get(iField.getColumnName());
iField.setTsDataType(type);
});
model.getIFieldList().addAll(lists[i]);
} else {
List<IField> fillingEmptyIFieldList =
timeseriesList.stream()
.map(
s -> {
IField iField = new IField();
iField.setColumnName(s.getName());
iField.setTsDataType(s.getType());
return iField;
})
.collect(Collectors.toList());
model.getIFieldList().addAll(fillingEmptyIFieldList);
}
}
return model;
}