(improvement)(Headless) Add default time setting for metric and detail query mode (#1095)

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2024-06-05 18:55:05 +08:00
committed by GitHub
parent 008c1c35d8
commit b3b9687041
8 changed files with 19 additions and 23 deletions

View File

@@ -85,7 +85,7 @@ public class QueryRecommendProcessor implements ParseResultProcessor {
ChatQueryRepository chatQueryRepository = ContextUtils.getBean(ChatQueryRepository.class); ChatQueryRepository chatQueryRepository = ContextUtils.getBean(ChatQueryRepository.class);
UpdateWrapper<ChatQueryDO> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<ChatQueryDO> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("question_id", chatQueryDO.getQuestionId()); updateWrapper.eq("question_id", chatQueryDO.getQuestionId());
updateWrapper.set("parse_time_cost", chatQueryDO.getSimilarQueries()); updateWrapper.set("similar_queries", chatQueryDO.getSimilarQueries());
chatQueryRepository.updateChatQuery(chatQueryDO, updateWrapper); chatQueryRepository.updateChatQuery(chatQueryDO, updateWrapper);
} }

View File

@@ -1,10 +1,13 @@
package com.tencent.supersonic.headless.api.pojo; package com.tencent.supersonic.headless.api.pojo;
import com.tencent.supersonic.common.pojo.Constants;
import com.tencent.supersonic.common.pojo.enums.TimeMode;
import lombok.Data; import lombok.Data;
@Data @Data
public class MetricTypeDefaultConfig { public class MetricTypeDefaultConfig {
private TimeDefaultConfig timeDefaultConfig; private TimeDefaultConfig timeDefaultConfig =
new TimeDefaultConfig(7, Constants.DAY, TimeMode.RECENT);
} }

View File

@@ -8,6 +8,6 @@ public class TagTypeDefaultConfig {
private DefaultDisplayInfo defaultDisplayInfo; private DefaultDisplayInfo defaultDisplayInfo;
//default time to filter tag selection results //default time to filter tag selection results
private TimeDefaultConfig timeDefaultConfig; private TimeDefaultConfig timeDefaultConfig = new TimeDefaultConfig();
} }

View File

@@ -3,9 +3,13 @@ package com.tencent.supersonic.headless.api.pojo;
import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.Constants;
import com.tencent.supersonic.common.pojo.enums.TimeMode; import com.tencent.supersonic.common.pojo.enums.TimeMode;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
@Data @Data
@AllArgsConstructor
@NoArgsConstructor
public class TimeDefaultConfig { public class TimeDefaultConfig {
@@ -22,5 +26,4 @@ public class TimeDefaultConfig {
private TimeMode timeMode = TimeMode.LAST; private TimeMode timeMode = TimeMode.LAST;
} }

View File

@@ -3,9 +3,10 @@ package com.tencent.supersonic.headless.api.pojo.request;
import com.tencent.supersonic.headless.api.pojo.DataSetDetail; import com.tencent.supersonic.headless.api.pojo.DataSetDetail;
import com.tencent.supersonic.headless.api.pojo.QueryConfig; import com.tencent.supersonic.headless.api.pojo.QueryConfig;
import com.tencent.supersonic.headless.api.pojo.SchemaItem; import com.tencent.supersonic.headless.api.pojo.SchemaItem;
import java.util.List;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class DataSetReq extends SchemaItem { public class DataSetReq extends SchemaItem {
@@ -15,7 +16,7 @@ public class DataSetReq extends SchemaItem {
private String alias; private String alias;
private QueryConfig queryConfig; private QueryConfig queryConfig = new QueryConfig();
private List<String> admins; private List<String> admins;

View File

@@ -5,12 +5,13 @@ import com.tencent.supersonic.headless.api.pojo.DataSetDetail;
import com.tencent.supersonic.headless.api.pojo.DataSetModelConfig; import com.tencent.supersonic.headless.api.pojo.DataSetModelConfig;
import com.tencent.supersonic.headless.api.pojo.QueryConfig; import com.tencent.supersonic.headless.api.pojo.QueryConfig;
import com.tencent.supersonic.headless.api.pojo.SchemaItem; import com.tencent.supersonic.headless.api.pojo.SchemaItem;
import lombok.Data;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.Data;
import org.springframework.util.CollectionUtils;
@Data @Data
public class DataSetResp extends SchemaItem { public class DataSetResp extends SchemaItem {
@@ -27,7 +28,7 @@ public class DataSetResp extends SchemaItem {
private List<String> adminOrgs = new ArrayList<>(); private List<String> adminOrgs = new ArrayList<>();
private QueryConfig queryConfig; private QueryConfig queryConfig = new QueryConfig();
private List<TagItem> allMetrics = new ArrayList<>(); private List<TagItem> allMetrics = new ArrayList<>();

View File

@@ -47,7 +47,7 @@ public class QueryTypeParser implements SemanticParser {
SemanticParseInfo parseInfo = semanticQuery.getParseInfo(); SemanticParseInfo parseInfo = semanticQuery.getParseInfo();
SqlInfo sqlInfo = parseInfo.getSqlInfo(); SqlInfo sqlInfo = parseInfo.getSqlInfo();
if (Objects.isNull(sqlInfo) || StringUtils.isBlank(sqlInfo.getS2SQL())) { if (Objects.isNull(sqlInfo) || StringUtils.isBlank(sqlInfo.getS2SQL())) {
return QueryType.ID; return QueryType.DETAIL;
} }
//1. entity queryType //1. entity queryType
Long dataSetId = parseInfo.getDataSetId(); Long dataSetId = parseInfo.getDataSetId();
@@ -80,7 +80,7 @@ public class QueryTypeParser implements SemanticParser {
if (selectContainsMetric(sqlInfo, dataSetId, semanticSchema)) { if (selectContainsMetric(sqlInfo, dataSetId, semanticSchema)) {
return QueryType.METRIC; return QueryType.METRIC;
} }
return QueryType.ID; return QueryType.DETAIL;
} }
private static List<String> filterByTimeFields(List<String> whereFields) { private static List<String> filterByTimeFields(List<String> whereFields) {

View File

@@ -22,7 +22,6 @@ import com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum;
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
import com.tencent.supersonic.common.pojo.enums.SensitiveLevelEnum; import com.tencent.supersonic.common.pojo.enums.SensitiveLevelEnum;
import com.tencent.supersonic.common.pojo.enums.StatusEnum; import com.tencent.supersonic.common.pojo.enums.StatusEnum;
import com.tencent.supersonic.common.pojo.enums.TimeMode;
import com.tencent.supersonic.common.pojo.enums.TypeEnums; import com.tencent.supersonic.common.pojo.enums.TypeEnums;
import com.tencent.supersonic.common.util.JsonUtil; import com.tencent.supersonic.common.util.JsonUtil;
import com.tencent.supersonic.headless.api.pojo.DataSetDetail; import com.tencent.supersonic.headless.api.pojo.DataSetDetail;
@@ -38,10 +37,7 @@ import com.tencent.supersonic.headless.api.pojo.MetricDefineByFieldParams;
import com.tencent.supersonic.headless.api.pojo.MetricDefineByMeasureParams; import com.tencent.supersonic.headless.api.pojo.MetricDefineByMeasureParams;
import com.tencent.supersonic.headless.api.pojo.MetricDefineByMetricParams; import com.tencent.supersonic.headless.api.pojo.MetricDefineByMetricParams;
import com.tencent.supersonic.headless.api.pojo.MetricParam; import com.tencent.supersonic.headless.api.pojo.MetricParam;
import com.tencent.supersonic.headless.api.pojo.MetricTypeDefaultConfig;
import com.tencent.supersonic.headless.api.pojo.ModelDetail; import com.tencent.supersonic.headless.api.pojo.ModelDetail;
import com.tencent.supersonic.headless.api.pojo.QueryConfig;
import com.tencent.supersonic.headless.api.pojo.TimeDefaultConfig;
import com.tencent.supersonic.headless.api.pojo.enums.DimensionType; import com.tencent.supersonic.headless.api.pojo.enums.DimensionType;
import com.tencent.supersonic.headless.api.pojo.enums.IdentifyType; import com.tencent.supersonic.headless.api.pojo.enums.IdentifyType;
import com.tencent.supersonic.headless.api.pojo.enums.MetricDefineType; import com.tencent.supersonic.headless.api.pojo.enums.MetricDefineType;
@@ -473,14 +469,6 @@ public class S2VisitsDemo extends S2BaseDemo {
dataSetDetail.setDataSetModelConfigs(dataSetModelConfigs); dataSetDetail.setDataSetModelConfigs(dataSetModelConfigs);
dataSetReq.setDataSetDetail(dataSetDetail); dataSetReq.setDataSetDetail(dataSetDetail);
dataSetReq.setTypeEnum(TypeEnums.DATASET); dataSetReq.setTypeEnum(TypeEnums.DATASET);
QueryConfig queryConfig = new QueryConfig();
MetricTypeDefaultConfig metricTypeDefaultConfig = new MetricTypeDefaultConfig();
TimeDefaultConfig timeDefaultConfig = new TimeDefaultConfig();
timeDefaultConfig.setTimeMode(TimeMode.RECENT);
timeDefaultConfig.setUnit(7);
metricTypeDefaultConfig.setTimeDefaultConfig(timeDefaultConfig);
queryConfig.setMetricTypeDefaultConfig(metricTypeDefaultConfig);
dataSetReq.setQueryConfig(queryConfig);
return dataSetService.save(dataSetReq, User.getFakeUser()); return dataSetService.save(dataSetReq, User.getFakeUser());
} }