[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() {