(improvement)(Headless) Support specifying metrics, tags, and dimensions query modes in the Map phase (#959)

This commit is contained in:
lexluo09
2024-04-28 17:02:32 +08:00
committed by GitHub
parent 83b80e35f0
commit a6724f886b
10 changed files with 91 additions and 23 deletions

View File

@@ -12,6 +12,9 @@ import com.tencent.supersonic.headless.api.pojo.SchemaValueMap;
import com.tencent.supersonic.headless.api.pojo.response.DataSetSchemaResp;
import com.tencent.supersonic.headless.api.pojo.response.DimSchemaResp;
import com.tencent.supersonic.headless.api.pojo.response.MetricSchemaResp;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -21,10 +24,6 @@ import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
public class DataSetSchemaBuilder {
public static DataSetSchema build(DataSetSchemaResp resp) {
@@ -77,6 +76,7 @@ public class DataSetSchemaBuilder {
.type(SchemaElementType.TAG)
.useCnt(metric.getUseCnt())
.alias(alias)
.isTag(metric.getIsTag())
.build();
tags.add(tagToAdd);
}
@@ -109,6 +109,7 @@ public class DataSetSchemaBuilder {
.useCnt(dim.getUseCnt())
.alias(alias)
.schemaValueMaps(schemaValueMaps)
.isTag(dim.getIsTag())
.build();
tags.add(tagToAdd);
}
@@ -157,6 +158,7 @@ public class DataSetSchemaBuilder {
.useCnt(dim.getUseCnt())
.alias(alias)
.schemaValueMaps(schemaValueMaps)
.isTag(dim.getIsTag())
.build();
dimensions.add(dimToAdd);
}
@@ -188,6 +190,7 @@ public class DataSetSchemaBuilder {
.type(SchemaElementType.VALUE)
.useCnt(dim.getUseCnt())
.alias(new ArrayList<>(Arrays.asList(dimValueAlias.toArray(new String[0]))))
.isTag(dim.getIsTag())
.build();
dimensionValues.add(dimValueToAdd);
}
@@ -213,6 +216,7 @@ public class DataSetSchemaBuilder {
.relatedSchemaElements(getRelateSchemaElement(metric))
.defaultAgg(metric.getDefaultAgg())
.dataFormatType(metric.getDataFormatType())
.isTag(metric.getIsTag())
.build();
metrics.add(metricToAdd);