mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 03:58:14 +00:00
[improvement][headless]Rename METRIC query type enum to AGGREGATE.
This commit is contained in:
@@ -29,7 +29,7 @@ public class DimensionRecommendProcessor implements ExecuteResultProcessor {
|
|||||||
@Override
|
@Override
|
||||||
public void process(ExecuteContext executeContext, QueryResult queryResult) {
|
public void process(ExecuteContext executeContext, QueryResult queryResult) {
|
||||||
SemanticParseInfo semanticParseInfo = executeContext.getParseInfo();
|
SemanticParseInfo semanticParseInfo = executeContext.getParseInfo();
|
||||||
if (!QueryType.METRIC.equals(semanticParseInfo.getQueryType())
|
if (!QueryType.AGGREGATE.equals(semanticParseInfo.getQueryType())
|
||||||
|| CollectionUtils.isEmpty(semanticParseInfo.getMetrics())) {
|
|| CollectionUtils.isEmpty(semanticParseInfo.getMetrics())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public class MetricRatioProcessor implements ExecuteResultProcessor {
|
|||||||
AggregatorConfig aggregatorConfig = ContextUtils.getBean(AggregatorConfig.class);
|
AggregatorConfig aggregatorConfig = ContextUtils.getBean(AggregatorConfig.class);
|
||||||
if (CollectionUtils.isEmpty(semanticParseInfo.getMetrics())
|
if (CollectionUtils.isEmpty(semanticParseInfo.getMetrics())
|
||||||
|| !aggregatorConfig.getEnableRatio()
|
|| !aggregatorConfig.getEnableRatio()
|
||||||
|| !QueryType.METRIC.equals(semanticParseInfo.getQueryType())) {
|
|| !QueryType.AGGREGATE.equals(semanticParseInfo.getQueryType())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
AggregateInfo aggregateInfo =
|
AggregateInfo aggregateInfo =
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class MetricRecommendProcessor implements ExecuteResultProcessor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void fillSimilarMetric(SemanticParseInfo parseInfo) {
|
private void fillSimilarMetric(SemanticParseInfo parseInfo) {
|
||||||
if (!parseInfo.getQueryType().equals(QueryType.METRIC)
|
if (!parseInfo.getQueryType().equals(QueryType.AGGREGATE)
|
||||||
|| parseInfo.getMetrics().size() > METRIC_RECOMMEND_SIZE
|
|| parseInfo.getMetrics().size() > METRIC_RECOMMEND_SIZE
|
||||||
|| CollectionUtils.isEmpty(parseInfo.getMetrics())) {
|
|| CollectionUtils.isEmpty(parseInfo.getMetrics())) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ package com.tencent.supersonic.common.pojo.enums;
|
|||||||
|
|
||||||
/** Enumerate query types supported by SuperSonic. */
|
/** Enumerate query types supported by SuperSonic. */
|
||||||
public enum QueryType {
|
public enum QueryType {
|
||||||
/** queries with metric calculation (optionally slice and dice by dimensions) */
|
/** queries with aggregation (optionally slice and dice by dimensions) */
|
||||||
METRIC,
|
AGGREGATE,
|
||||||
/** queries with tag-based entity targeting */
|
/** queries with field selection */
|
||||||
DETAIL,
|
DETAIL,
|
||||||
/** queries with ID-based entity selection */
|
/** queries with ID-based entity selection */
|
||||||
ID;
|
ID;
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class GroupByCorrector extends BaseSemanticCorrector {
|
|||||||
|
|
||||||
private Boolean needAddGroupBy(
|
private Boolean needAddGroupBy(
|
||||||
ChatQueryContext chatQueryContext, SemanticParseInfo semanticParseInfo) {
|
ChatQueryContext chatQueryContext, SemanticParseInfo semanticParseInfo) {
|
||||||
if (!QueryType.METRIC.equals(semanticParseInfo.getQueryType())) {
|
if (!QueryType.AGGREGATE.equals(semanticParseInfo.getQueryType())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class TimeCorrector extends BaseSemanticCorrector {
|
|||||||
if (CollectionUtils.isEmpty(whereFields) || !whereFields.contains(partitionDimension)) {
|
if (CollectionUtils.isEmpty(whereFields) || !whereFields.contains(partitionDimension)) {
|
||||||
TimeDefaultConfig timeConfig;
|
TimeDefaultConfig timeConfig;
|
||||||
QueryConfig queryConfig = dataSetSchema.getQueryConfig();
|
QueryConfig queryConfig = dataSetSchema.getQueryConfig();
|
||||||
if (QueryType.METRIC.equals(semanticParseInfo.getQueryType())) {
|
if (QueryType.AGGREGATE.equals(semanticParseInfo.getQueryType())) {
|
||||||
timeConfig = queryConfig.getAggregateTypeDefaultConfig().getTimeDefaultConfig();
|
timeConfig = queryConfig.getAggregateTypeDefaultConfig().getTimeDefaultConfig();
|
||||||
} else {
|
} else {
|
||||||
timeConfig = queryConfig.getDetailTypeDefaultConfig().getTimeDefaultConfig();
|
timeConfig = queryConfig.getDetailTypeDefaultConfig().getTimeDefaultConfig();
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class QueryTypeParser implements SemanticParser {
|
|||||||
// 2. metric queryType
|
// 2. metric queryType
|
||||||
if (selectContainsMetric(sqlInfo, dataSetId, semanticSchema)
|
if (selectContainsMetric(sqlInfo, dataSetId, semanticSchema)
|
||||||
|| SqlSelectFunctionHelper.hasAggregateFunction(sqlInfo.getParsedS2SQL())) {
|
|| SqlSelectFunctionHelper.hasAggregateFunction(sqlInfo.getParsedS2SQL())) {
|
||||||
return QueryType.METRIC;
|
return QueryType.AGGREGATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return QueryType.DETAIL;
|
return QueryType.DETAIL;
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ public class QueryReqBuilder {
|
|||||||
public static QueryStructReq buildStructRatioReq(
|
public static QueryStructReq buildStructRatioReq(
|
||||||
SemanticParseInfo parseInfo, SchemaElement metric, AggOperatorEnum aggOperatorEnum) {
|
SemanticParseInfo parseInfo, SchemaElement metric, AggOperatorEnum aggOperatorEnum) {
|
||||||
QueryStructReq queryStructReq = buildStructReq(parseInfo);
|
QueryStructReq queryStructReq = buildStructReq(parseInfo);
|
||||||
queryStructReq.setQueryType(QueryType.METRIC);
|
queryStructReq.setQueryType(QueryType.AGGREGATE);
|
||||||
queryStructReq.setOrders(new ArrayList<>());
|
queryStructReq.setOrders(new ArrayList<>());
|
||||||
List<Aggregator> aggregators = new ArrayList<>();
|
List<Aggregator> aggregators = new ArrayList<>();
|
||||||
Aggregator ratioRoll = new Aggregator(metric.getBizName(), aggOperatorEnum);
|
Aggregator ratioRoll = new Aggregator(metric.getBizName(), aggOperatorEnum);
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ public class ParseInfoProcessor implements ResultProcessor {
|
|||||||
parseInfo.setMetrics(metrics);
|
parseInfo.setMetrics(metrics);
|
||||||
|
|
||||||
// extract dimensions from S2SQL
|
// extract dimensions from S2SQL
|
||||||
if (QueryType.METRIC.equals(parseInfo.getQueryType())) {
|
if (QueryType.AGGREGATE.equals(parseInfo.getQueryType())) {
|
||||||
List<String> groupByFields = SqlSelectHelper.getGroupByFields(s2SQL);
|
List<String> groupByFields = SqlSelectHelper.getGroupByFields(s2SQL);
|
||||||
List<String> groupByDimensions = filterDateField(dsSchema, groupByFields);
|
List<String> groupByDimensions = filterDateField(dsSchema, groupByFields);
|
||||||
parseInfo.setDimensions(
|
parseInfo.setDimensions(
|
||||||
|
|||||||
@@ -294,7 +294,7 @@ public class QueryReqConverter {
|
|||||||
boolean isAgg = AggOption.isAgg(aggOption);
|
boolean isAgg = AggOption.isAgg(aggOption);
|
||||||
QueryType queryType = QueryType.DETAIL;
|
QueryType queryType = QueryType.DETAIL;
|
||||||
if (isAgg) {
|
if (isAgg) {
|
||||||
queryType = QueryType.METRIC;
|
queryType = QueryType.AGGREGATE;
|
||||||
}
|
}
|
||||||
return queryType;
|
return queryType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class QueryNLReqBuilderTest {
|
|||||||
QueryStructReq queryStructReq = new QueryStructReq();
|
QueryStructReq queryStructReq = new QueryStructReq();
|
||||||
queryStructReq.setDataSetId(1L);
|
queryStructReq.setDataSetId(1L);
|
||||||
queryStructReq.setDataSetName("内容库");
|
queryStructReq.setDataSetName("内容库");
|
||||||
queryStructReq.setQueryType(QueryType.METRIC);
|
queryStructReq.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
Aggregator aggregator = new Aggregator();
|
Aggregator aggregator = new Aggregator();
|
||||||
aggregator.setFunc(AggOperatorEnum.UNKNOWN);
|
aggregator.setFunc(AggOperatorEnum.UNKNOWN);
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class MetricTest extends BaseTest {
|
|||||||
|
|
||||||
expectedParseInfo.setDateInfo(
|
expectedParseInfo.setDateInfo(
|
||||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
||||||
expectedParseInfo.setQueryType(QueryType.METRIC);
|
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
assertQueryResult(expectedResult, actualResult);
|
assertQueryResult(expectedResult, actualResult);
|
||||||
}
|
}
|
||||||
@@ -68,7 +68,7 @@ public class MetricTest extends BaseTest {
|
|||||||
expectedParseInfo.setDateInfo(
|
expectedParseInfo.setDateInfo(
|
||||||
DataUtils.getDateConf(
|
DataUtils.getDateConf(
|
||||||
DateConf.DateMode.BETWEEN, 7, DatePeriodEnum.DAY, startDay, endDay));
|
DateConf.DateMode.BETWEEN, 7, DatePeriodEnum.DAY, startDay, endDay));
|
||||||
expectedParseInfo.setQueryType(QueryType.METRIC);
|
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
assertQueryResult(expectedResult, actualResult);
|
assertQueryResult(expectedResult, actualResult);
|
||||||
}
|
}
|
||||||
@@ -94,7 +94,7 @@ public class MetricTest extends BaseTest {
|
|||||||
|
|
||||||
expectedParseInfo.setDateInfo(
|
expectedParseInfo.setDateInfo(
|
||||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
||||||
expectedParseInfo.setQueryType(QueryType.METRIC);
|
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
assertQueryResult(expectedResult, actualResult);
|
assertQueryResult(expectedResult, actualResult);
|
||||||
}
|
}
|
||||||
@@ -116,7 +116,7 @@ public class MetricTest extends BaseTest {
|
|||||||
|
|
||||||
expectedParseInfo.setDateInfo(
|
expectedParseInfo.setDateInfo(
|
||||||
DataUtils.getDateConf(3, DateConf.DateMode.BETWEEN, DatePeriodEnum.DAY));
|
DataUtils.getDateConf(3, DateConf.DateMode.BETWEEN, DatePeriodEnum.DAY));
|
||||||
expectedParseInfo.setQueryType(QueryType.METRIC);
|
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
assertQueryResult(expectedResult, actualResult);
|
assertQueryResult(expectedResult, actualResult);
|
||||||
}
|
}
|
||||||
@@ -136,7 +136,7 @@ public class MetricTest extends BaseTest {
|
|||||||
|
|
||||||
expectedParseInfo.setDateInfo(
|
expectedParseInfo.setDateInfo(
|
||||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
||||||
expectedParseInfo.setQueryType(QueryType.METRIC);
|
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
assertQueryResult(expectedResult, actualResult);
|
assertQueryResult(expectedResult, actualResult);
|
||||||
}
|
}
|
||||||
@@ -166,7 +166,7 @@ public class MetricTest extends BaseTest {
|
|||||||
|
|
||||||
expectedParseInfo.setDateInfo(
|
expectedParseInfo.setDateInfo(
|
||||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, 1, period, startDay, startDay));
|
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, 1, period, startDay, startDay));
|
||||||
expectedParseInfo.setQueryType(QueryType.METRIC);
|
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
assertQueryResult(expectedResult, actualResult);
|
assertQueryResult(expectedResult, actualResult);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class MultiTurnsTest extends BaseTest {
|
|||||||
|
|
||||||
expectedParseInfo.setDateInfo(
|
expectedParseInfo.setDateInfo(
|
||||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
||||||
expectedParseInfo.setQueryType(QueryType.METRIC);
|
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
assertQueryResult(expectedResult, actualResult);
|
assertQueryResult(expectedResult, actualResult);
|
||||||
}
|
}
|
||||||
@@ -67,7 +67,7 @@ public class MultiTurnsTest extends BaseTest {
|
|||||||
|
|
||||||
expectedParseInfo.setDateInfo(
|
expectedParseInfo.setDateInfo(
|
||||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
||||||
expectedParseInfo.setQueryType(QueryType.METRIC);
|
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
assertQueryResult(expectedResult, actualResult);
|
assertQueryResult(expectedResult, actualResult);
|
||||||
}
|
}
|
||||||
@@ -94,7 +94,7 @@ public class MultiTurnsTest extends BaseTest {
|
|||||||
|
|
||||||
expectedParseInfo.setDateInfo(
|
expectedParseInfo.setDateInfo(
|
||||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
||||||
expectedParseInfo.setQueryType(QueryType.METRIC);
|
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||||
|
|
||||||
assertQueryResult(expectedResult, actualResult);
|
assertQueryResult(expectedResult, actualResult);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class BaseTest extends BaseApplication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected QueryStructReq buildQueryStructReq(List<String> groups) {
|
protected QueryStructReq buildQueryStructReq(List<String> groups) {
|
||||||
return buildQueryStructReq(groups, QueryType.METRIC);
|
return buildQueryStructReq(groups, QueryType.AGGREGATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected QueryStructReq buildQueryStructReq(List<String> groups, QueryType queryType) {
|
protected QueryStructReq buildQueryStructReq(List<String> groups, QueryType queryType) {
|
||||||
@@ -84,7 +84,7 @@ public class BaseTest extends BaseApplication {
|
|||||||
for (Long modelId : DataUtils.getMetricAgentIModelIds()) {
|
for (Long modelId : DataUtils.getMetricAgentIModelIds()) {
|
||||||
queryStructReq.addModelId(modelId);
|
queryStructReq.addModelId(modelId);
|
||||||
}
|
}
|
||||||
queryStructReq.setQueryType(QueryType.METRIC);
|
queryStructReq.setQueryType(QueryType.AGGREGATE);
|
||||||
queryStructReq.setAggregators(Arrays.asList(aggregator));
|
queryStructReq.setAggregators(Arrays.asList(aggregator));
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(groups)) {
|
if (CollectionUtils.isNotEmpty(groups)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user