[improvement][project] supersonic 0.7.0 version backend update (#20)

Co-authored-by: kanedai <kanedai@tencent.com>
This commit is contained in:
daikon
2023-07-31 11:09:58 +08:00
committed by GitHub
parent 078a81038f
commit e2b2d31429
675 changed files with 13089 additions and 13536 deletions

View File

@@ -12,10 +12,17 @@
<artifactId>semantic-api</artifactId>
<dependencies>
<!-- <dependency>-->
<!-- <groupId>ru.yandex.clickhouse</groupId>-->
<!-- <artifactId>clickhouse-jdbc</artifactId>-->
<!-- <version>${clickhouse.jdbc.version}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>ru.yandex.clickhouse</groupId>
<groupId>com.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>${clickhouse.jdbc.version}</version>
<!-- use uber jar with all dependencies included, change classifier to http for smaller jar -->
<classifier>all</classifier>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>

View File

@@ -1,13 +0,0 @@
package com.tencent.supersonic.semantic.api.core.pojo;
import lombok.Data;
@Data
public class DataFormat {
private boolean needMultiply100;
private Integer decimalPlaces;
}

View File

@@ -1,20 +0,0 @@
package com.tencent.supersonic.semantic.api.core.pojo;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@AllArgsConstructor
@Data
@ToString
@NoArgsConstructor
public class QueryAuthorization {
private String domainName;
private List<String> dimensionFilters;
private List<String> dimensionFiltersDesc;
private String message;
}

View File

@@ -1,28 +0,0 @@
package com.tencent.supersonic.semantic.api.core.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QueryColumn {
private String name;
private String type;
private String nameEn;
private String showType;
private Boolean authorized = true;
private String dataFormatType;
private DataFormat dataFormat;
public QueryColumn(String nameEn, String type) {
this.type = type;
this.nameEn = nameEn;
}
public void setType(String type) {
this.type = type == null ? null : type;
}
}

View File

@@ -1,23 +0,0 @@
package com.tencent.supersonic.semantic.api.core.pojo;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.ToString;
@Data
@ToString
@AllArgsConstructor
public class RecordInfo {
private String createdBy;
private String updatedBy;
private Date createdAt;
private Date updatedAt;
}

View File

@@ -1,15 +0,0 @@
package com.tencent.supersonic.semantic.api.core.request;
import com.tencent.supersonic.common.pojo.SchemaItem;
import lombok.Data;
@Data
public class MetricBaseReq extends SchemaItem {
private Long domainId;
private String alias;
}

View File

@@ -1,17 +0,0 @@
package com.tencent.supersonic.semantic.api.core.response;
import com.tencent.supersonic.semantic.api.core.pojo.DatasourceDetail;
import com.tencent.supersonic.common.pojo.SchemaItem;
import lombok.Data;
@Data
public class DatasourceResp extends SchemaItem {
private Long domainId;
private Long databaseId;
private DatasourceDetail datasourceDetail;
}

View File

@@ -1,7 +1,7 @@
package com.tencent.supersonic.semantic.api.core.enums;
package com.tencent.supersonic.semantic.api.model.enums;
import com.tencent.supersonic.common.constant.Constants;
import com.tencent.supersonic.common.pojo.Constants;
import java.util.HashSet;
import java.util.Set;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.enums;
package com.tencent.supersonic.semantic.api.model.enums;
public enum DimensionTypeEnum {

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.enums;
package com.tencent.supersonic.semantic.api.model.enums;
public enum MetricTypeEnum {

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.enums;
package com.tencent.supersonic.semantic.api.model.enums;
public enum OperatorEnum {

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.enums;
package com.tencent.supersonic.semantic.api.model.enums;
public enum QueryTypeBackEnum {

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.enums;
package com.tencent.supersonic.semantic.api.model.enums;
public enum QueryTypeEnum {

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.enums;
package com.tencent.supersonic.semantic.api.model.enums;
import java.util.Arrays;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import java.util.List;
import lombok.Data;

View File

@@ -1,6 +1,6 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import com.tencent.supersonic.common.constant.Constants;
import com.tencent.supersonic.common.pojo.Constants;
import java.util.List;
import lombok.Data;

View File

@@ -1,6 +1,6 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import com.tencent.supersonic.common.constant.Constants;
import com.tencent.supersonic.common.pojo.Constants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@@ -0,0 +1,30 @@
package com.tencent.supersonic.semantic.api.model.pojo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author: kanedai
* @date: 2023/7/24
*/
@Data
public class DimValueMap {
/**
* dimension value in db
*/
private String techName;
/**
* dimension value for result show
*/
private String bizName;
/**
* dimension value for user query
*/
private List<String> alias = new ArrayList<>();
}

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@@ -0,0 +1,26 @@
package com.tencent.supersonic.semantic.api.model.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.util.List;
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class Entity {
/**
* uniquely identifies an entity
*/
private Long entityId;
/**
* entity name list
*/
private List<String> names;
}

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import java.util.List;
import lombok.AllArgsConstructor;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import java.util.List;
import com.google.common.collect.Lists;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import java.io.Serializable;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo;
package com.tencent.supersonic.semantic.api.model.pojo;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;

View File

@@ -0,0 +1,52 @@
package com.tencent.supersonic.semantic.api.model.pojo;
import com.google.common.base.Objects;
import com.tencent.supersonic.common.pojo.RecordInfo;
import com.tencent.supersonic.common.pojo.enums.SensitiveLevelEnum;
import com.tencent.supersonic.common.pojo.enums.StatusEnum;
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
import lombok.Data;
import lombok.ToString;
@Data
@ToString(callSuper = true)
public class SchemaItem extends RecordInfo {
private Long id;
private String name;
private String bizName;
private String description;
private Integer status = StatusEnum.ONLINE.getCode();
private TypeEnums typeEnum;
private Integer sensitiveLevel = SensitiveLevelEnum.LOW.getCode();
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
if (!super.equals(o)) {
return false;
}
SchemaItem that = (SchemaItem) o;
return Objects.equal(id, that.id) && Objects.equal(name, that.name)
&& Objects.equal(bizName, that.bizName) && Objects.equal(
description, that.description) && Objects.equal(status, that.status)
&& typeEnum == that.typeEnum && Objects.equal(sensitiveLevel, that.sensitiveLevel);
}
@Override
public int hashCode() {
return Objects.hashCode(super.hashCode(), id, name, bizName, description, status, typeEnum, sensitiveLevel);
}
}

View File

@@ -1,6 +1,6 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import com.tencent.supersonic.semantic.api.core.enums.DataTypeEnum;
import com.tencent.supersonic.semantic.api.model.enums.DataTypeEnum;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
@@ -26,6 +26,8 @@ public class DatabaseReq {
private String database;
private String version;
private String description;
private String url;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import javax.validation.constraints.NotNull;
import lombok.Data;

View File

@@ -1,10 +1,10 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import com.tencent.supersonic.semantic.api.core.pojo.Dim;
import com.tencent.supersonic.semantic.api.core.pojo.Identify;
import com.tencent.supersonic.semantic.api.core.pojo.Measure;
import com.tencent.supersonic.common.pojo.SchemaItem;
import com.tencent.supersonic.semantic.api.model.pojo.Dim;
import com.tencent.supersonic.semantic.api.model.pojo.Identify;
import com.tencent.supersonic.semantic.api.model.pojo.Measure;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import java.util.List;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,8 +1,12 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import com.tencent.supersonic.semantic.api.model.pojo.DimValueMap;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import com.tencent.supersonic.common.pojo.SchemaItem;
import javax.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
@@ -25,5 +29,5 @@ public class DimensionReq extends SchemaItem {
private List<String> defaultValues;
private List<DimValueMap> dimValueMaps;
}

View File

@@ -1,9 +1,12 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import com.tencent.supersonic.common.pojo.SchemaItem;
import com.tencent.supersonic.semantic.api.model.pojo.Entity;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
@@ -21,4 +24,6 @@ public class DomainReq extends SchemaItem {
private List<String> admins = new ArrayList<>();
private List<String> adminOrgs = new ArrayList<>();
private Entity entity;
}

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import java.util.List;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import lombok.Data;

View File

@@ -0,0 +1,20 @@
package com.tencent.supersonic.semantic.api.model.request;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import com.tencent.supersonic.common.pojo.DataFormat;
import lombok.Data;
@Data
public class MetricBaseReq extends SchemaItem {
private Long domainId;
private String alias;
private String dataFormatType;
private DataFormat dataFormat;
}

View File

@@ -1,9 +1,9 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import com.tencent.supersonic.semantic.api.core.enums.MetricTypeEnum;
import com.tencent.supersonic.semantic.api.core.pojo.Measure;
import com.tencent.supersonic.semantic.api.core.pojo.MetricTypeParams;
import com.tencent.supersonic.semantic.api.model.enums.MetricTypeEnum;
import com.tencent.supersonic.semantic.api.model.pojo.Measure;
import com.tencent.supersonic.semantic.api.model.pojo.MetricTypeParams;
import lombok.Data;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import lombok.Data;

View File

@@ -1,6 +1,6 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import com.tencent.supersonic.common.request.PageBaseReq;
import com.tencent.supersonic.common.pojo.PageBaseReq;
import lombok.Data;
@Data

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import javax.validation.constraints.NotBlank;
@@ -7,7 +7,7 @@ import lombok.Data;
@Data
public class SqlExecuteReq {
public static final String LIMIT_WRAPPER = " select * from ( %s ) a limit 1000 ";
@NotNull(message = "domainId can not be null")
private Long domainId;
@@ -16,7 +16,7 @@ public class SqlExecuteReq {
private String sql;
public String getSql() {
return String.format(" select * from ( %s ) a limit 1000 ", sql);
return String.format(LIMIT_WRAPPER, sql);
}

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.request;
package com.tencent.supersonic.semantic.api.model.request;
import java.util.Date;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -28,6 +28,8 @@ public class DatabaseResp {
private String database;
private String version;
public String getHost() {
Pattern p = Pattern.compile("jdbc:(?<db>\\w+):.*((//)|@)(?<host>.+):(?<port>\\d+).*");
Matcher m = p.matcher(url);

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import java.util.Date;
import lombok.Data;

View File

@@ -0,0 +1,17 @@
package com.tencent.supersonic.semantic.api.model.response;
import com.tencent.supersonic.semantic.api.model.pojo.DatasourceDetail;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import lombok.Data;
@Data
public class DatasourceResp extends SchemaItem {
private Long domainId;
private Long databaseId;
private DatasourceDetail datasourceDetail;
}

View File

@@ -1,8 +1,10 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import lombok.Data;
import lombok.ToString;
@Data
@ToString(callSuper = true)
public class DimSchemaResp extends DimensionResp {
private Long useCnt = 0L;

View File

@@ -1,12 +1,17 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import com.tencent.supersonic.common.pojo.SchemaItem;
import lombok.Data;
import com.tencent.supersonic.semantic.api.model.pojo.DimValueMap;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import java.util.List;
import lombok.Data;
import lombok.ToString;
@Data
@ToString(callSuper = true)
public class DimensionResp extends SchemaItem {
private Long domainId;
@@ -29,5 +34,6 @@ public class DimensionResp extends SchemaItem {
private List<String> defaultValues;
private List<DimValueMap> dimValueMaps;
}

View File

@@ -1,7 +1,10 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import com.tencent.supersonic.semantic.api.model.pojo.Entity;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import com.tencent.supersonic.common.pojo.SchemaItem;
import java.util.List;
import lombok.Data;
import lombok.ToString;
@@ -27,5 +30,6 @@ public class DomainResp extends SchemaItem {
private Integer metricCnt;
private Entity entity;
}

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import java.util.List;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import java.util.List;
import lombok.AllArgsConstructor;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import lombok.Data;

View File

@@ -1,13 +1,15 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import com.tencent.supersonic.semantic.api.core.pojo.DataFormat;
import com.tencent.supersonic.semantic.api.core.pojo.MetricTypeParams;
import com.tencent.supersonic.common.pojo.SchemaItem;
import com.tencent.supersonic.common.pojo.DataFormat;
import com.tencent.supersonic.semantic.api.model.pojo.MetricTypeParams;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import lombok.Data;
import lombok.ToString;
@Data
@ToString(callSuper = true)
public class MetricResp extends SchemaItem {
private Long domainId;

View File

@@ -1,8 +1,10 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import lombok.Data;
import lombok.ToString;
@Data
@ToString(callSuper = true)
public class MetricSchemaResp extends MetricResp {
private Long useCnt = 0L;

View File

@@ -1,9 +1,9 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import com.tencent.supersonic.semantic.api.core.pojo.QueryAuthorization;
import com.tencent.supersonic.semantic.api.core.pojo.QueryColumn;
import com.tencent.supersonic.semantic.api.core.pojo.QueryResult;
import com.tencent.supersonic.common.pojo.QueryAuthorization;
import com.tencent.supersonic.common.pojo.QueryColumn;
import com.tencent.supersonic.semantic.api.model.pojo.QueryResult;
import java.util.List;
import java.util.Map;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.response;
package com.tencent.supersonic.semantic.api.model.response;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo.yaml;
package com.tencent.supersonic.semantic.api.model.yaml;
import java.util.List;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo.yaml;
package com.tencent.supersonic.semantic.api.model.yaml;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo.yaml;
package com.tencent.supersonic.semantic.api.model.yaml;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo.yaml;
package com.tencent.supersonic.semantic.api.model.yaml;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo.yaml;
package com.tencent.supersonic.semantic.api.model.yaml;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo.yaml;
package com.tencent.supersonic.semantic.api.model.yaml;
import java.util.List;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.api.core.pojo.yaml;
package com.tencent.supersonic.semantic.api.model.yaml;
import java.util.List;

View File

@@ -13,6 +13,7 @@ public class ParseSqlReq {
private Map<String, String> variables;
private String sql = "";
private List<MetricTable> tables;
private boolean supportWith = true;
public Map<String, String> getVariables() {
if (variables == null) {

View File

@@ -6,7 +6,7 @@ import lombok.ToString;
@Data
@ToString
public class QuerySqlReq {
public class QueryDslReq {
private Long domainId;

View File

@@ -11,11 +11,11 @@ import org.apache.commons.codec.digest.DigestUtils;
public class QueryMultiStructReq {
List<QueryStructReq> queryStructCmds;
List<QueryStructReq> queryStructReqs;
public String toCustomizedString() {
return JSONObject.toJSONString(queryStructCmds);
return JSONObject.toJSONString(queryStructReqs);
}
public String generateCommandMd5() {

View File

@@ -1,38 +0,0 @@
package com.tencent.supersonic.semantic.core.domain;
import com.tencent.supersonic.semantic.api.core.pojo.ItemDateFilter;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.DatasourceYamlTpl;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.DimensionYamlTpl;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.MetricYamlTpl;
import com.tencent.supersonic.semantic.api.core.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.core.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.core.response.DimensionResp;
import com.tencent.supersonic.semantic.api.core.response.ItemDateResp;
import com.tencent.supersonic.semantic.api.core.response.MetricResp;
import java.util.List;
import java.util.Map;
import java.util.Set;
public interface Catalog {
DatabaseResp getDatabase(Long id);
List<DatasourceResp> getDatasourceList(Long domainId);
String getDomainFullPath(Long domainId);
Map<Long, String> getDomainFullPath();
DimensionResp getDimension(String bizName, Long domainId);
List<DimensionResp> getDimensions(Long domainId);
List<MetricResp> getMetrics(Long domainId);
void getModelYamlTplByDomainIds(Set<Long> domainIds, Map<String, List<DimensionYamlTpl>> dimensionYamlMap,
List<DatasourceYamlTpl> datasourceYamlTplList, List<MetricYamlTpl> metricYamlTplList);
ItemDateResp getDateDate(ItemDateFilter dimension, ItemDateFilter metric);
}

View File

@@ -1,19 +0,0 @@
package com.tencent.supersonic.semantic.core.domain.pojo;
import com.tencent.supersonic.semantic.api.core.pojo.DatasourceDetail;
import com.tencent.supersonic.common.pojo.SchemaItem;
import lombok.Data;
@Data
public class Datasource extends SchemaItem {
private Long domainId;
private Long databaseId;
private DatasourceDetail datasourceDetail;
}

View File

@@ -1,16 +0,0 @@
package com.tencent.supersonic.semantic.core.domain.repository;
import com.tencent.supersonic.semantic.api.core.pojo.ItemDateFilter;
import com.tencent.supersonic.semantic.api.core.request.DateInfoReq;
import com.tencent.supersonic.semantic.core.domain.dataobject.DateInfoDO;
import java.util.List;
public interface DateInfoRepository {
Integer upsertDateInfo(List<DateInfoReq> dateInfoReqs);
List<DateInfoDO> getDateInfos(ItemDateFilter itemDateFilter);
}

View File

@@ -9,7 +9,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>semantic-core</artifactId>
<artifactId>semantic-model</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
@@ -34,7 +34,10 @@
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>

View File

@@ -1,24 +1,25 @@
package com.tencent.supersonic.semantic.core.application;
package com.tencent.supersonic.semantic.model.application;
import com.tencent.supersonic.semantic.api.core.pojo.ItemDateFilter;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.DatasourceYamlTpl;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.DimensionYamlTpl;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.MetricYamlTpl;
import com.tencent.supersonic.semantic.api.core.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.core.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.core.response.DimensionResp;
import com.tencent.supersonic.semantic.api.core.response.ItemDateResp;
import com.tencent.supersonic.semantic.api.core.response.MetricResp;
import com.tencent.supersonic.semantic.core.domain.Catalog;
import com.tencent.supersonic.semantic.core.domain.DatasourceService;
import com.tencent.supersonic.semantic.core.domain.DimensionService;
import com.tencent.supersonic.semantic.core.domain.DomainService;
import com.tencent.supersonic.semantic.core.domain.MetricService;
import com.tencent.supersonic.semantic.core.domain.dataobject.DatabaseDO;
import com.tencent.supersonic.semantic.core.domain.repository.DatabaseRepository;
import com.tencent.supersonic.semantic.core.domain.utils.DatabaseConverter;
import com.tencent.supersonic.semantic.api.model.pojo.ItemDateFilter;
import com.tencent.supersonic.semantic.api.model.yaml.DatasourceYamlTpl;
import com.tencent.supersonic.semantic.api.model.yaml.DimensionYamlTpl;
import com.tencent.supersonic.semantic.api.model.yaml.MetricYamlTpl;
import com.tencent.supersonic.semantic.api.model.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.model.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.model.response.DimensionResp;
import com.tencent.supersonic.semantic.api.model.response.ItemDateResp;
import com.tencent.supersonic.semantic.api.model.response.MetricResp;
import com.tencent.supersonic.semantic.model.domain.Catalog;
import com.tencent.supersonic.semantic.model.domain.DatasourceService;
import com.tencent.supersonic.semantic.model.domain.DimensionService;
import com.tencent.supersonic.semantic.model.domain.DomainService;
import com.tencent.supersonic.semantic.model.domain.MetricService;
import com.tencent.supersonic.semantic.model.domain.dataobject.DatabaseDO;
import com.tencent.supersonic.semantic.model.domain.repository.DatabaseRepository;
import com.tencent.supersonic.semantic.model.domain.utils.DatabaseConverter;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -49,6 +50,12 @@ public class CatalogImpl implements Catalog {
return DatabaseConverter.convert(databaseDO);
}
public DatabaseResp getDatabaseByDomainId(Long domainId) {
List<DatabaseDO> databaseDOS = databaseRepository.getDatabaseByDomainId(domainId);
Optional<DatabaseDO> databaseDO = databaseDOS.stream().findFirst();
return databaseDO.map(DatabaseConverter::convert).orElse(null);
}
@Override
public String getDomainFullPath(Long domainId) {
return domainService.getDomainFullPath(domainId);
@@ -87,7 +94,7 @@ public class CatalogImpl implements Catalog {
}
@Override
public ItemDateResp getDateDate(ItemDateFilter dimension, ItemDateFilter metric) {
return datasourceService.getDateDate(dimension, metric);
public ItemDateResp getItemDate(ItemDateFilter dimension, ItemDateFilter metric) {
return datasourceService.getItemDate(dimension, metric);
}
}

View File

@@ -1,19 +1,19 @@
package com.tencent.supersonic.semantic.core.application;
package com.tencent.supersonic.semantic.model.application;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.core.request.DatabaseReq;
import com.tencent.supersonic.semantic.api.core.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.core.response.QueryResultWithSchemaResp;
import com.tencent.supersonic.semantic.api.core.response.SqlParserResp;
import com.tencent.supersonic.semantic.core.domain.adaptor.engineadapter.EngineAdaptor;
import com.tencent.supersonic.semantic.core.domain.adaptor.engineadapter.EngineAdaptorFactory;
import com.tencent.supersonic.semantic.core.domain.dataobject.DatabaseDO;
import com.tencent.supersonic.semantic.core.domain.repository.DatabaseRepository;
import com.tencent.supersonic.semantic.core.domain.utils.DatabaseConverter;
import com.tencent.supersonic.semantic.core.domain.utils.JdbcDataSourceUtils;
import com.tencent.supersonic.semantic.core.domain.utils.SqlUtils;
import com.tencent.supersonic.semantic.core.domain.DatabaseService;
import com.tencent.supersonic.semantic.core.domain.pojo.Database;
import com.tencent.supersonic.semantic.api.model.request.DatabaseReq;
import com.tencent.supersonic.semantic.api.model.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.model.response.QueryResultWithSchemaResp;
import com.tencent.supersonic.semantic.api.model.response.SqlParserResp;
import com.tencent.supersonic.semantic.model.domain.adaptor.engineadapter.EngineAdaptor;
import com.tencent.supersonic.semantic.model.domain.adaptor.engineadapter.EngineAdaptorFactory;
import com.tencent.supersonic.semantic.model.domain.dataobject.DatabaseDO;
import com.tencent.supersonic.semantic.model.domain.repository.DatabaseRepository;
import com.tencent.supersonic.semantic.model.domain.utils.DatabaseConverter;
import com.tencent.supersonic.semantic.model.domain.utils.JdbcDataSourceUtils;
import com.tencent.supersonic.semantic.model.domain.utils.SqlUtils;
import com.tencent.supersonic.semantic.model.domain.DatabaseService;
import com.tencent.supersonic.semantic.model.domain.pojo.Database;
import java.util.List;
import java.util.Optional;

View File

@@ -1,44 +1,44 @@
package com.tencent.supersonic.semantic.core.application;
package com.tencent.supersonic.semantic.model.application;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.common.util.json.JsonUtil;
import com.tencent.supersonic.semantic.api.core.pojo.DatasourceDetail;
import com.tencent.supersonic.semantic.api.core.pojo.Dim;
import com.tencent.supersonic.semantic.api.core.pojo.ItemDateFilter;
import com.tencent.supersonic.semantic.api.core.pojo.Measure;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.DatasourceYamlTpl;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.DimensionYamlTpl;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.MetricYamlTpl;
import com.tencent.supersonic.semantic.api.core.request.DatasourceRelaReq;
import com.tencent.supersonic.semantic.api.core.request.DatasourceReq;
import com.tencent.supersonic.semantic.api.core.request.DateInfoReq;
import com.tencent.supersonic.semantic.api.core.request.DimensionReq;
import com.tencent.supersonic.semantic.api.core.request.MetricReq;
import com.tencent.supersonic.semantic.api.core.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.core.response.DatasourceRelaResp;
import com.tencent.supersonic.semantic.api.core.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.core.response.DimensionResp;
import com.tencent.supersonic.semantic.api.core.response.ItemDateResp;
import com.tencent.supersonic.semantic.api.core.response.MeasureResp;
import com.tencent.supersonic.semantic.api.core.response.MetricResp;
import com.tencent.supersonic.semantic.core.domain.DatabaseService;
import com.tencent.supersonic.semantic.core.domain.DatasourceService;
import com.tencent.supersonic.semantic.core.domain.DimensionService;
import com.tencent.supersonic.semantic.core.domain.MetricService;
import com.tencent.supersonic.semantic.core.domain.dataobject.DatasourceDO;
import com.tencent.supersonic.semantic.core.domain.dataobject.DatasourceRelaDO;
import com.tencent.supersonic.semantic.core.domain.dataobject.DateInfoDO;
import com.tencent.supersonic.semantic.core.domain.manager.DatasourceYamlManager;
import com.tencent.supersonic.semantic.core.domain.manager.DimensionYamlManager;
import com.tencent.supersonic.semantic.core.domain.manager.MetricYamlManager;
import com.tencent.supersonic.semantic.core.domain.pojo.Datasource;
import com.tencent.supersonic.semantic.core.domain.repository.DatasourceRepository;
import com.tencent.supersonic.semantic.core.domain.repository.DateInfoRepository;
import com.tencent.supersonic.semantic.core.domain.utils.DatasourceConverter;
import com.tencent.supersonic.semantic.core.domain.utils.DimensionConverter;
import com.tencent.supersonic.semantic.core.domain.utils.MetricConverter;
import com.tencent.supersonic.common.util.JsonUtil;
import com.tencent.supersonic.semantic.api.model.pojo.DatasourceDetail;
import com.tencent.supersonic.semantic.api.model.pojo.Dim;
import com.tencent.supersonic.semantic.api.model.pojo.ItemDateFilter;
import com.tencent.supersonic.semantic.api.model.pojo.Measure;
import com.tencent.supersonic.semantic.api.model.yaml.DatasourceYamlTpl;
import com.tencent.supersonic.semantic.api.model.yaml.DimensionYamlTpl;
import com.tencent.supersonic.semantic.api.model.yaml.MetricYamlTpl;
import com.tencent.supersonic.semantic.api.model.request.DatasourceRelaReq;
import com.tencent.supersonic.semantic.api.model.request.DatasourceReq;
import com.tencent.supersonic.semantic.api.model.request.DateInfoReq;
import com.tencent.supersonic.semantic.api.model.request.DimensionReq;
import com.tencent.supersonic.semantic.api.model.request.MetricReq;
import com.tencent.supersonic.semantic.api.model.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.model.response.DatasourceRelaResp;
import com.tencent.supersonic.semantic.api.model.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.model.response.DimensionResp;
import com.tencent.supersonic.semantic.api.model.response.ItemDateResp;
import com.tencent.supersonic.semantic.api.model.response.MeasureResp;
import com.tencent.supersonic.semantic.api.model.response.MetricResp;
import com.tencent.supersonic.semantic.model.domain.DatabaseService;
import com.tencent.supersonic.semantic.model.domain.DatasourceService;
import com.tencent.supersonic.semantic.model.domain.DimensionService;
import com.tencent.supersonic.semantic.model.domain.MetricService;
import com.tencent.supersonic.semantic.model.domain.dataobject.DatasourceDO;
import com.tencent.supersonic.semantic.model.domain.dataobject.DatasourceRelaDO;
import com.tencent.supersonic.semantic.model.domain.dataobject.DateInfoDO;
import com.tencent.supersonic.semantic.model.domain.manager.DatasourceYamlManager;
import com.tencent.supersonic.semantic.model.domain.manager.DimensionYamlManager;
import com.tencent.supersonic.semantic.model.domain.manager.MetricYamlManager;
import com.tencent.supersonic.semantic.model.domain.pojo.Datasource;
import com.tencent.supersonic.semantic.model.domain.repository.DatasourceRepository;
import com.tencent.supersonic.semantic.model.domain.repository.DateInfoRepository;
import com.tencent.supersonic.semantic.model.domain.utils.DatasourceConverter;
import com.tencent.supersonic.semantic.model.domain.utils.DimensionConverter;
import com.tencent.supersonic.semantic.model.domain.utils.MetricConverter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -301,7 +301,7 @@ public class DatasourceServiceImpl implements DatasourceService {
@Override
public ItemDateResp getDateDate(ItemDateFilter dimension, ItemDateFilter metric) {
public ItemDateResp getItemDate(ItemDateFilter dimension, ItemDateFilter metric) {
List<DateInfoReq> itemDates = new ArrayList<>();
List<DateInfoDO> dimensions = dateInfoRepository.getDateInfos(dimension);
List<DateInfoDO> metrics = dateInfoRepository.getDateInfos(metric);

View File

@@ -1,23 +1,23 @@
package com.tencent.supersonic.semantic.core.application;
package com.tencent.supersonic.semantic.model.application;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.core.request.DimensionReq;
import com.tencent.supersonic.semantic.api.core.request.PageDimensionReq;
import com.tencent.supersonic.semantic.api.core.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.core.response.DimensionResp;
import com.tencent.supersonic.common.enums.SensitiveLevelEnum;
import com.tencent.supersonic.semantic.core.domain.dataobject.DimensionDO;
import com.tencent.supersonic.semantic.core.domain.repository.DimensionRepository;
import com.tencent.supersonic.semantic.core.domain.utils.DimensionConverter;
import com.tencent.supersonic.semantic.core.domain.DatasourceService;
import com.tencent.supersonic.semantic.core.domain.DimensionService;
import com.tencent.supersonic.semantic.core.domain.DomainService;
import com.tencent.supersonic.semantic.core.domain.pojo.Dimension;
import com.tencent.supersonic.semantic.core.domain.pojo.DimensionFilter;
import com.tencent.supersonic.semantic.api.model.request.DimensionReq;
import com.tencent.supersonic.semantic.api.model.request.PageDimensionReq;
import com.tencent.supersonic.semantic.api.model.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.model.response.DimensionResp;
import com.tencent.supersonic.common.pojo.enums.SensitiveLevelEnum;
import com.tencent.supersonic.semantic.model.domain.dataobject.DimensionDO;
import com.tencent.supersonic.semantic.model.domain.repository.DimensionRepository;
import com.tencent.supersonic.semantic.model.domain.utils.DimensionConverter;
import com.tencent.supersonic.semantic.model.domain.DatasourceService;
import com.tencent.supersonic.semantic.model.domain.DimensionService;
import com.tencent.supersonic.semantic.model.domain.DomainService;
import com.tencent.supersonic.semantic.model.domain.pojo.Dimension;
import com.tencent.supersonic.semantic.model.domain.pojo.DimensionFilter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

View File

@@ -1,27 +1,29 @@
package com.tencent.supersonic.semantic.core.application;
package com.tencent.supersonic.semantic.model.application;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.common.util.mapper.BeanMapper;
import com.tencent.supersonic.semantic.api.core.request.DomainReq;
import com.tencent.supersonic.semantic.api.core.request.DomainSchemaFilterReq;
import com.tencent.supersonic.semantic.api.core.request.DomainUpdateReq;
import com.tencent.supersonic.semantic.api.core.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.core.response.DimSchemaResp;
import com.tencent.supersonic.semantic.api.core.response.DimensionResp;
import com.tencent.supersonic.semantic.api.core.response.DomainResp;
import com.tencent.supersonic.semantic.api.core.response.DomainSchemaResp;
import com.tencent.supersonic.semantic.api.core.response.MetricResp;
import com.tencent.supersonic.semantic.api.core.response.MetricSchemaResp;
import com.tencent.supersonic.semantic.core.domain.DatasourceService;
import com.tencent.supersonic.semantic.core.domain.DimensionService;
import com.tencent.supersonic.semantic.core.domain.DomainService;
import com.tencent.supersonic.semantic.core.domain.MetricService;
import com.tencent.supersonic.semantic.core.domain.dataobject.DomainDO;
import com.tencent.supersonic.semantic.core.domain.pojo.Domain;
import com.tencent.supersonic.semantic.core.domain.repository.DomainRepository;
import com.tencent.supersonic.semantic.core.domain.utils.DomainConvert;
import com.tencent.supersonic.common.util.BeanMapper;
import com.tencent.supersonic.common.util.JsonUtil;
import com.tencent.supersonic.semantic.api.model.request.DomainReq;
import com.tencent.supersonic.semantic.api.model.request.DomainSchemaFilterReq;
import com.tencent.supersonic.semantic.api.model.request.DomainUpdateReq;
import com.tencent.supersonic.semantic.api.model.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.model.response.DimSchemaResp;
import com.tencent.supersonic.semantic.api.model.response.DimensionResp;
import com.tencent.supersonic.semantic.api.model.response.DomainResp;
import com.tencent.supersonic.semantic.api.model.response.DomainSchemaResp;
import com.tencent.supersonic.semantic.api.model.response.MetricResp;
import com.tencent.supersonic.semantic.api.model.response.MetricSchemaResp;
import com.tencent.supersonic.semantic.model.domain.DatasourceService;
import com.tencent.supersonic.semantic.model.domain.DimensionService;
import com.tencent.supersonic.semantic.model.domain.DomainService;
import com.tencent.supersonic.semantic.model.domain.MetricService;
import com.tencent.supersonic.semantic.model.domain.dataobject.DomainDO;
import com.tencent.supersonic.semantic.model.domain.pojo.Domain;
import com.tencent.supersonic.semantic.model.domain.repository.DomainRepository;
import com.tencent.supersonic.semantic.model.domain.utils.DomainConvert;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -29,6 +31,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Lazy;
@@ -47,7 +50,7 @@ public class DomainServiceImpl implements DomainService {
public DomainServiceImpl(DomainRepository domainRepository, @Lazy MetricService metricService,
@Lazy DimensionService dimensionService, @Lazy DatasourceService datasourceService) {
@Lazy DimensionService dimensionService, @Lazy DatasourceService datasourceService) {
this.domainRepository = domainRepository;
this.metricService = metricService;
this.dimensionService = dimensionService;
@@ -75,6 +78,7 @@ public class DomainServiceImpl implements DomainService {
domainDO.setAdminOrg(String.join(",", domainUpdateReq.getAdminOrgs()));
domainDO.setViewer(String.join(",", domainUpdateReq.getViewers()));
domainDO.setViewOrg(String.join(",", domainUpdateReq.getViewOrgs()));
domainDO.setEntity(JsonUtil.toString(domainUpdateReq.getEntity()));
domainRepository.updateDomain(domainDO);
}
@@ -161,7 +165,7 @@ public class DomainServiceImpl implements DomainService {
return "";
}
Map<Long, String> map = getDomainFullPathMap();
return map.get(domainId);
return map.containsKey(domainId) ? map.get(domainId) : "";
}
@Override
@@ -178,7 +182,7 @@ public class DomainServiceImpl implements DomainService {
private List<DomainResp> convertList(List<DomainDO> domainDOS, Map<Long, List<MetricResp>> metricDomainMap,
Map<Long, List<DimensionResp>> dimensionDomainMap) {
Map<Long, List<DimensionResp>> dimensionDomainMap) {
List<DomainResp> domainDescs = Lists.newArrayList();
if (CollectionUtils.isEmpty(domainDOS)) {
return domainDescs;

View File

@@ -1,24 +1,24 @@
package com.tencent.supersonic.semantic.core.application;
package com.tencent.supersonic.semantic.model.application;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.core.pojo.Measure;
import com.tencent.supersonic.semantic.api.core.pojo.MetricTypeParams;
import com.tencent.supersonic.semantic.api.core.request.MetricReq;
import com.tencent.supersonic.semantic.api.core.request.PageMetricReq;
import com.tencent.supersonic.semantic.api.core.response.DomainResp;
import com.tencent.supersonic.semantic.api.core.response.MetricResp;
import com.tencent.supersonic.common.enums.SensitiveLevelEnum;
import com.tencent.supersonic.semantic.core.domain.dataobject.MetricDO;
import com.tencent.supersonic.semantic.core.domain.pojo.MetricFilter;
import com.tencent.supersonic.semantic.core.domain.repository.MetricRepository;
import com.tencent.supersonic.semantic.core.domain.utils.MetricConverter;
import com.tencent.supersonic.semantic.core.domain.DomainService;
import com.tencent.supersonic.semantic.core.domain.MetricService;
import com.tencent.supersonic.semantic.core.domain.pojo.Metric;
import com.tencent.supersonic.semantic.api.model.pojo.Measure;
import com.tencent.supersonic.semantic.api.model.pojo.MetricTypeParams;
import com.tencent.supersonic.semantic.api.model.request.MetricReq;
import com.tencent.supersonic.semantic.api.model.request.PageMetricReq;
import com.tencent.supersonic.semantic.api.model.response.DomainResp;
import com.tencent.supersonic.semantic.api.model.response.MetricResp;
import com.tencent.supersonic.common.pojo.enums.SensitiveLevelEnum;
import com.tencent.supersonic.semantic.model.domain.dataobject.MetricDO;
import com.tencent.supersonic.semantic.model.domain.pojo.MetricFilter;
import com.tencent.supersonic.semantic.model.domain.repository.MetricRepository;
import com.tencent.supersonic.semantic.model.domain.utils.MetricConverter;
import com.tencent.supersonic.semantic.model.domain.DomainService;
import com.tencent.supersonic.semantic.model.domain.MetricService;
import com.tencent.supersonic.semantic.model.domain.pojo.Metric;
import java.util.List;
import java.util.Map;
@@ -99,14 +99,11 @@ public class MetricServiceImpl implements MetricService {
}
@Override
public PageInfo<MetricResp> queryMetric(PageMetricReq pageMetrricReq) {
if (pageMetrricReq.getDomainId() == null) {
return PageInfo.of(Lists.newArrayList());
}
public PageInfo<MetricResp> queryMetric(PageMetricReq pageMetricReq) {
MetricFilter metricFilter = new MetricFilter();
BeanUtils.copyProperties(pageMetrricReq, metricFilter);
PageInfo<MetricDO> metricDOPageInfo = PageHelper.startPage(pageMetrricReq.getCurrent(),
pageMetrricReq.getPageSize())
BeanUtils.copyProperties(pageMetricReq, metricFilter);
PageInfo<MetricDO> metricDOPageInfo = PageHelper.startPage(pageMetricReq.getCurrent(),
pageMetricReq.getPageSize())
.doSelectPageInfo(() -> queryMetric(metricFilter));
PageInfo<MetricResp> pageInfo = new PageInfo<>();
BeanUtils.copyProperties(metricDOPageInfo, pageInfo);

View File

@@ -1,17 +1,17 @@
package com.tencent.supersonic.semantic.core.application;
package com.tencent.supersonic.semantic.model.application;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.core.request.ViewInfoReq;
import com.tencent.supersonic.semantic.api.core.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.core.response.DimensionResp;
import com.tencent.supersonic.semantic.api.core.response.DomainSchemaRelaResp;
import com.tencent.supersonic.semantic.api.core.response.MetricResp;
import com.tencent.supersonic.semantic.core.domain.dataobject.ViewInfoDO;
import com.tencent.supersonic.semantic.core.domain.repository.ViewInfoRepository;
import com.tencent.supersonic.semantic.core.domain.DatasourceService;
import com.tencent.supersonic.semantic.core.domain.DimensionService;
import com.tencent.supersonic.semantic.core.domain.MetricService;
import com.tencent.supersonic.semantic.api.model.request.ViewInfoReq;
import com.tencent.supersonic.semantic.api.model.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.model.response.DimensionResp;
import com.tencent.supersonic.semantic.api.model.response.DomainSchemaRelaResp;
import com.tencent.supersonic.semantic.api.model.response.MetricResp;
import com.tencent.supersonic.semantic.model.domain.dataobject.ViewInfoDO;
import com.tencent.supersonic.semantic.model.domain.repository.ViewInfoRepository;
import com.tencent.supersonic.semantic.model.domain.DatasourceService;
import com.tencent.supersonic.semantic.model.domain.DimensionService;
import com.tencent.supersonic.semantic.model.domain.MetricService;
import java.util.Date;
import java.util.List;

View File

@@ -0,0 +1,39 @@
package com.tencent.supersonic.semantic.model.domain;
import com.tencent.supersonic.semantic.api.model.pojo.ItemDateFilter;
import com.tencent.supersonic.semantic.api.model.yaml.DatasourceYamlTpl;
import com.tencent.supersonic.semantic.api.model.yaml.DimensionYamlTpl;
import com.tencent.supersonic.semantic.api.model.yaml.MetricYamlTpl;
import com.tencent.supersonic.semantic.api.model.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.model.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.model.response.DimensionResp;
import com.tencent.supersonic.semantic.api.model.response.ItemDateResp;
import com.tencent.supersonic.semantic.api.model.response.MetricResp;
import java.util.List;
import java.util.Map;
import java.util.Set;
public interface Catalog {
DatabaseResp getDatabase(Long id);
DatabaseResp getDatabaseByDomainId(Long domainId);
List<DatasourceResp> getDatasourceList(Long domainId);
String getDomainFullPath(Long domainId);
Map<Long, String> getDomainFullPath();
DimensionResp getDimension(String bizName, Long domainId);
List<DimensionResp> getDimensions(Long domainId);
List<MetricResp> getMetrics(Long domainId);
void getModelYamlTplByDomainIds(Set<Long> domainIds, Map<String, List<DimensionYamlTpl>> dimensionYamlMap,
List<DatasourceYamlTpl> datasourceYamlTplList, List<MetricYamlTpl> metricYamlTplList);
ItemDateResp getItemDate(ItemDateFilter dimension, ItemDateFilter metric);
}

View File

@@ -1,10 +1,10 @@
package com.tencent.supersonic.semantic.core.domain;
package com.tencent.supersonic.semantic.model.domain;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.core.request.DatabaseReq;
import com.tencent.supersonic.semantic.api.core.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.core.response.QueryResultWithSchemaResp;
import com.tencent.supersonic.semantic.api.core.response.SqlParserResp;
import com.tencent.supersonic.semantic.api.model.request.DatabaseReq;
import com.tencent.supersonic.semantic.api.model.response.DatabaseResp;
import com.tencent.supersonic.semantic.api.model.response.QueryResultWithSchemaResp;
import com.tencent.supersonic.semantic.api.model.response.SqlParserResp;
public interface DatabaseService {

View File

@@ -1,17 +1,17 @@
package com.tencent.supersonic.semantic.core.domain;
package com.tencent.supersonic.semantic.model.domain;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.core.pojo.ItemDateFilter;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.DatasourceYamlTpl;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.DimensionYamlTpl;
import com.tencent.supersonic.semantic.api.core.pojo.yaml.MetricYamlTpl;
import com.tencent.supersonic.semantic.api.core.request.DatasourceRelaReq;
import com.tencent.supersonic.semantic.api.core.request.DatasourceReq;
import com.tencent.supersonic.semantic.api.core.response.DatasourceRelaResp;
import com.tencent.supersonic.semantic.api.core.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.core.response.ItemDateResp;
import com.tencent.supersonic.semantic.api.core.response.MeasureResp;
import com.tencent.supersonic.semantic.api.model.pojo.ItemDateFilter;
import com.tencent.supersonic.semantic.api.model.yaml.DatasourceYamlTpl;
import com.tencent.supersonic.semantic.api.model.yaml.DimensionYamlTpl;
import com.tencent.supersonic.semantic.api.model.yaml.MetricYamlTpl;
import com.tencent.supersonic.semantic.api.model.request.DatasourceRelaReq;
import com.tencent.supersonic.semantic.api.model.request.DatasourceReq;
import com.tencent.supersonic.semantic.api.model.response.DatasourceRelaResp;
import com.tencent.supersonic.semantic.api.model.response.DatasourceResp;
import com.tencent.supersonic.semantic.api.model.response.ItemDateResp;
import com.tencent.supersonic.semantic.api.model.response.MeasureResp;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -40,7 +40,7 @@ public interface DatasourceService {
void deleteDatasourceRela(Long id);
ItemDateResp getDateDate(ItemDateFilter dimension, ItemDateFilter metric);
ItemDateResp getItemDate(ItemDateFilter dimension, ItemDateFilter metric);
List<MeasureResp> getMeasureListOfDomain(Long domainId);

View File

@@ -1,10 +1,10 @@
package com.tencent.supersonic.semantic.core.domain;
package com.tencent.supersonic.semantic.model.domain;
import com.github.pagehelper.PageInfo;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.core.request.DimensionReq;
import com.tencent.supersonic.semantic.api.core.request.PageDimensionReq;
import com.tencent.supersonic.semantic.api.core.response.DimensionResp;
import com.tencent.supersonic.semantic.api.model.request.DimensionReq;
import com.tencent.supersonic.semantic.api.model.request.PageDimensionReq;
import com.tencent.supersonic.semantic.api.model.response.DimensionResp;
import java.util.List;
public interface DimensionService {

View File

@@ -1,11 +1,11 @@
package com.tencent.supersonic.semantic.core.domain;
package com.tencent.supersonic.semantic.model.domain;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.core.request.DomainReq;
import com.tencent.supersonic.semantic.api.core.request.DomainSchemaFilterReq;
import com.tencent.supersonic.semantic.api.core.request.DomainUpdateReq;
import com.tencent.supersonic.semantic.api.core.response.DomainResp;
import com.tencent.supersonic.semantic.api.core.response.DomainSchemaResp;
import com.tencent.supersonic.semantic.api.model.request.DomainReq;
import com.tencent.supersonic.semantic.api.model.request.DomainSchemaFilterReq;
import com.tencent.supersonic.semantic.api.model.request.DomainUpdateReq;
import com.tencent.supersonic.semantic.api.model.response.DomainResp;
import com.tencent.supersonic.semantic.api.model.response.DomainSchemaResp;
import java.util.List;
import java.util.Map;

View File

@@ -1,10 +1,10 @@
package com.tencent.supersonic.semantic.core.domain;
package com.tencent.supersonic.semantic.model.domain;
import com.github.pagehelper.PageInfo;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.core.request.MetricReq;
import com.tencent.supersonic.semantic.api.core.request.PageMetricReq;
import com.tencent.supersonic.semantic.api.core.response.MetricResp;
import com.tencent.supersonic.semantic.api.model.request.MetricReq;
import com.tencent.supersonic.semantic.api.model.request.PageMetricReq;
import com.tencent.supersonic.semantic.api.model.response.MetricResp;
import java.util.List;
public interface MetricService {

View File

@@ -1,7 +1,7 @@
package com.tencent.supersonic.semantic.core.domain.adaptor.engineadapter;
package com.tencent.supersonic.semantic.model.domain.adaptor.engineadapter;
import com.tencent.supersonic.semantic.api.core.enums.TimeDimensionEnum;
import com.tencent.supersonic.common.constant.Constants;
import com.tencent.supersonic.semantic.api.model.enums.TimeDimensionEnum;
import com.tencent.supersonic.common.pojo.Constants;
public class ClickHouseAdaptor extends EngineAdaptor {

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.adaptor.engineadapter;
package com.tencent.supersonic.semantic.model.domain.adaptor.engineadapter;
public abstract class EngineAdaptor {

View File

@@ -1,7 +1,7 @@
package com.tencent.supersonic.semantic.core.domain.adaptor.engineadapter;
package com.tencent.supersonic.semantic.model.domain.adaptor.engineadapter;
import com.tencent.supersonic.semantic.core.domain.pojo.EngineTypeEnum;
import com.tencent.supersonic.semantic.model.domain.pojo.EngineTypeEnum;
import java.util.HashMap;
import java.util.Map;
@@ -14,7 +14,7 @@ public class EngineAdaptorFactory {
engineAdaptorMap = new HashMap<>();
engineAdaptorMap.put(EngineTypeEnum.CLICKHOUSE.getName(), new ClickHouseAdaptor());
engineAdaptorMap.put(EngineTypeEnum.MYSQL.getName(), new MysqlAdaptor());
engineAdaptorMap.put(EngineTypeEnum.H2.getName(), new MysqlAdaptor());
engineAdaptorMap.put(EngineTypeEnum.H2.getName(), new H2Adaptor());
}

View File

@@ -0,0 +1,45 @@
package com.tencent.supersonic.semantic.model.domain.adaptor.engineadapter;
import com.tencent.supersonic.common.pojo.Constants;
import com.tencent.supersonic.semantic.api.model.enums.TimeDimensionEnum;
public class H2Adaptor extends EngineAdaptor {
@Override
public String getDateFormat(String dateType, String dateFormat, String column) {
if (dateFormat.equalsIgnoreCase(Constants.DAY_FORMAT_INT)) {
if (TimeDimensionEnum.MONTH.name().equalsIgnoreCase(dateType)) {
return "FORMATDATETIME(PARSEDATETIME(%s, 'yyyyMMdd'),'yyyy-MM')".replace("%s", column);
} else if (TimeDimensionEnum.WEEK.name().equalsIgnoreCase(dateType)) {
return "DATE_TRUNC('week',%s)".replace("%s", column);
} else {
return "FORMATDATETIME(PARSEDATETIME(%s, 'yyyyMMdd'),'yyyy-MM-dd')".replace("%s", column);
}
} else if (dateFormat.equalsIgnoreCase(Constants.DAY_FORMAT)) {
if (TimeDimensionEnum.MONTH.name().equalsIgnoreCase(dateType)) {
return "FORMATDATETIME(PARSEDATETIME(%s, 'yyyy-MM-dd'),'yyyy-MM') ".replace("%s", column);
} else if (TimeDimensionEnum.WEEK.name().equalsIgnoreCase(dateType)) {
return "DATE_TRUNC('week',%s)".replace("%s", column);
} else {
return column;
}
}
return column;
}
@Override
public String getColumnMetaQueryTpl() {
return "SELECT COLUMN_NAME AS name, DATA_TYPE AS dataType\n" +
"FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA ='%s' AND TABLE_NAME = '%s'";
}
@Override
public String getDbMetaQueryTpl() {
return "SELECT DISTINCT TABLE_SCHEMA as name FROM INFORMATION_SCHEMA.TABLES WHERE STORAGE_TYPE = 'MEMORY'";
}
@Override
public String getTableMetaQueryTpl() {
return "SELECT TABLE_NAME as name FROM INFORMATION_SCHEMA.TABLES WHERE STORAGE_TYPE = 'MEMORY' AND TABLE_SCHEMA = '%s'";
}
}

View File

@@ -1,7 +1,7 @@
package com.tencent.supersonic.semantic.core.domain.adaptor.engineadapter;
package com.tencent.supersonic.semantic.model.domain.adaptor.engineadapter;
import com.tencent.supersonic.semantic.api.core.enums.TimeDimensionEnum;
import com.tencent.supersonic.common.constant.Constants;
import com.tencent.supersonic.semantic.api.model.enums.TimeDimensionEnum;
import com.tencent.supersonic.common.pojo.Constants;
public class MysqlAdaptor extends EngineAdaptor {
@@ -35,12 +35,12 @@ public class MysqlAdaptor extends EngineAdaptor {
@Override
public String getDbMetaQueryTpl() {
return "select distinct TABLE_SCHEMA from information_schema.tables where TABLE_SCHEMA not in ('information_schema','mysql','performance_schema','sys');";
return "select distinct TABLE_SCHEMA as name from information_schema.tables where TABLE_SCHEMA not in ('information_schema','mysql','performance_schema','sys');";
}
@Override
public String getTableMetaQueryTpl() {
return "select TABLE_NAME from information_schema.tables where TABLE_SCHEMA = '%s';";
return "select TABLE_NAME as name from information_schema.tables where TABLE_SCHEMA = '%s';";
}
@Override

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.config;
package com.tencent.supersonic.semantic.model.domain.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import java.util.Date;
@@ -24,6 +24,11 @@ public class DatabaseDO {
*/
private String description;
/**
* 版本
*/
private String version;
/**
* 类型 mysql,clickhouse,tdw
*/
@@ -229,4 +234,16 @@ public class DatabaseDO {
public void setConfig(String config) {
this.config = config == null ? null : config.trim();
}
/**
* 版本信息
*
*/
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
}

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import java.util.ArrayList;
import java.util.Date;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import java.util.Date;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import java.util.ArrayList;
import java.util.Date;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import java.util.Date;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import java.util.ArrayList;
import java.util.Date;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import java.util.Date;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import java.util.ArrayList;
import java.util.Date;

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
public class DictionaryTaskDO {

View File

@@ -1,4 +1,4 @@
package com.tencent.supersonic.semantic.core.domain.dataobject;
package com.tencent.supersonic.semantic.model.domain.dataobject;
import java.util.ArrayList;
import java.util.List;

Some files were not shown because too many files have changed in this diff Show More