mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 13:47:09 +00:00
(improvement)(headless) Merge server and core in headless-api (#590)
(improvement)(headless) Merge server and core in headless-api --------- Co-authored-by: jolunoluo
This commit is contained in:
@@ -3,8 +3,8 @@ package com.tencent.supersonic.headless.core.aspect;
|
||||
import com.tencent.supersonic.common.pojo.Pair;
|
||||
import com.tencent.supersonic.common.pojo.exception.InvalidArgumentException;
|
||||
import com.tencent.supersonic.common.util.SignatureUtils;
|
||||
import com.tencent.supersonic.headless.common.server.enums.AppStatus;
|
||||
import com.tencent.supersonic.headless.common.server.response.AppDetailResp;
|
||||
import com.tencent.supersonic.headless.api.enums.AppStatus;
|
||||
import com.tencent.supersonic.headless.api.response.AppDetailResp;
|
||||
import com.tencent.supersonic.headless.server.service.AppService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -16,10 +16,10 @@ import com.tencent.supersonic.common.pojo.QueryColumn;
|
||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||
import com.tencent.supersonic.common.pojo.enums.SensitiveLevelEnum;
|
||||
import com.tencent.supersonic.common.pojo.exception.InvalidPermissionException;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||
import com.tencent.supersonic.headless.server.service.MetricService;
|
||||
|
||||
@@ -8,11 +8,11 @@ import com.tencent.supersonic.common.util.JsonUtil;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.FieldExpression;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserReplaceHelper;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserSelectHelper;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.DimValueMap;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.DimValueMap;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -7,10 +7,10 @@ import com.tencent.supersonic.auth.api.authorization.response.AuthorizedResource
|
||||
import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.common.pojo.exception.InvalidPermissionException;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserAddHelper;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.utils.QueryStructUtils;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
||||
|
||||
@@ -7,10 +7,10 @@ import com.tencent.supersonic.auth.api.authorization.response.AuthorizedResource
|
||||
import com.tencent.supersonic.common.pojo.Filter;
|
||||
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
||||
import com.tencent.supersonic.common.pojo.exception.InvalidPermissionException;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.utils.QueryStructUtils;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tencent.supersonic.headless.core.executor;
|
||||
|
||||
import com.tencent.supersonic.headless.common.server.response.DatabaseResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.DatabaseResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.server.service.Catalog;
|
||||
import com.tencent.supersonic.headless.server.utils.SqlUtils;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.tencent.supersonic.headless.core.executor;
|
||||
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.server.service.Catalog;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tencent.supersonic.headless.core.optimizer;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.tencent.supersonic.headless.core.optimizer;
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
|
||||
public interface QueryOptimizer {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.tencent.supersonic.headless.core.parser;
|
||||
|
||||
import com.tencent.supersonic.common.util.StringUtil;
|
||||
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.common.core.pojo.MetricTable;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetricTable;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.api.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.core.utils.ComponentFactory;
|
||||
import com.tencent.supersonic.headless.server.service.Catalog;
|
||||
@@ -38,7 +38,7 @@ public class QueryParser {
|
||||
queryStatement.setParseSqlReq(new ParseSqlReq());
|
||||
}
|
||||
if (Objects.isNull(queryStatement.getMetricReq())) {
|
||||
queryStatement.setMetricReq(new MetricReq());
|
||||
queryStatement.setMetricReq(new MetricQueryReq());
|
||||
}
|
||||
log.info("SemanticConverter before [{}]", queryStructReq);
|
||||
for (HeadlessConverter headlessConverter : ComponentFactory.getSemanticConverters()) {
|
||||
@@ -65,7 +65,7 @@ public class QueryParser {
|
||||
List<String[]> tables = new ArrayList<>();
|
||||
String sourceId = "";
|
||||
for (MetricTable metricTable : sqlCommend.getTables()) {
|
||||
MetricReq metricReq = new MetricReq();
|
||||
MetricQueryReq metricReq = new MetricQueryReq();
|
||||
metricReq.setMetrics(metricTable.getMetrics());
|
||||
metricReq.setDimensions(metricTable.getDimensions());
|
||||
metricReq.setWhere(StringUtil.formatSqlQuota(metricTable.getWhere()));
|
||||
@@ -117,7 +117,7 @@ public class QueryParser {
|
||||
}
|
||||
|
||||
public QueryStatement parser(QueryStatement queryStatement, AggOption isAgg) {
|
||||
MetricReq metricCommand = queryStatement.getMetricReq();
|
||||
MetricQueryReq metricCommand = queryStatement.getMetricReq();
|
||||
log.info("parser MetricReq [{}] isAgg [{}]", metricCommand, isAgg);
|
||||
if (metricCommand.getRootPath().isEmpty()) {
|
||||
queryStatement.setErrMsg("rootPath empty");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.tencent.supersonic.headless.core.parser;
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.api.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.server.service.Catalog;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tencent.supersonic.headless.core.parser.calcite;
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.core.parser.SqlParser;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.planner.AggPlanner;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.HeadlessModel;
|
||||
@@ -23,7 +23,7 @@ public class CalciteSqlParser implements SqlParser {
|
||||
|
||||
@Override
|
||||
public QueryStatement explain(QueryStatement queryStatement, AggOption isAgg, Catalog catalog) throws Exception {
|
||||
MetricReq metricReq = queryStatement.getMetricReq();
|
||||
MetricQueryReq metricReq = queryStatement.getMetricReq();
|
||||
HeadlessModel headlessModel = headlessSchemaManager.get(metricReq.getRootPath());
|
||||
if (headlessModel == null) {
|
||||
queryStatement.setErrMsg("semanticSchema not found");
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.tencent.supersonic.headless.core.parser.calcite.planner;
|
||||
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.Configuration;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.schema.SchemaBuilder;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.sql.Renderer;
|
||||
@@ -39,7 +39,7 @@ import org.apache.calcite.sql2rel.SqlToRelConverter;
|
||||
@Slf4j
|
||||
public class AggPlanner implements Planner {
|
||||
|
||||
private MetricReq metricReq;
|
||||
private MetricQueryReq metricReq;
|
||||
private HeadlessSchema schema;
|
||||
private SqlValidatorScope scope;
|
||||
private Stack<TableView> dataSets = new Stack<>();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.tencent.supersonic.headless.core.parser.calcite.planner;
|
||||
|
||||
import com.tencent.supersonic.common.util.calcite.SqlParseUtils;
|
||||
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.Configuration;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.schema.SchemaBuilder;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
@@ -97,7 +97,7 @@ public class MaterializationPlanner implements Planner {
|
||||
return;
|
||||
}
|
||||
Set<String> fields = new HashSet<>();
|
||||
MetricReq metricCommand = queryStatement.getMetricReq();
|
||||
MetricQueryReq metricCommand = queryStatement.getMetricReq();
|
||||
if (!Objects.isNull(metricCommand.getWhere()) && !metricCommand.getWhere().isEmpty()) {
|
||||
fields.addAll(SqlParseUtils.getFilterField(metricCommand.getWhere()));
|
||||
}
|
||||
@@ -286,7 +286,7 @@ public class MaterializationPlanner implements Planner {
|
||||
relBuilder.literal(timeRange.getEnd())));
|
||||
}
|
||||
|
||||
public boolean check(MetricReq metricCommand, Materialization materialization, String elem,
|
||||
public boolean check(MetricQueryReq metricCommand, Materialization materialization, String elem,
|
||||
List<ImmutablePair<String, String>> timeRanges)
|
||||
throws SqlParseException {
|
||||
boolean isMatch = false;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tencent.supersonic.headless.core.parser.calcite.planner;
|
||||
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.api.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.schema.HeadlessSchema;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tencent.supersonic.headless.core.parser.calcite.sql;
|
||||
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.sql.node.MeasureNode;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.sql.node.MetricNode;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.sql.node.SemanticNode;
|
||||
@@ -101,6 +101,6 @@ public abstract class Renderer {
|
||||
return SemanticNode.buildAs(alias, tableView.build());
|
||||
}
|
||||
|
||||
public abstract void render(MetricReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
HeadlessSchema schema, boolean nonAgg) throws Exception;
|
||||
public abstract void render(MetricQueryReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
HeadlessSchema schema, boolean nonAgg) throws Exception;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.tencent.supersonic.headless.core.parser.calcite.sql.node;
|
||||
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.Configuration;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.Constants;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.DataSource;
|
||||
@@ -125,7 +125,7 @@ public class DataSourceNode extends SemanticNode {
|
||||
return dataSourceList.stream().map(d -> d.getName()).collect(Collectors.joining("_"));
|
||||
}
|
||||
|
||||
public static void getQueryDimensionMeasure(HeadlessSchema schema, MetricReq metricCommand,
|
||||
public static void getQueryDimensionMeasure(HeadlessSchema schema, MetricQueryReq metricCommand,
|
||||
Set<String> queryDimension, List<String> measures) {
|
||||
queryDimension.addAll(metricCommand.getDimensions().stream()
|
||||
.map(d -> d.contains(Constants.DIMENSION_IDENTIFY) ? d.split(Constants.DIMENSION_IDENTIFY)[1] : d)
|
||||
@@ -137,7 +137,7 @@ public class DataSourceNode extends SemanticNode {
|
||||
|
||||
}
|
||||
|
||||
public static void mergeQueryFilterDimensionMeasure(HeadlessSchema schema, MetricReq metricCommand,
|
||||
public static void mergeQueryFilterDimensionMeasure(HeadlessSchema schema, MetricQueryReq metricCommand,
|
||||
Set<String> queryDimension, List<String> measures,
|
||||
SqlValidatorScope scope) throws Exception {
|
||||
if (Objects.nonNull(metricCommand.getWhere()) && !metricCommand.getWhere().isEmpty()) {
|
||||
@@ -161,7 +161,7 @@ public class DataSourceNode extends SemanticNode {
|
||||
}
|
||||
|
||||
public static List<DataSource> getMatchDataSources(SqlValidatorScope scope, HeadlessSchema schema,
|
||||
MetricReq metricCommand) throws Exception {
|
||||
MetricQueryReq metricCommand) throws Exception {
|
||||
List<DataSource> dataSources = new ArrayList<>();
|
||||
|
||||
// check by metric
|
||||
@@ -233,7 +233,7 @@ public class DataSourceNode extends SemanticNode {
|
||||
Set<String> queryDimension,
|
||||
List<String> measures,
|
||||
Set<String> dimension,
|
||||
MetricReq metricCommand,
|
||||
MetricQueryReq metricCommand,
|
||||
SqlValidatorScope scope) throws Exception {
|
||||
boolean isAllMatch = true;
|
||||
sourceMeasure.retainAll(measures);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tencent.supersonic.headless.core.parser.calcite.sql.render;
|
||||
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.Constants;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.DataSource;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.Metric;
|
||||
@@ -11,6 +11,10 @@ import com.tencent.supersonic.headless.core.parser.calcite.sql.TableView;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.sql.node.FilterNode;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.sql.node.MetricNode;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.sql.node.SemanticNode;
|
||||
import org.apache.calcite.sql.SqlIdentifier;
|
||||
import org.apache.calcite.sql.SqlNode;
|
||||
import org.apache.calcite.sql.parser.SqlParserPos;
|
||||
import org.apache.calcite.sql.validate.SqlValidatorScope;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
@@ -18,15 +22,11 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import org.apache.calcite.sql.SqlIdentifier;
|
||||
import org.apache.calcite.sql.SqlNode;
|
||||
import org.apache.calcite.sql.parser.SqlParserPos;
|
||||
import org.apache.calcite.sql.validate.SqlValidatorScope;
|
||||
|
||||
public class FilterRender extends Renderer {
|
||||
|
||||
@Override
|
||||
public void render(MetricReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
public void render(MetricQueryReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
HeadlessSchema schema, boolean nonAgg) throws Exception {
|
||||
TableView tableView = super.tableView;
|
||||
SqlNode filterNode = null;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.tencent.supersonic.headless.core.parser.calcite.sql.render;
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.Constants;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.DataSource;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.Dimension;
|
||||
@@ -45,7 +45,7 @@ import java.util.stream.Collectors;
|
||||
public class JoinRender extends Renderer {
|
||||
|
||||
@Override
|
||||
public void render(MetricReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
public void render(MetricQueryReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
HeadlessSchema schema, boolean nonAgg) throws Exception {
|
||||
String queryWhere = metricCommand.getWhere();
|
||||
//dataSources = getOrderSource(dataSources);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tencent.supersonic.headless.core.parser.calcite.sql.render;
|
||||
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.common.pojo.ColumnOrder;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.DataSource;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.schema.HeadlessSchema;
|
||||
@@ -21,7 +21,7 @@ import org.springframework.util.CollectionUtils;
|
||||
public class OutputRender extends Renderer {
|
||||
|
||||
@Override
|
||||
public void render(MetricReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
public void render(MetricQueryReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
HeadlessSchema schema, boolean nonAgg) throws Exception {
|
||||
TableView selectDataSet = super.tableView;
|
||||
for (String dimension : metricCommand.getDimensions()) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tencent.supersonic.headless.core.parser.calcite.sql.render;
|
||||
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.Constants;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.DataSource;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.s2sql.Dimension;
|
||||
@@ -313,8 +313,8 @@ public class SourceRender extends Renderer {
|
||||
}
|
||||
}
|
||||
|
||||
public void render(MetricReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
HeadlessSchema schema, boolean nonAgg) throws Exception {
|
||||
public void render(MetricQueryReq metricCommand, List<DataSource> dataSources, SqlValidatorScope scope,
|
||||
HeadlessSchema schema, boolean nonAgg) throws Exception {
|
||||
String queryWhere = metricCommand.getWhere();
|
||||
Set<String> whereFields = new HashSet<>();
|
||||
List<String> fieldWhere = new ArrayList<>();
|
||||
|
||||
@@ -6,11 +6,11 @@ import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
||||
import com.tencent.supersonic.common.util.ContextUtils;
|
||||
import com.tencent.supersonic.common.util.DateModeUtils;
|
||||
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.common.core.pojo.MetricTable;
|
||||
import com.tencent.supersonic.headless.common.core.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DatabaseResp;
|
||||
import com.tencent.supersonic.headless.api.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetricTable;
|
||||
import com.tencent.supersonic.headless.api.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.DatabaseResp;
|
||||
import com.tencent.supersonic.headless.core.parser.HeadlessConverter;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.core.service.HeadlessQueryEngine;
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.tencent.supersonic.headless.core.parser.convert;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.Filter;
|
||||
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.core.parser.HeadlessConverter;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
|
||||
@@ -2,9 +2,9 @@ package com.tencent.supersonic.headless.core.parser.convert;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.Filter;
|
||||
import com.tencent.supersonic.common.pojo.exception.InvalidArgumentException;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.core.parser.HeadlessConverter;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.tencent.supersonic.headless.core.parser.convert;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.ColumnOrder;
|
||||
import com.tencent.supersonic.headless.common.core.pojo.Param;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.Param;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.core.parser.HeadlessConverter;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.core.utils.QueryStructUtils;
|
||||
@@ -42,14 +42,14 @@ public class ParserDefaultConverter implements HeadlessConverter {
|
||||
@Override
|
||||
public void converter(Catalog catalog, QueryStatement queryStatement) throws Exception {
|
||||
QueryStructReq queryStructCmd = queryStatement.getQueryStructReq();
|
||||
MetricReq metricCommand = queryStatement.getMetricReq();
|
||||
MetricReq metricReq = generateSqlCommand(catalog, queryStructCmd);
|
||||
MetricQueryReq metricCommand = queryStatement.getMetricReq();
|
||||
MetricQueryReq metricReq = generateSqlCommand(catalog, queryStructCmd);
|
||||
queryStatement.setMinMaxTime(queryStructUtils.getBeginEndTime(queryStructCmd));
|
||||
BeanUtils.copyProperties(metricReq, metricCommand);
|
||||
}
|
||||
|
||||
public MetricReq generateSqlCommand(Catalog catalog, QueryStructReq queryStructCmd) {
|
||||
MetricReq sqlCommend = new MetricReq();
|
||||
public MetricQueryReq generateSqlCommand(Catalog catalog, QueryStructReq queryStructCmd) {
|
||||
MetricQueryReq sqlCommend = new MetricQueryReq();
|
||||
sqlCommend.setMetrics(queryStructCmd.getMetrics());
|
||||
sqlCommend.setDimensions(queryStructCmd.getGroups());
|
||||
String where = queryStructUtils.generateWhere(queryStructCmd);
|
||||
|
||||
@@ -9,20 +9,20 @@ import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserReplaceHelper;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserSelectFunctionHelper;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserSelectHelper;
|
||||
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.common.core.pojo.MetricTable;
|
||||
import com.tencent.supersonic.headless.common.core.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.headless.common.server.request.SqlExecuteReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DatabaseResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetricTable;
|
||||
import com.tencent.supersonic.headless.api.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.headless.api.request.SqlExecuteReq;
|
||||
import com.tencent.supersonic.headless.api.response.DatabaseResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.core.service.HeadlessQueryEngine;
|
||||
import com.tencent.supersonic.headless.core.utils.QueryStructUtils;
|
||||
import com.tencent.supersonic.headless.server.engineadapter.EngineAdaptor;
|
||||
import com.tencent.supersonic.headless.server.engineadapter.EngineAdaptorFactory;
|
||||
import com.tencent.supersonic.headless.server.adaptor.db.DbAdaptor;
|
||||
import com.tencent.supersonic.headless.server.adaptor.db.DbAdaptorFactory;
|
||||
import com.tencent.supersonic.headless.server.pojo.EngineTypeEnum;
|
||||
import com.tencent.supersonic.headless.server.service.Catalog;
|
||||
import com.tencent.supersonic.headless.server.service.ModelService;
|
||||
@@ -176,7 +176,7 @@ public class QueryReqConverter {
|
||||
return;
|
||||
}
|
||||
String type = database.getType();
|
||||
EngineAdaptor engineAdaptor = EngineAdaptorFactory.getEngineAdaptor(type.toLowerCase());
|
||||
DbAdaptor engineAdaptor = DbAdaptorFactory.getEngineAdaptor(type.toLowerCase());
|
||||
log.info("type:{},engineAdaptor:{}", type, engineAdaptor);
|
||||
if (Objects.nonNull(engineAdaptor)) {
|
||||
String functionNameCorrector = engineAdaptor.functionNameCorrector(databaseReq.getSql());
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.tencent.supersonic.headless.core.parser.convert;
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.enums.ModelSourceType;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.api.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.enums.ModelSourceType;
|
||||
import com.tencent.supersonic.headless.api.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.core.parser.HeadlessConverter;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.core.utils.QueryStructUtils;
|
||||
@@ -52,12 +52,12 @@ public class ZipperModelConverter implements HeadlessConverter {
|
||||
public void converter(Catalog catalog, QueryStatement queryStatement) throws Exception {
|
||||
QueryStructReq queryStructCmd = queryStatement.getQueryStructReq();
|
||||
ParseSqlReq sqlCommend = queryStatement.getParseSqlReq();
|
||||
MetricReq metricCommand = queryStatement.getMetricReq();
|
||||
MetricQueryReq metricCommand = queryStatement.getMetricReq();
|
||||
doSingleZipperSource(queryStructCmd, sqlCommend, metricCommand);
|
||||
}
|
||||
|
||||
protected void doSingleZipperSource(QueryStructReq queryStructCmd, ParseSqlReq sqlCommend,
|
||||
MetricReq metricCommand) {
|
||||
MetricQueryReq metricCommand) {
|
||||
// all data sources are zipper tables
|
||||
// request time field rewrite to start_ end_
|
||||
if (!sqlCommend.getSql().isEmpty()) {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.tencent.supersonic.headless.core.persistence.mapper;
|
||||
|
||||
|
||||
import com.tencent.supersonic.headless.common.server.pojo.QueryStat;
|
||||
import com.tencent.supersonic.headless.common.core.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.QueryStat;
|
||||
import com.tencent.supersonic.headless.api.request.ItemUseReq;
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.tencent.supersonic.headless.core.persistence.pojo;
|
||||
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.api.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
|
||||
@@ -18,7 +18,7 @@ public class QueryStatement {
|
||||
private String errMsg = "";
|
||||
private Boolean ok;
|
||||
private QueryStructReq queryStructReq;
|
||||
private MetricReq metricReq;
|
||||
private MetricQueryReq metricReq;
|
||||
private ParseSqlReq parseSqlReq;
|
||||
private Integer status = 0;
|
||||
private Boolean isS2SQL = false;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.tencent.supersonic.headless.core.persistence.repository;
|
||||
|
||||
import com.tencent.supersonic.headless.common.server.pojo.QueryStat;
|
||||
import com.tencent.supersonic.headless.common.core.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.QueryStat;
|
||||
import com.tencent.supersonic.headless.api.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.api.response.ItemUseResp;
|
||||
import java.util.List;
|
||||
|
||||
public interface StatRepository {
|
||||
|
||||
@@ -3,9 +3,9 @@ package com.tencent.supersonic.headless.core.persistence.repository;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
||||
import com.tencent.supersonic.headless.common.core.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.QueryStat;
|
||||
import com.tencent.supersonic.headless.api.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.api.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.QueryStat;
|
||||
import com.tencent.supersonic.headless.core.persistence.mapper.StatMapper;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -3,22 +3,22 @@ package com.tencent.supersonic.headless.core.rest;
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.auth.api.authentication.utils.UserHolder;
|
||||
import com.tencent.supersonic.common.util.JsonUtil;
|
||||
import com.tencent.supersonic.headless.common.core.request.BatchDownloadReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.DownloadStructReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ExplainSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryItemReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryDimValueReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemQueryResultResp;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.common.server.enums.QueryType;
|
||||
import com.tencent.supersonic.headless.common.server.response.ExplainResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.core.response.SqlParserResp;
|
||||
import com.tencent.supersonic.headless.api.request.BatchDownloadReq;
|
||||
import com.tencent.supersonic.headless.api.request.DownloadStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.ExplainSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.api.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryItemReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryDimValueReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryMultiStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.ItemQueryResultResp;
|
||||
import com.tencent.supersonic.headless.api.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.api.enums.QueryType;
|
||||
import com.tencent.supersonic.headless.api.response.ExplainResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.SqlParserResp;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.core.service.DownloadService;
|
||||
import com.tencent.supersonic.headless.core.service.HeadlessQueryEngine;
|
||||
|
||||
@@ -4,14 +4,14 @@ import com.github.pagehelper.PageInfo;
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.auth.api.authentication.utils.UserHolder;
|
||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||
import com.tencent.supersonic.headless.common.server.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.common.server.request.PageDimensionReq;
|
||||
import com.tencent.supersonic.headless.common.server.request.PageMetricReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.DomainResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.api.request.PageDimensionReq;
|
||||
import com.tencent.supersonic.headless.api.request.PageMetricReq;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.DomainResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.service.SchemaService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.tencent.supersonic.headless.core.service;
|
||||
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.headless.common.core.request.BatchDownloadReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.DownloadStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.BatchDownloadReq;
|
||||
import com.tencent.supersonic.headless.api.request.DownloadStructReq;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public interface DownloadService {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.tencent.supersonic.headless.core.service;
|
||||
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.api.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.core.executor.QueryExecutor;
|
||||
|
||||
@@ -17,5 +17,5 @@ public interface HeadlessQueryEngine {
|
||||
|
||||
QueryStatement physicalSql(QueryStructReq queryStructCmd, ParseSqlReq sqlCommend) throws Exception;
|
||||
|
||||
QueryStatement physicalSql(QueryStructReq queryStructCmd, MetricReq sqlCommend) throws Exception;
|
||||
QueryStatement physicalSql(QueryStructReq queryStructCmd, MetricQueryReq sqlCommend) throws Exception;
|
||||
}
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
package com.tencent.supersonic.headless.core.service;
|
||||
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryItemReq;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemQueryResultResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ExplainResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.core.request.ExplainSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryDimValueReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.api.request.QueryItemReq;
|
||||
import com.tencent.supersonic.headless.api.response.ItemQueryResultResp;
|
||||
import com.tencent.supersonic.headless.api.response.ExplainResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.ExplainSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryDimValueReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryMultiStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.core.annotation.ApiHeaderCheck;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
|
||||
@@ -42,6 +42,6 @@ public interface QueryService {
|
||||
ItemQueryResultResp metricDataQueryById(QueryItemReq queryApiReq,
|
||||
HttpServletRequest request) throws Exception;
|
||||
|
||||
QueryStatement parseMetricReq(MetricReq metricReq) throws Exception;
|
||||
QueryStatement parseMetricReq(MetricQueryReq metricReq) throws Exception;
|
||||
|
||||
}
|
||||
|
||||
@@ -3,14 +3,14 @@ package com.tencent.supersonic.headless.core.service;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||
import com.tencent.supersonic.headless.common.server.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.common.server.request.PageDimensionReq;
|
||||
import com.tencent.supersonic.headless.common.server.request.PageMetricReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.DomainResp;
|
||||
import com.tencent.supersonic.headless.api.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.api.request.PageDimensionReq;
|
||||
import com.tencent.supersonic.headless.api.request.PageMetricReq;
|
||||
import com.tencent.supersonic.headless.api.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.response.DomainResp;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -13,16 +13,16 @@ import com.tencent.supersonic.common.pojo.QueryColumn;
|
||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||
import com.tencent.supersonic.common.util.DateUtils;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.DataDownload;
|
||||
import com.tencent.supersonic.headless.common.core.request.BatchDownloadReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.DownloadStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.enums.SemanticType;
|
||||
import com.tencent.supersonic.headless.common.server.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.BatchDownloadReq;
|
||||
import com.tencent.supersonic.headless.api.request.DownloadStructReq;
|
||||
import com.tencent.supersonic.headless.api.enums.SemanticType;
|
||||
import com.tencent.supersonic.headless.api.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.api.response.DimSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.service.QueryService;
|
||||
import com.tencent.supersonic.headless.core.utils.DataTransformUtils;
|
||||
import com.tencent.supersonic.headless.core.service.DownloadService;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.tencent.supersonic.headless.core.service.impl;
|
||||
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.api.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.core.executor.QueryExecutor;
|
||||
import com.tencent.supersonic.headless.core.optimizer.QueryOptimizer;
|
||||
import com.tencent.supersonic.headless.core.parser.QueryParser;
|
||||
@@ -78,7 +78,7 @@ public class HeadlessQueryEngineImpl implements HeadlessQueryEngine {
|
||||
return optimize(queryStructCmd, queryParser.parser(sqlCommend, queryStatement));
|
||||
}
|
||||
|
||||
public QueryStatement physicalSql(QueryStructReq queryStructCmd, MetricReq metricCommand) throws Exception {
|
||||
public QueryStatement physicalSql(QueryStructReq queryStructCmd, MetricQueryReq metricCommand) throws Exception {
|
||||
QueryStatement queryStatement = new QueryStatement();
|
||||
queryStatement.setQueryStructReq(queryStructCmd);
|
||||
queryStatement.setMetricReq(metricCommand);
|
||||
|
||||
@@ -14,29 +14,29 @@ import com.tencent.supersonic.common.pojo.exception.InvalidArgumentException;
|
||||
import com.tencent.supersonic.common.util.ContextUtils;
|
||||
import com.tencent.supersonic.common.util.JsonUtil;
|
||||
import com.tencent.supersonic.common.util.cache.CacheUtils;
|
||||
import com.tencent.supersonic.headless.common.core.pojo.SingleItemQueryResult;
|
||||
import com.tencent.supersonic.headless.common.core.pojo.Cache;
|
||||
import com.tencent.supersonic.headless.common.core.request.ExplainSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryItemReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryDimValueReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemQueryResultResp;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.common.server.enums.QueryType;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.Dim;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.Item;
|
||||
import com.tencent.supersonic.headless.common.server.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.AppDetailResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ExplainResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.SingleItemQueryResult;
|
||||
import com.tencent.supersonic.headless.api.pojo.Cache;
|
||||
import com.tencent.supersonic.headless.api.request.ExplainSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryItemReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryDimValueReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryMultiStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.ItemQueryResultResp;
|
||||
import com.tencent.supersonic.headless.api.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.api.enums.QueryType;
|
||||
import com.tencent.supersonic.headless.api.pojo.Dim;
|
||||
import com.tencent.supersonic.headless.api.pojo.Item;
|
||||
import com.tencent.supersonic.headless.api.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.api.response.AppDetailResp;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.ExplainResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.annotation.ApiHeaderCheck;
|
||||
import com.tencent.supersonic.headless.core.annotation.S2SQLDataPermission;
|
||||
import com.tencent.supersonic.headless.core.annotation.StructDataPermission;
|
||||
@@ -365,7 +365,7 @@ public class QueryServiceImpl implements QueryService {
|
||||
return ExplainResp.builder().sql(sql).build();
|
||||
}
|
||||
|
||||
public QueryStatement parseMetricReq(MetricReq metricReq) throws Exception {
|
||||
public QueryStatement parseMetricReq(MetricQueryReq metricReq) throws Exception {
|
||||
QueryStructReq queryStructCmd = new QueryStructReq();
|
||||
return headlessQueryEngine.physicalSql(queryStructCmd, metricReq);
|
||||
}
|
||||
|
||||
@@ -4,18 +4,18 @@ import com.github.pagehelper.PageInfo;
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
||||
import com.tencent.supersonic.headless.common.core.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.common.server.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.common.server.request.PageDimensionReq;
|
||||
import com.tencent.supersonic.headless.common.server.request.PageMetricReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.DomainResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.api.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.api.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.api.request.PageDimensionReq;
|
||||
import com.tencent.supersonic.headless.api.request.PageMetricReq;
|
||||
import com.tencent.supersonic.headless.api.response.DimSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.DomainResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.service.QueryService;
|
||||
import com.tencent.supersonic.headless.core.service.SchemaService;
|
||||
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||
|
||||
@@ -14,17 +14,17 @@ import com.tencent.supersonic.common.util.jsqlparser.FieldExpression;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserAddHelper;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserRemoveHelper;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserSelectHelper;
|
||||
import com.tencent.supersonic.headless.common.core.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.ItemDateFilter;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.headless.common.server.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.ParseSqlReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.ItemDateFilter;
|
||||
import com.tencent.supersonic.headless.api.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.headless.api.request.ModelSchemaFilterReq;
|
||||
import com.tencent.supersonic.headless.api.response.DimSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.service.SchemaService;
|
||||
import com.tencent.supersonic.headless.server.pojo.EngineTypeEnum;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
|
||||
@@ -5,11 +5,11 @@ import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.common.pojo.QueryColumn;
|
||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||
import com.tencent.supersonic.common.util.cache.CacheUtils;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||
import com.tencent.supersonic.headless.common.server.enums.SemanticType;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.QueryMultiStructReq;
|
||||
import com.tencent.supersonic.headless.api.enums.SemanticType;
|
||||
import com.tencent.supersonic.headless.api.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.server.service.Catalog;
|
||||
|
||||
@@ -5,7 +5,7 @@ import static com.tencent.supersonic.common.pojo.Constants.JOIN_UNDERLINE;
|
||||
import com.tencent.supersonic.common.pojo.Aggregator;
|
||||
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -7,16 +7,16 @@ import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.common.pojo.enums.TaskStatusEnum;
|
||||
import com.tencent.supersonic.common.util.SqlFilterUtils;
|
||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserSelectHelper;
|
||||
import com.tencent.supersonic.headless.common.core.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.common.core.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.common.core.enums.QueryOptMode;
|
||||
import com.tencent.supersonic.headless.common.core.enums.QueryTypeBack;
|
||||
import com.tencent.supersonic.headless.common.server.enums.QueryType;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.QueryStat;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.ItemUseReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryS2SQLReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.response.ItemUseResp;
|
||||
import com.tencent.supersonic.headless.api.enums.QueryOptMode;
|
||||
import com.tencent.supersonic.headless.api.enums.QueryTypeBack;
|
||||
import com.tencent.supersonic.headless.api.enums.QueryType;
|
||||
import com.tencent.supersonic.headless.api.pojo.QueryStat;
|
||||
import com.tencent.supersonic.headless.api.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.headless.api.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.persistence.repository.StatRepository;
|
||||
import com.tencent.supersonic.headless.server.service.ModelService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<mapper namespace="com.tencent.supersonic.headless.core.persistence.mapper.StatMapper">
|
||||
|
||||
<resultMap id="QueryStatDO"
|
||||
type="com.tencent.supersonic.headless.common.server.pojo.QueryStat">
|
||||
type="com.tencent.supersonic.headless.api.pojo.QueryStat">
|
||||
<id column="id" property="id"/>
|
||||
<result column="trace_id" property="traceId"/>
|
||||
<result column="model_id" property="modelId"/>
|
||||
@@ -55,7 +55,7 @@
|
||||
</insert>
|
||||
|
||||
<select id="getStatInfo"
|
||||
resultType="com.tencent.supersonic.headless.common.server.pojo.QueryStat">
|
||||
resultType="com.tencent.supersonic.headless.api.pojo.QueryStat">
|
||||
select *
|
||||
from s2_query_stat_info
|
||||
<where>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tencent.supersonic.headless.query.domain.calcite;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.ColumnOrder;
|
||||
import com.tencent.supersonic.headless.common.core.response.SqlParserResp;
|
||||
import com.tencent.supersonic.headless.api.response.SqlParserResp;
|
||||
import com.tencent.supersonic.headless.server.pojo.yaml.DataModelYamlTpl;
|
||||
import com.tencent.supersonic.headless.server.pojo.yaml.DimensionTimeTypeParamsTpl;
|
||||
import com.tencent.supersonic.headless.server.pojo.yaml.DimensionYamlTpl;
|
||||
@@ -9,8 +9,8 @@ import com.tencent.supersonic.headless.server.pojo.yaml.IdentifyYamlTpl;
|
||||
import com.tencent.supersonic.headless.server.pojo.yaml.MeasureYamlTpl;
|
||||
import com.tencent.supersonic.headless.server.pojo.yaml.MetricTypeParamsYamlTpl;
|
||||
import com.tencent.supersonic.headless.server.pojo.yaml.MetricYamlTpl;
|
||||
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.common.core.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.enums.AggOption;
|
||||
import com.tencent.supersonic.headless.api.request.MetricQueryReq;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.HeadlessSchemaManager;
|
||||
import com.tencent.supersonic.headless.core.parser.calcite.planner.AggPlanner;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
@@ -27,7 +27,7 @@ class HeadlessParserServiceTest {
|
||||
|
||||
private static Map<String, HeadlessSchema> headlessSchemaMap = new HashMap<>();
|
||||
|
||||
public static SqlParserResp parser(HeadlessSchema headlessSchema, MetricReq metricCommand, boolean isAgg) {
|
||||
public static SqlParserResp parser(HeadlessSchema headlessSchema, MetricQueryReq metricCommand, boolean isAgg) {
|
||||
SqlParserResp sqlParser = new SqlParserResp();
|
||||
if (metricCommand.getRootPath().isEmpty()) {
|
||||
sqlParser.setErrMsg("rootPath empty");
|
||||
@@ -164,7 +164,7 @@ class HeadlessParserServiceTest {
|
||||
|
||||
HeadlessSchemaManager.update(headlessSchema, HeadlessSchemaManager.getMetrics(metric));
|
||||
|
||||
MetricReq metricCommand = new MetricReq();
|
||||
MetricQueryReq metricCommand = new MetricQueryReq();
|
||||
metricCommand.setRootPath("s2");
|
||||
metricCommand.setDimensions(new ArrayList<>(Arrays.asList("sys_imp_date")));
|
||||
metricCommand.setMetrics(new ArrayList<>(Arrays.asList("pv")));
|
||||
@@ -177,7 +177,7 @@ class HeadlessParserServiceTest {
|
||||
|
||||
addDepartment(headlessSchema);
|
||||
|
||||
MetricReq metricCommand2 = new MetricReq();
|
||||
MetricQueryReq metricCommand2 = new MetricQueryReq();
|
||||
metricCommand2.setRootPath("s2");
|
||||
metricCommand2.setDimensions(new ArrayList<>(
|
||||
Arrays.asList("sys_imp_date", "user_name__department", "user_name", "user_name__page")));
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.tencent.supersonic.common.pojo.Aggregator;
|
||||
import com.tencent.supersonic.common.pojo.DateConf;
|
||||
import com.tencent.supersonic.common.pojo.DateConf.DateMode;
|
||||
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
||||
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.core.persistence.pojo.QueryStatement;
|
||||
import com.tencent.supersonic.headless.core.optimizer.QueryOptimizer;
|
||||
import com.tencent.supersonic.headless.core.parser.QueryParser;
|
||||
|
||||
@@ -5,13 +5,13 @@ import com.google.common.collect.Lists;
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.common.pojo.DateConf;
|
||||
import com.tencent.supersonic.common.util.DateUtils;
|
||||
import com.tencent.supersonic.headless.common.core.request.BatchDownloadReq;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.DrillDownDimension;
|
||||
import com.tencent.supersonic.headless.common.server.pojo.RelateDimension;
|
||||
import com.tencent.supersonic.headless.common.server.response.DimSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.MetricSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.request.BatchDownloadReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.DrillDownDimension;
|
||||
import com.tencent.supersonic.headless.api.pojo.RelateDimension;
|
||||
import com.tencent.supersonic.headless.api.response.DimSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.MetricSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.ModelSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp;
|
||||
import com.tencent.supersonic.headless.core.service.QueryService;
|
||||
import com.tencent.supersonic.headless.core.service.impl.DownloadServiceImpl;
|
||||
import com.tencent.supersonic.headless.server.service.ModelService;
|
||||
|
||||
Reference in New Issue
Block a user