mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 19:51:00 +00:00
(improvement)(headless&chat)The Chat module only references facade service of the Headless module.
This commit is contained in:
@@ -48,7 +48,6 @@ import com.tencent.supersonic.headless.chat.query.QueryManager;
|
|||||||
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
|
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
|
||||||
import com.tencent.supersonic.headless.chat.query.llm.s2sql.LLMSqlQuery;
|
import com.tencent.supersonic.headless.chat.query.llm.s2sql.LLMSqlQuery;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.RetrieveService;
|
|
||||||
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.sf.jsqlparser.expression.Expression;
|
import net.sf.jsqlparser.expression.Expression;
|
||||||
@@ -90,8 +89,6 @@ public class ChatQueryServiceImpl implements ChatQueryService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SemanticLayerService semanticLayerService;
|
private SemanticLayerService semanticLayerService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RetrieveService retrieveService;
|
|
||||||
@Autowired
|
|
||||||
private AgentService agentService;
|
private AgentService agentService;
|
||||||
|
|
||||||
private List<ChatQueryParser> chatQueryParsers = ComponentFactory.getChatParsers();
|
private List<ChatQueryParser> chatQueryParsers = ComponentFactory.getChatParsers();
|
||||||
@@ -107,7 +104,7 @@ public class ChatQueryServiceImpl implements ChatQueryService {
|
|||||||
return Lists.newArrayList();
|
return Lists.newArrayList();
|
||||||
}
|
}
|
||||||
QueryNLReq queryNLReq = QueryReqConverter.buildText2SqlQueryReq(parseContext);
|
QueryNLReq queryNLReq = QueryReqConverter.buildText2SqlQueryReq(parseContext);
|
||||||
return retrieveService.retrieve(queryNLReq);
|
return chatLayerService.retrieve(queryNLReq);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -30,9 +30,7 @@ import com.tencent.supersonic.headless.api.pojo.SchemaElement;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.SchemaItem;
|
import com.tencent.supersonic.headless.api.pojo.SchemaItem;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
|
||||||
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
|
||||||
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@@ -53,18 +51,13 @@ public class ConfigServiceImpl implements ConfigService {
|
|||||||
|
|
||||||
private final ChatConfigRepository chatConfigRepository;
|
private final ChatConfigRepository chatConfigRepository;
|
||||||
private final ChatConfigHelper chatConfigHelper;
|
private final ChatConfigHelper chatConfigHelper;
|
||||||
private final DimensionService dimensionService;
|
|
||||||
private final MetricService metricService;
|
|
||||||
private final SemanticLayerService semanticLayerService;
|
private final SemanticLayerService semanticLayerService;
|
||||||
|
|
||||||
|
|
||||||
public ConfigServiceImpl(ChatConfigRepository chatConfigRepository,
|
public ConfigServiceImpl(ChatConfigRepository chatConfigRepository,
|
||||||
ChatConfigHelper chatConfigHelper, DimensionService dimensionService,
|
ChatConfigHelper chatConfigHelper, SemanticLayerService semanticLayerService) {
|
||||||
MetricService metricService, SemanticLayerService semanticLayerService) {
|
|
||||||
this.chatConfigRepository = chatConfigRepository;
|
this.chatConfigRepository = chatConfigRepository;
|
||||||
this.chatConfigHelper = chatConfigHelper;
|
this.chatConfigHelper = chatConfigHelper;
|
||||||
this.dimensionService = dimensionService;
|
|
||||||
this.metricService = metricService;
|
|
||||||
this.semanticLayerService = semanticLayerService;
|
this.semanticLayerService = semanticLayerService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,14 +129,14 @@ public class ConfigServiceImpl implements ConfigService {
|
|||||||
MetaFilter metaFilter = new MetaFilter();
|
MetaFilter metaFilter = new MetaFilter();
|
||||||
metaFilter.setModelIds(Lists.newArrayList(modelId));
|
metaFilter.setModelIds(Lists.newArrayList(modelId));
|
||||||
if (!CollectionUtils.isEmpty(blackDimIdList)) {
|
if (!CollectionUtils.isEmpty(blackDimIdList)) {
|
||||||
List<DimensionResp> dimensionRespList = dimensionService.getDimensions(metaFilter);
|
List<DimensionResp> dimensionRespList = semanticLayerService.getDimensions(metaFilter);
|
||||||
List<String> blackDimNameList = dimensionRespList.stream().filter(o -> filterDimIdList.contains(o.getId()))
|
List<String> blackDimNameList = dimensionRespList.stream().filter(o -> filterDimIdList.contains(o.getId()))
|
||||||
.map(SchemaItem::getName).collect(Collectors.toList());
|
.map(SchemaItem::getName).collect(Collectors.toList());
|
||||||
itemNameVisibility.setBlackDimNameList(blackDimNameList);
|
itemNameVisibility.setBlackDimNameList(blackDimNameList);
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(blackMetricIdList)) {
|
if (!CollectionUtils.isEmpty(blackMetricIdList)) {
|
||||||
|
|
||||||
List<MetricResp> metricRespList = metricService.getMetrics(metaFilter);
|
List<MetricResp> metricRespList = semanticLayerService.getMetrics(metaFilter);
|
||||||
List<String> blackMetricList = metricRespList.stream().filter(o -> filterMetricIdList.contains(o.getId()))
|
List<String> blackMetricList = metricRespList.stream().filter(o -> filterMetricIdList.contains(o.getId()))
|
||||||
.map(SchemaItem::getName).collect(Collectors.toList());
|
.map(SchemaItem::getName).collect(Collectors.toList());
|
||||||
itemNameVisibility.setBlackMetricNameList(blackMetricList);
|
itemNameVisibility.setBlackMetricNameList(blackMetricList);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.server.pojo;
|
package com.tencent.supersonic.headless.api.pojo;
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -16,7 +16,7 @@ import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.utils.QueryStructUtils;
|
import com.tencent.supersonic.headless.server.utils.QueryStructUtils;
|
||||||
import com.tencent.supersonic.headless.server.web.service.ModelService;
|
import com.tencent.supersonic.headless.server.web.service.ModelService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.SchemaService;
|
import com.tencent.supersonic.headless.server.web.service.SchemaService;
|
||||||
|
|||||||
@@ -3,10 +3,13 @@ package com.tencent.supersonic.headless.server.facade.service;
|
|||||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||||
import com.tencent.supersonic.headless.api.pojo.DataSetSchema;
|
import com.tencent.supersonic.headless.api.pojo.DataSetSchema;
|
||||||
import com.tencent.supersonic.headless.api.pojo.EntityInfo;
|
import com.tencent.supersonic.headless.api.pojo.EntityInfo;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo;
|
import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DimensionValueReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DimensionValueReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ItemResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ItemResp;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticTranslateResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticTranslateResp;
|
||||||
|
|
||||||
@@ -29,4 +32,8 @@ public interface SemanticLayerService {
|
|||||||
|
|
||||||
List<ItemResp> getDomainDataSetTree();
|
List<ItemResp> getDomainDataSetTree();
|
||||||
|
|
||||||
|
List<DimensionResp> getDimensions(MetaFilter metaFilter);
|
||||||
|
|
||||||
|
List<MetricResp> getMetrics(MetaFilter metaFilter);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import com.tencent.supersonic.headless.chat.knowledge.builder.BaseWordBuilder;
|
|||||||
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
|
import com.tencent.supersonic.headless.chat.query.SemanticQuery;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.RetrieveService;
|
import com.tencent.supersonic.headless.server.web.service.RetrieveService;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.utils.ChatWorkflowEngine;
|
import com.tencent.supersonic.headless.server.utils.ChatWorkflowEngine;
|
||||||
import com.tencent.supersonic.headless.server.utils.ComponentFactory;
|
import com.tencent.supersonic.headless.server.utils.ComponentFactory;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import com.tencent.supersonic.headless.api.pojo.DataSetInfo;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.DataSetSchema;
|
import com.tencent.supersonic.headless.api.pojo.DataSetSchema;
|
||||||
import com.tencent.supersonic.headless.api.pojo.Dim;
|
import com.tencent.supersonic.headless.api.pojo.Dim;
|
||||||
import com.tencent.supersonic.headless.api.pojo.EntityInfo;
|
import com.tencent.supersonic.headless.api.pojo.EntityInfo;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.api.pojo.QueryParam;
|
import com.tencent.supersonic.headless.api.pojo.QueryParam;
|
||||||
import com.tencent.supersonic.headless.api.pojo.SchemaElement;
|
import com.tencent.supersonic.headless.api.pojo.SchemaElement;
|
||||||
import com.tencent.supersonic.headless.api.pojo.SchemaElementType;
|
import com.tencent.supersonic.headless.api.pojo.SchemaElementType;
|
||||||
@@ -30,6 +31,7 @@ import com.tencent.supersonic.headless.api.pojo.request.SchemaFilterReq;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ItemResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ItemResp;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
|
||||||
@@ -55,6 +57,8 @@ import com.tencent.supersonic.headless.server.utils.QueryReqConverter;
|
|||||||
import com.tencent.supersonic.headless.server.utils.QueryUtils;
|
import com.tencent.supersonic.headless.server.utils.QueryUtils;
|
||||||
import com.tencent.supersonic.headless.server.utils.StatUtils;
|
import com.tencent.supersonic.headless.server.utils.StatUtils;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
||||||
|
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
||||||
|
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.SchemaService;
|
import com.tencent.supersonic.headless.server.web.service.SchemaService;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -87,6 +91,8 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
private final SemanticTranslator semanticTranslator;
|
private final SemanticTranslator semanticTranslator;
|
||||||
private final MetricDrillDownChecker metricDrillDownChecker;
|
private final MetricDrillDownChecker metricDrillDownChecker;
|
||||||
private final KnowledgeBaseService knowledgeBaseService;
|
private final KnowledgeBaseService knowledgeBaseService;
|
||||||
|
private final MetricService metricService;
|
||||||
|
private final DimensionService dimensionService;
|
||||||
private QueryCache queryCache = ComponentFactory.getQueryCache();
|
private QueryCache queryCache = ComponentFactory.getQueryCache();
|
||||||
private List<QueryExecutor> queryExecutors = ComponentFactory.getQueryExecutors();
|
private List<QueryExecutor> queryExecutors = ComponentFactory.getQueryExecutors();
|
||||||
|
|
||||||
@@ -99,7 +105,9 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
SchemaService schemaService,
|
SchemaService schemaService,
|
||||||
SemanticTranslator semanticTranslator,
|
SemanticTranslator semanticTranslator,
|
||||||
MetricDrillDownChecker metricDrillDownChecker,
|
MetricDrillDownChecker metricDrillDownChecker,
|
||||||
KnowledgeBaseService knowledgeBaseService) {
|
KnowledgeBaseService knowledgeBaseService,
|
||||||
|
MetricService metricService,
|
||||||
|
DimensionService dimensionService) {
|
||||||
this.statUtils = statUtils;
|
this.statUtils = statUtils;
|
||||||
this.queryUtils = queryUtils;
|
this.queryUtils = queryUtils;
|
||||||
this.queryReqConverter = queryReqConverter;
|
this.queryReqConverter = queryReqConverter;
|
||||||
@@ -109,6 +117,8 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
this.semanticTranslator = semanticTranslator;
|
this.semanticTranslator = semanticTranslator;
|
||||||
this.metricDrillDownChecker = metricDrillDownChecker;
|
this.metricDrillDownChecker = metricDrillDownChecker;
|
||||||
this.knowledgeBaseService = knowledgeBaseService;
|
this.knowledgeBaseService = knowledgeBaseService;
|
||||||
|
this.metricService = metricService;
|
||||||
|
this.dimensionService = dimensionService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataSetSchema getDataSetSchema(Long id) {
|
public DataSetSchema getDataSetSchema(Long id) {
|
||||||
@@ -291,6 +301,36 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
return schemaService.getDomainDataSetTree();
|
return schemaService.getDomainDataSetTree();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DimensionResp> getDimensions(MetaFilter metaFilter) {
|
||||||
|
return dimensionService.getDimensions(metaFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Set<SchemaElement> getDimensions(EntityInfo modelInfo) {
|
||||||
|
Set<SchemaElement> dimensions = new LinkedHashSet();
|
||||||
|
for (DataInfo mainEntityDimension : modelInfo.getDimensions()) {
|
||||||
|
SchemaElement dimension = new SchemaElement();
|
||||||
|
dimension.setBizName(mainEntityDimension.getBizName());
|
||||||
|
dimensions.add(dimension);
|
||||||
|
}
|
||||||
|
return dimensions;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MetricResp> getMetrics(MetaFilter metaFilter) {
|
||||||
|
return metricService.getMetrics(metaFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Set<SchemaElement> getMetrics(EntityInfo modelInfo) {
|
||||||
|
Set<SchemaElement> metrics = new LinkedHashSet();
|
||||||
|
for (DataInfo metricValue : modelInfo.getMetrics()) {
|
||||||
|
SchemaElement metric = new SchemaElement();
|
||||||
|
BeanUtils.copyProperties(metricValue, metric);
|
||||||
|
metrics.add(metric);
|
||||||
|
}
|
||||||
|
return metrics;
|
||||||
|
}
|
||||||
|
|
||||||
private QueryStatement buildSqlQueryStatement(QuerySqlReq querySqlReq, User user) throws Exception {
|
private QueryStatement buildSqlQueryStatement(QuerySqlReq querySqlReq, User user) throws Exception {
|
||||||
//If dataSetId or DataSetName is empty, parse dataSetId from the SQL
|
//If dataSetId or DataSetName is empty, parse dataSetId from the SQL
|
||||||
if (querySqlReq.needGetDataSetId()) {
|
if (querySqlReq.needGetDataSetId()) {
|
||||||
@@ -501,16 +541,6 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
return chatFilter;
|
return chatFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Set<SchemaElement> getDimensions(EntityInfo modelInfo) {
|
|
||||||
Set<SchemaElement> dimensions = new LinkedHashSet();
|
|
||||||
for (DataInfo mainEntityDimension : modelInfo.getDimensions()) {
|
|
||||||
SchemaElement dimension = new SchemaElement();
|
|
||||||
dimension.setBizName(mainEntityDimension.getBizName());
|
|
||||||
dimensions.add(dimension);
|
|
||||||
}
|
|
||||||
return dimensions;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getEntryKey(Map.Entry<String, Object> entry) {
|
private String getEntryKey(Map.Entry<String, Object> entry) {
|
||||||
// metric parser special handle, TODO delete
|
// metric parser special handle, TODO delete
|
||||||
String entryKey = entry.getKey();
|
String entryKey = entry.getKey();
|
||||||
@@ -520,16 +550,6 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
return entryKey;
|
return entryKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Set<SchemaElement> getMetrics(EntityInfo modelInfo) {
|
|
||||||
Set<SchemaElement> metrics = new LinkedHashSet();
|
|
||||||
for (DataInfo metricValue : modelInfo.getMetrics()) {
|
|
||||||
SchemaElement metric = new SchemaElement();
|
|
||||||
BeanUtils.copyProperties(metricValue, metric);
|
|
||||||
metrics.add(metric);
|
|
||||||
}
|
|
||||||
return metrics;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getEntityPrimaryName(EntityInfo entityInfo) {
|
private String getEntityPrimaryName(EntityInfo entityInfo) {
|
||||||
return entityInfo.getDataSetInfo().getPrimaryKey();
|
return entityInfo.getDataSetInfo().getPrimaryKey();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tencent.supersonic.headless.server.pojo;
|
package com.tencent.supersonic.headless.server.pojo;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tencent.supersonic.headless.server.pojo;
|
package com.tencent.supersonic.headless.server.pojo;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tencent.supersonic.headless.server.pojo;
|
package com.tencent.supersonic.headless.server.pojo;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.tencent.supersonic.headless.server.pojo;
|
package com.tencent.supersonic.headless.server.pojo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tencent.supersonic.headless.server.pojo;
|
package com.tencent.supersonic.headless.server.pojo;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tencent.supersonic.headless.server.pojo;
|
package com.tencent.supersonic.headless.server.pojo;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.api.pojo.enums.TagDefineType;
|
import com.tencent.supersonic.headless.api.pojo.enums.TagDefineType;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.tencent.supersonic.headless.server.pojo;
|
package com.tencent.supersonic.headless.server.pojo;
|
||||||
|
|
||||||
|
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.MetricSchemaResp;
|
import com.tencent.supersonic.headless.api.pojo.response.MetricSchemaResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.SchemaService;
|
import com.tencent.supersonic.headless.server.web.service.SchemaService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
|||||||
import com.tencent.supersonic.auth.api.authentication.utils.UserHolder;
|
import com.tencent.supersonic.auth.api.authentication.utils.UserHolder;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
||||||
import com.tencent.supersonic.headless.server.pojo.DimensionFilter;
|
import com.tencent.supersonic.headless.server.pojo.DimensionFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import com.tencent.supersonic.headless.api.pojo.request.MetricBaseReq;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.request.MetricReq;
|
import com.tencent.supersonic.headless.api.pojo.request.MetricReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.PageMetricReq;
|
import com.tencent.supersonic.headless.api.pojo.request.PageMetricReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetricFilter;
|
import com.tencent.supersonic.headless.server.pojo.MetricFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.tencent.supersonic.headless.api.pojo.request.QueryDataSetReq;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
import com.tencent.supersonic.headless.api.pojo.request.SemanticQueryReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq;
|
import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.DimensionsFilter;
|
import com.tencent.supersonic.headless.server.pojo.DimensionsFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import com.tencent.supersonic.headless.api.pojo.request.QueryMetricReq;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq;
|
import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetricsFilter;
|
import com.tencent.supersonic.headless.server.pojo.MetricsFilter;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.tencent.supersonic.headless.api.pojo.request.ModelReq;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.UnAvailableItemResp;
|
import com.tencent.supersonic.headless.api.pojo.response.UnAvailableItemResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ModelSchemaResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ModelSchemaResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticSchemaResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.yaml.DataModelYamlTpl;
|
import com.tencent.supersonic.headless.server.pojo.yaml.DataModelYamlTpl;
|
||||||
import com.tencent.supersonic.headless.server.pojo.yaml.DimensionYamlTpl;
|
import com.tencent.supersonic.headless.server.pojo.yaml.DimensionYamlTpl;
|
||||||
import com.tencent.supersonic.headless.server.pojo.yaml.MetricYamlTpl;
|
import com.tencent.supersonic.headless.server.pojo.yaml.MetricYamlTpl;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.server.persistence.dataobject.AppDO;
|
import com.tencent.supersonic.headless.server.persistence.dataobject.AppDO;
|
||||||
import com.tencent.supersonic.headless.server.persistence.mapper.AppMapper;
|
import com.tencent.supersonic.headless.server.persistence.mapper.AppMapper;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.AppService;
|
import com.tencent.supersonic.headless.server.web.service.AppService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.server.persistence.dataobject.CanvasDO;
|
import com.tencent.supersonic.headless.server.persistence.dataobject.CanvasDO;
|
||||||
import com.tencent.supersonic.headless.server.persistence.mapper.CanvasDOMapper;
|
import com.tencent.supersonic.headless.server.persistence.mapper.CanvasDOMapper;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.CanvasService;
|
import com.tencent.supersonic.headless.server.web.service.CanvasService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.TagItem;
|
import com.tencent.supersonic.headless.api.pojo.response.TagItem;
|
||||||
import com.tencent.supersonic.headless.server.persistence.dataobject.DataSetDO;
|
import com.tencent.supersonic.headless.server.persistence.dataobject.DataSetDO;
|
||||||
import com.tencent.supersonic.headless.server.persistence.mapper.DataSetDOMapper;
|
import com.tencent.supersonic.headless.server.persistence.mapper.DataSetDOMapper;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DomainService;
|
import com.tencent.supersonic.headless.server.web.service.DomainService;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import com.tencent.supersonic.headless.server.persistence.mapper.DimensionDOMapp
|
|||||||
import com.tencent.supersonic.headless.server.persistence.repository.DimensionRepository;
|
import com.tencent.supersonic.headless.server.persistence.repository.DimensionRepository;
|
||||||
import com.tencent.supersonic.headless.server.pojo.DimensionFilter;
|
import com.tencent.supersonic.headless.server.pojo.DimensionFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.DimensionsFilter;
|
import com.tencent.supersonic.headless.server.pojo.DimensionsFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.TagFilter;
|
import com.tencent.supersonic.headless.server.pojo.TagFilter;
|
||||||
import com.tencent.supersonic.headless.server.utils.AliasGenerateHelper;
|
import com.tencent.supersonic.headless.server.utils.AliasGenerateHelper;
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
||||||
import com.tencent.supersonic.headless.core.utils.DataTransformUtils;
|
import com.tencent.supersonic.headless.core.utils.DataTransformUtils;
|
||||||
import com.tencent.supersonic.headless.server.pojo.DataDownload;
|
import com.tencent.supersonic.headless.server.pojo.DataDownload;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DownloadService;
|
import com.tencent.supersonic.headless.server.web.service.DownloadService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
import com.tencent.supersonic.headless.server.web.service.MetricService;
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ import com.tencent.supersonic.headless.server.persistence.dataobject.TagDO;
|
|||||||
import com.tencent.supersonic.headless.server.persistence.mapper.MetricDOMapper;
|
import com.tencent.supersonic.headless.server.persistence.mapper.MetricDOMapper;
|
||||||
import com.tencent.supersonic.headless.server.persistence.repository.MetricRepository;
|
import com.tencent.supersonic.headless.server.persistence.repository.MetricRepository;
|
||||||
import com.tencent.supersonic.headless.server.pojo.DimensionsFilter;
|
import com.tencent.supersonic.headless.server.pojo.DimensionsFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetricFilter;
|
import com.tencent.supersonic.headless.server.pojo.MetricFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetricsFilter;
|
import com.tencent.supersonic.headless.server.pojo.MetricsFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.ModelCluster;
|
import com.tencent.supersonic.headless.server.pojo.ModelCluster;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import com.tencent.supersonic.headless.server.persistence.dataobject.DateInfoDO;
|
|||||||
import com.tencent.supersonic.headless.server.persistence.dataobject.ModelDO;
|
import com.tencent.supersonic.headless.server.persistence.dataobject.ModelDO;
|
||||||
import com.tencent.supersonic.headless.server.persistence.repository.DateInfoRepository;
|
import com.tencent.supersonic.headless.server.persistence.repository.DateInfoRepository;
|
||||||
import com.tencent.supersonic.headless.server.persistence.repository.ModelRepository;
|
import com.tencent.supersonic.headless.server.persistence.repository.ModelRepository;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DatabaseService;
|
import com.tencent.supersonic.headless.server.web.service.DatabaseService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
import com.tencent.supersonic.headless.server.web.service.DimensionService;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import com.tencent.supersonic.headless.api.pojo.response.TermResp;
|
|||||||
import com.tencent.supersonic.headless.server.manager.DimensionYamlManager;
|
import com.tencent.supersonic.headless.server.manager.DimensionYamlManager;
|
||||||
import com.tencent.supersonic.headless.server.manager.MetricYamlManager;
|
import com.tencent.supersonic.headless.server.manager.MetricYamlManager;
|
||||||
import com.tencent.supersonic.headless.server.manager.ModelYamlManager;
|
import com.tencent.supersonic.headless.server.manager.ModelYamlManager;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.TagFilter;
|
import com.tencent.supersonic.headless.server.pojo.TagFilter;
|
||||||
import com.tencent.supersonic.headless.server.pojo.yaml.DataModelYamlTpl;
|
import com.tencent.supersonic.headless.server.pojo.yaml.DataModelYamlTpl;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.server.web.service.CanvasService;
|
import com.tencent.supersonic.headless.server.web.service.CanvasService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
import com.tencent.supersonic.headless.server.web.service.DataSetService;
|
||||||
import com.tencent.supersonic.headless.server.web.service.DatabaseService;
|
import com.tencent.supersonic.headless.server.web.service.DatabaseService;
|
||||||
|
|||||||
Reference in New Issue
Block a user