mirror of
https://github.com/tencentmusic/supersonic.git
synced 2026-04-30 21:14:24 +08:00
Compare commits
1 Commits
b8de64737a
...
07825b50b5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07825b50b5 |
@@ -1,24 +0,0 @@
|
|||||||
package com.tencent.supersonic.headless.core.translator;
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.tencent.supersonic.common.config.ParameterConfig;
|
|
||||||
import com.tencent.supersonic.common.pojo.Parameter;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Service("HeadlessTranslatorConfig")
|
|
||||||
@Slf4j
|
|
||||||
public class TranslatorConfig extends ParameterConfig {
|
|
||||||
|
|
||||||
public static final Parameter TRANSLATOR_RESULT_LIMIT =
|
|
||||||
new Parameter("s2.query-optimizer.resultLimit", "1000", "查询最大返回数据行数",
|
|
||||||
"为了前端展示性能考虑,请不要设置过大", "number", "语义翻译配置");
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Parameter> getSysParameters() {
|
|
||||||
return Lists.newArrayList(TRANSLATOR_RESULT_LIMIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -16,6 +16,6 @@ public class ResultLimitOptimizer implements QueryOptimizer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void rewrite(QueryStatement queryStatement) {
|
public void rewrite(QueryStatement queryStatement) {
|
||||||
queryStatement.setSql(queryStatement.getSql() + " LIMIT " + queryStatement.getLimit());
|
queryStatement.setSql(queryStatement.getSql() + " limit " + queryStatement.getLimit());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import com.tencent.supersonic.headless.core.pojo.QueryStatement;
|
|||||||
import com.tencent.supersonic.headless.core.pojo.SqlQuery;
|
import com.tencent.supersonic.headless.core.pojo.SqlQuery;
|
||||||
import com.tencent.supersonic.headless.core.pojo.StructQuery;
|
import com.tencent.supersonic.headless.core.pojo.StructQuery;
|
||||||
import com.tencent.supersonic.headless.core.translator.SemanticTranslator;
|
import com.tencent.supersonic.headless.core.translator.SemanticTranslator;
|
||||||
import com.tencent.supersonic.headless.core.translator.TranslatorConfig;
|
|
||||||
import com.tencent.supersonic.headless.core.utils.ComponentFactory;
|
import com.tencent.supersonic.headless.core.utils.ComponentFactory;
|
||||||
import com.tencent.supersonic.headless.server.annotation.S2DataPermission;
|
import com.tencent.supersonic.headless.server.annotation.S2DataPermission;
|
||||||
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
||||||
@@ -60,7 +59,6 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
private final KnowledgeBaseService knowledgeBaseService;
|
private final KnowledgeBaseService knowledgeBaseService;
|
||||||
private final MetricService metricService;
|
private final MetricService metricService;
|
||||||
private final DimensionService dimensionService;
|
private final DimensionService dimensionService;
|
||||||
private final TranslatorConfig translatorConfig;
|
|
||||||
private final QueryCache queryCache = ComponentFactory.getQueryCache();
|
private final QueryCache queryCache = ComponentFactory.getQueryCache();
|
||||||
private final List<QueryExecutor> queryExecutors = ComponentFactory.getQueryExecutors();
|
private final List<QueryExecutor> queryExecutors = ComponentFactory.getQueryExecutors();
|
||||||
|
|
||||||
@@ -69,7 +67,7 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
SchemaService schemaService, SemanticTranslator semanticTranslator,
|
SchemaService schemaService, SemanticTranslator semanticTranslator,
|
||||||
MetricDrillDownChecker metricDrillDownChecker,
|
MetricDrillDownChecker metricDrillDownChecker,
|
||||||
KnowledgeBaseService knowledgeBaseService, MetricService metricService,
|
KnowledgeBaseService knowledgeBaseService, MetricService metricService,
|
||||||
DimensionService dimensionService, TranslatorConfig translatorConfig) {
|
DimensionService dimensionService) {
|
||||||
this.statUtils = statUtils;
|
this.statUtils = statUtils;
|
||||||
this.queryUtils = queryUtils;
|
this.queryUtils = queryUtils;
|
||||||
this.semanticSchemaManager = semanticSchemaManager;
|
this.semanticSchemaManager = semanticSchemaManager;
|
||||||
@@ -80,7 +78,6 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
this.knowledgeBaseService = knowledgeBaseService;
|
this.knowledgeBaseService = knowledgeBaseService;
|
||||||
this.metricService = metricService;
|
this.metricService = metricService;
|
||||||
this.dimensionService = dimensionService;
|
this.dimensionService = dimensionService;
|
||||||
this.translatorConfig = translatorConfig;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataSetSchema getDataSetSchema(Long id) {
|
public DataSetSchema getDataSetSchema(Long id) {
|
||||||
@@ -303,8 +300,6 @@ public class S2SemanticLayerService implements SemanticLayerService {
|
|||||||
|
|
||||||
QueryStatement queryStatement = new QueryStatement();
|
QueryStatement queryStatement = new QueryStatement();
|
||||||
queryStatement.setEnableOptimize(queryUtils.enableOptimize());
|
queryStatement.setEnableOptimize(queryUtils.enableOptimize());
|
||||||
queryStatement.setLimit(Integer.parseInt(translatorConfig.getParameterValue(
|
|
||||||
TranslatorConfig.TRANSLATOR_RESULT_LIMIT)));
|
|
||||||
queryStatement.setDataSetId(queryReq.getDataSetId());
|
queryStatement.setDataSetId(queryReq.getDataSetId());
|
||||||
queryStatement.setDataSetName(queryReq.getDataSetName());
|
queryStatement.setDataSetName(queryReq.getDataSetName());
|
||||||
queryStatement.setSemanticSchema(semanticSchemaResp);
|
queryStatement.setSemanticSchema(semanticSchemaResp);
|
||||||
|
|||||||
@@ -192,14 +192,14 @@ public class S2VisitsDemo extends S2BaseDemo {
|
|||||||
modelReq.setAdminOrgs(Collections.emptyList());
|
modelReq.setAdminOrgs(Collections.emptyList());
|
||||||
List<Identify> identifiers = new ArrayList<>();
|
List<Identify> identifiers = new ArrayList<>();
|
||||||
ModelDetail modelDetail = new ModelDetail();
|
ModelDetail modelDetail = new ModelDetail();
|
||||||
identifiers.add(new Identify("用户名", IdentifyType.foreign.name(), "user_name", 1));
|
identifiers.add(new Identify("用户名", IdentifyType.foreign.name(), "user_name", 0));
|
||||||
modelDetail.setIdentifiers(identifiers);
|
modelDetail.setIdentifiers(identifiers);
|
||||||
|
|
||||||
List<Dimension> dimensions = new ArrayList<>();
|
List<Dimension> dimensions = new ArrayList<>();
|
||||||
Dimension dimension1 = new Dimension("数据日期", "imp_date", DimensionType.partition_time, 1);
|
Dimension dimension1 = new Dimension("数据日期", "imp_date", DimensionType.partition_time, 1);
|
||||||
dimension1.setTypeParams(new DimensionTimeTypeParams());
|
dimension1.setTypeParams(new DimensionTimeTypeParams());
|
||||||
dimensions.add(dimension1);
|
dimensions.add(dimension1);
|
||||||
Dimension dimension2 = new Dimension("", "page", DimensionType.categorical, 1);
|
Dimension dimension2 = new Dimension("", "page", DimensionType.categorical, 0);
|
||||||
dimension2.setExpr("page");
|
dimension2.setExpr("page");
|
||||||
dimensions.add(dimension2);
|
dimensions.add(dimension2);
|
||||||
modelDetail.setDimensions(dimensions);
|
modelDetail.setDimensions(dimensions);
|
||||||
@@ -227,11 +227,11 @@ public class S2VisitsDemo extends S2BaseDemo {
|
|||||||
modelReq.setAdminOrgs(Collections.emptyList());
|
modelReq.setAdminOrgs(Collections.emptyList());
|
||||||
List<Identify> identifiers = new ArrayList<>();
|
List<Identify> identifiers = new ArrayList<>();
|
||||||
ModelDetail modelDetail = new ModelDetail();
|
ModelDetail modelDetail = new ModelDetail();
|
||||||
identifiers.add(new Identify("用户名", IdentifyType.foreign.name(), "user_name", 1));
|
identifiers.add(new Identify("用户名", IdentifyType.foreign.name(), "user_name", 0));
|
||||||
modelDetail.setIdentifiers(identifiers);
|
modelDetail.setIdentifiers(identifiers);
|
||||||
|
|
||||||
List<Dimension> dimensions = new ArrayList<>();
|
List<Dimension> dimensions = new ArrayList<>();
|
||||||
Dimension dimension1 = new Dimension("数据日期", "imp_date", DimensionType.partition_time, 1);
|
Dimension dimension1 = new Dimension("数据日期", "imp_date", DimensionType.partition_time, 0);
|
||||||
dimension1.setTypeParams(new DimensionTimeTypeParams());
|
dimension1.setTypeParams(new DimensionTimeTypeParams());
|
||||||
dimensions.add(dimension1);
|
dimensions.add(dimension1);
|
||||||
Dimension dimension2 = new Dimension("页面", "visits_page", DimensionType.categorical, 1);
|
Dimension dimension2 = new Dimension("页面", "visits_page", DimensionType.categorical, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user