From ae3e9f142b9b7a2c3ad9c10b1a9f363ec84d6b21 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Fri, 27 Sep 2024 15:19:26 +0800 Subject: [PATCH] [improvement][headless]Rename `METRIC` query type enum to `AGGREGATE`. --- .../execute/DimensionRecommendProcessor.java | 2 +- .../processor/execute/MetricRatioProcessor.java | 2 +- .../processor/execute/MetricRecommendProcessor.java | 2 +- .../supersonic/common/pojo/enums/QueryType.java | 6 +++--- .../headless/chat/corrector/GroupByCorrector.java | 2 +- .../headless/chat/corrector/TimeCorrector.java | 2 +- .../headless/chat/parser/QueryTypeParser.java | 2 +- .../headless/chat/utils/QueryReqBuilder.java | 2 +- .../server/processor/ParseInfoProcessor.java | 2 +- .../headless/server/utils/QueryReqConverter.java | 2 +- .../headless/server/utils/QueryNLReqBuilderTest.java | 2 +- .../java/com/tencent/supersonic/chat/MetricTest.java | 12 ++++++------ .../com/tencent/supersonic/chat/MultiTurnsTest.java | 6 +++--- .../com/tencent/supersonic/headless/BaseTest.java | 4 ++-- 14 files changed, 24 insertions(+), 24 deletions(-) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java index ee86e7cf4..3031fe366 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/DimensionRecommendProcessor.java @@ -29,7 +29,7 @@ public class DimensionRecommendProcessor implements ExecuteResultProcessor { @Override public void process(ExecuteContext executeContext, QueryResult queryResult) { SemanticParseInfo semanticParseInfo = executeContext.getParseInfo(); - if (!QueryType.METRIC.equals(semanticParseInfo.getQueryType()) + if (!QueryType.AGGREGATE.equals(semanticParseInfo.getQueryType()) || CollectionUtils.isEmpty(semanticParseInfo.getMetrics())) { return; } diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRatioProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRatioProcessor.java index 912a36846..559f5f602 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRatioProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRatioProcessor.java @@ -61,7 +61,7 @@ public class MetricRatioProcessor implements ExecuteResultProcessor { AggregatorConfig aggregatorConfig = ContextUtils.getBean(AggregatorConfig.class); if (CollectionUtils.isEmpty(semanticParseInfo.getMetrics()) || !aggregatorConfig.getEnableRatio() - || !QueryType.METRIC.equals(semanticParseInfo.getQueryType())) { + || !QueryType.AGGREGATE.equals(semanticParseInfo.getQueryType())) { return; } AggregateInfo aggregateInfo = diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRecommendProcessor.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRecommendProcessor.java index a0e1e6480..bc1bb884d 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRecommendProcessor.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/processor/execute/MetricRecommendProcessor.java @@ -37,7 +37,7 @@ public class MetricRecommendProcessor implements ExecuteResultProcessor { } private void fillSimilarMetric(SemanticParseInfo parseInfo) { - if (!parseInfo.getQueryType().equals(QueryType.METRIC) + if (!parseInfo.getQueryType().equals(QueryType.AGGREGATE) || parseInfo.getMetrics().size() > METRIC_RECOMMEND_SIZE || CollectionUtils.isEmpty(parseInfo.getMetrics())) { return; diff --git a/common/src/main/java/com/tencent/supersonic/common/pojo/enums/QueryType.java b/common/src/main/java/com/tencent/supersonic/common/pojo/enums/QueryType.java index b55ae6e54..8a2d80a66 100644 --- a/common/src/main/java/com/tencent/supersonic/common/pojo/enums/QueryType.java +++ b/common/src/main/java/com/tencent/supersonic/common/pojo/enums/QueryType.java @@ -2,9 +2,9 @@ package com.tencent.supersonic.common.pojo.enums; /** Enumerate query types supported by SuperSonic. */ public enum QueryType { - /** queries with metric calculation (optionally slice and dice by dimensions) */ - METRIC, - /** queries with tag-based entity targeting */ + /** queries with aggregation (optionally slice and dice by dimensions) */ + AGGREGATE, + /** queries with field selection */ DETAIL, /** queries with ID-based entity selection */ ID; diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/GroupByCorrector.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/GroupByCorrector.java index c045bf930..1c930bf9c 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/GroupByCorrector.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/GroupByCorrector.java @@ -33,7 +33,7 @@ public class GroupByCorrector extends BaseSemanticCorrector { private Boolean needAddGroupBy( ChatQueryContext chatQueryContext, SemanticParseInfo semanticParseInfo) { - if (!QueryType.METRIC.equals(semanticParseInfo.getQueryType())) { + if (!QueryType.AGGREGATE.equals(semanticParseInfo.getQueryType())) { return false; } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/TimeCorrector.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/TimeCorrector.java index 0142f96ab..4deeb6b49 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/TimeCorrector.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/TimeCorrector.java @@ -53,7 +53,7 @@ public class TimeCorrector extends BaseSemanticCorrector { if (CollectionUtils.isEmpty(whereFields) || !whereFields.contains(partitionDimension)) { TimeDefaultConfig timeConfig; QueryConfig queryConfig = dataSetSchema.getQueryConfig(); - if (QueryType.METRIC.equals(semanticParseInfo.getQueryType())) { + if (QueryType.AGGREGATE.equals(semanticParseInfo.getQueryType())) { timeConfig = queryConfig.getAggregateTypeDefaultConfig().getTimeDefaultConfig(); } else { timeConfig = queryConfig.getDetailTypeDefaultConfig().getTimeDefaultConfig(); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/QueryTypeParser.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/QueryTypeParser.java index b2f3fe7fd..3e4c09da4 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/QueryTypeParser.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/QueryTypeParser.java @@ -73,7 +73,7 @@ public class QueryTypeParser implements SemanticParser { // 2. metric queryType if (selectContainsMetric(sqlInfo, dataSetId, semanticSchema) || SqlSelectFunctionHelper.hasAggregateFunction(sqlInfo.getParsedS2SQL())) { - return QueryType.METRIC; + return QueryType.AGGREGATE; } return QueryType.DETAIL; diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java index 96ba82fd8..495bc113c 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java @@ -259,7 +259,7 @@ public class QueryReqBuilder { public static QueryStructReq buildStructRatioReq( SemanticParseInfo parseInfo, SchemaElement metric, AggOperatorEnum aggOperatorEnum) { QueryStructReq queryStructReq = buildStructReq(parseInfo); - queryStructReq.setQueryType(QueryType.METRIC); + queryStructReq.setQueryType(QueryType.AGGREGATE); queryStructReq.setOrders(new ArrayList<>()); List aggregators = new ArrayList<>(); Aggregator ratioRoll = new Aggregator(metric.getBizName(), aggOperatorEnum); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/processor/ParseInfoProcessor.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/processor/ParseInfoProcessor.java index 1b061c9bc..b27295ecb 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/processor/ParseInfoProcessor.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/processor/ParseInfoProcessor.java @@ -74,7 +74,7 @@ public class ParseInfoProcessor implements ResultProcessor { parseInfo.setMetrics(metrics); // extract dimensions from S2SQL - if (QueryType.METRIC.equals(parseInfo.getQueryType())) { + if (QueryType.AGGREGATE.equals(parseInfo.getQueryType())) { List groupByFields = SqlSelectHelper.getGroupByFields(s2SQL); List groupByDimensions = filterDateField(dsSchema, groupByFields); parseInfo.setDimensions( diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java index 6c4dff481..80e8d84ae 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java @@ -294,7 +294,7 @@ public class QueryReqConverter { boolean isAgg = AggOption.isAgg(aggOption); QueryType queryType = QueryType.DETAIL; if (isAgg) { - queryType = QueryType.METRIC; + queryType = QueryType.AGGREGATE; } return queryType; } diff --git a/headless/server/src/test/java/com/tencent/supersonic/headless/server/utils/QueryNLReqBuilderTest.java b/headless/server/src/test/java/com/tencent/supersonic/headless/server/utils/QueryNLReqBuilderTest.java index 9c1394130..409579961 100644 --- a/headless/server/src/test/java/com/tencent/supersonic/headless/server/utils/QueryNLReqBuilderTest.java +++ b/headless/server/src/test/java/com/tencent/supersonic/headless/server/utils/QueryNLReqBuilderTest.java @@ -29,7 +29,7 @@ class QueryNLReqBuilderTest { QueryStructReq queryStructReq = new QueryStructReq(); queryStructReq.setDataSetId(1L); queryStructReq.setDataSetName("内容库"); - queryStructReq.setQueryType(QueryType.METRIC); + queryStructReq.setQueryType(QueryType.AGGREGATE); Aggregator aggregator = new Aggregator(); aggregator.setFunc(AggOperatorEnum.UNKNOWN); diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MetricTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MetricTest.java index dfe81272b..59a9fce6d 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MetricTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MetricTest.java @@ -46,7 +46,7 @@ public class MetricTest extends BaseTest { expectedParseInfo.setDateInfo( DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay)); - expectedParseInfo.setQueryType(QueryType.METRIC); + expectedParseInfo.setQueryType(QueryType.AGGREGATE); assertQueryResult(expectedResult, actualResult); } @@ -68,7 +68,7 @@ public class MetricTest extends BaseTest { expectedParseInfo.setDateInfo( DataUtils.getDateConf( DateConf.DateMode.BETWEEN, 7, DatePeriodEnum.DAY, startDay, endDay)); - expectedParseInfo.setQueryType(QueryType.METRIC); + expectedParseInfo.setQueryType(QueryType.AGGREGATE); assertQueryResult(expectedResult, actualResult); } @@ -94,7 +94,7 @@ public class MetricTest extends BaseTest { expectedParseInfo.setDateInfo( DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay)); - expectedParseInfo.setQueryType(QueryType.METRIC); + expectedParseInfo.setQueryType(QueryType.AGGREGATE); assertQueryResult(expectedResult, actualResult); } @@ -116,7 +116,7 @@ public class MetricTest extends BaseTest { expectedParseInfo.setDateInfo( DataUtils.getDateConf(3, DateConf.DateMode.BETWEEN, DatePeriodEnum.DAY)); - expectedParseInfo.setQueryType(QueryType.METRIC); + expectedParseInfo.setQueryType(QueryType.AGGREGATE); assertQueryResult(expectedResult, actualResult); } @@ -136,7 +136,7 @@ public class MetricTest extends BaseTest { expectedParseInfo.setDateInfo( DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay)); - expectedParseInfo.setQueryType(QueryType.METRIC); + expectedParseInfo.setQueryType(QueryType.AGGREGATE); assertQueryResult(expectedResult, actualResult); } @@ -166,7 +166,7 @@ public class MetricTest extends BaseTest { expectedParseInfo.setDateInfo( DataUtils.getDateConf(DateConf.DateMode.BETWEEN, 1, period, startDay, startDay)); - expectedParseInfo.setQueryType(QueryType.METRIC); + expectedParseInfo.setQueryType(QueryType.AGGREGATE); assertQueryResult(expectedResult, actualResult); } diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MultiTurnsTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MultiTurnsTest.java index 2ceb3af2b..9b86195bc 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MultiTurnsTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/chat/MultiTurnsTest.java @@ -38,7 +38,7 @@ public class MultiTurnsTest extends BaseTest { expectedParseInfo.setDateInfo( DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay)); - expectedParseInfo.setQueryType(QueryType.METRIC); + expectedParseInfo.setQueryType(QueryType.AGGREGATE); assertQueryResult(expectedResult, actualResult); } @@ -67,7 +67,7 @@ public class MultiTurnsTest extends BaseTest { expectedParseInfo.setDateInfo( DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay)); - expectedParseInfo.setQueryType(QueryType.METRIC); + expectedParseInfo.setQueryType(QueryType.AGGREGATE); assertQueryResult(expectedResult, actualResult); } @@ -94,7 +94,7 @@ public class MultiTurnsTest extends BaseTest { expectedParseInfo.setDateInfo( DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay)); - expectedParseInfo.setQueryType(QueryType.METRIC); + expectedParseInfo.setQueryType(QueryType.AGGREGATE); assertQueryResult(expectedResult, actualResult); } diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/BaseTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/BaseTest.java index 5732f6d47..5f765a562 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/BaseTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/BaseTest.java @@ -47,7 +47,7 @@ public class BaseTest extends BaseApplication { } protected QueryStructReq buildQueryStructReq(List groups) { - return buildQueryStructReq(groups, QueryType.METRIC); + return buildQueryStructReq(groups, QueryType.AGGREGATE); } protected QueryStructReq buildQueryStructReq(List groups, QueryType queryType) { @@ -84,7 +84,7 @@ public class BaseTest extends BaseApplication { for (Long modelId : DataUtils.getMetricAgentIModelIds()) { queryStructReq.addModelId(modelId); } - queryStructReq.setQueryType(QueryType.METRIC); + queryStructReq.setQueryType(QueryType.AGGREGATE); queryStructReq.setAggregators(Arrays.asList(aggregator)); if (CollectionUtils.isNotEmpty(groups)) {