(improvement)(project) support for modifying filter conditions and fix group by pushdown and add windows scipt (#49)

Co-authored-by: lexluo <lexluo@tencent.com>
This commit is contained in:
lexluo09
2023-09-03 23:51:47 +08:00
committed by GitHub
parent 8440f1f30e
commit 559ef974b0
317 changed files with 7449 additions and 9413 deletions

View File

@@ -12,11 +12,11 @@
<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>-->
<!-- <artifactId>clickhouse-jdbc</artifactId>-->
<!-- <version>${clickhouse.jdbc.version}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>

View File

@@ -1,8 +1,9 @@
package com.tencent.supersonic.semantic.api.model.pojo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
@Data
public class DimValueMap {

View File

@@ -1,11 +1,12 @@
package com.tencent.supersonic.semantic.api.model.pojo;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.util.List;
@Data
@ToString
@AllArgsConstructor

View File

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

View File

@@ -1,8 +1,10 @@
package com.tencent.supersonic.semantic.api.model.request;
import com.google.common.collect.Lists;
import com.tencent.supersonic.semantic.api.model.enums.DataTypeEnum;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
@Data
@@ -10,8 +12,6 @@ public class DatabaseReq {
private Long id;
private Long domainId;
private String name;
private String type;
@@ -32,6 +32,10 @@ public class DatabaseReq {
private String url;
private List<String> admins = Lists.newArrayList();
private List<String> viewers = Lists.newArrayList();
public String getUrl() {
if (StringUtils.isNotBlank(url)) {
return url;

View File

@@ -6,6 +6,7 @@ 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

@@ -2,10 +2,13 @@ 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 java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class DimensionReq extends SchemaItem {

View File

@@ -1,8 +1,8 @@
package com.tencent.supersonic.semantic.api.model.request;
import com.tencent.supersonic.common.pojo.DataFormat;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import com.tencent.supersonic.common.pojo.DataFormat;
import lombok.Data;

View File

@@ -4,8 +4,8 @@ package com.tencent.supersonic.semantic.api.model.request;
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 java.util.List;
import lombok.Data;
import java.util.List;
@Data
public class MetricReq extends MetricBaseReq {

View File

@@ -3,9 +3,10 @@ package com.tencent.supersonic.semantic.api.model.request;
import com.tencent.supersonic.semantic.api.model.pojo.Entity;
import com.tencent.supersonic.semantic.api.model.pojo.SchemaItem;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
@Data

View File

@@ -1,8 +1,9 @@
package com.tencent.supersonic.semantic.api.model.request;
import java.util.List;
import lombok.Data;
import java.util.List;
@Data
public class ModelSchemaFilterReq {

View File

@@ -2,8 +2,8 @@ package com.tencent.supersonic.semantic.api.model.request;
import com.google.common.collect.Lists;
import com.tencent.supersonic.common.pojo.PageBaseReq;
import java.util.List;
import lombok.Data;
import java.util.List;
@Data
public class PageSchemaItemReq extends PageBaseReq {

View File

@@ -7,11 +7,10 @@ import lombok.Data;
@Data
public class SqlExecuteReq {
public static final String LIMIT_WRAPPER = " select * from ( %s ) a limit 1000 ";
@NotNull(message = "modelId can not be null")
private Long modelId;
private Long id;
@NotBlank(message = "sql can not be blank")
private String sql;

View File

@@ -1,7 +1,10 @@
package com.tencent.supersonic.semantic.api.model.response;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.google.common.collect.Lists;
import com.tencent.supersonic.common.pojo.RecordInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -12,12 +15,18 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class DatabaseResp {
public class DatabaseResp extends RecordInfo {
private Long id;
private String name;
private String description;
private List<String> admins = Lists.newArrayList();
private List<String> viewers = Lists.newArrayList();
private String type;
private String url;
@@ -30,6 +39,12 @@ public class DatabaseResp {
private String version;
private boolean hasPermission = false;
private boolean hasUsePermission = false;
private boolean hasEditPermission = false;
public String getHost() {
Pattern p = Pattern.compile("jdbc:(?<db>\\w+):.*((//)|@)(?<host>.+):(?<port>\\d+).*");
Matcher m = p.matcher(url);

View File

@@ -3,7 +3,9 @@ package com.tencent.supersonic.semantic.api.model.response;
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;

View File

@@ -2,7 +2,9 @@ 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 java.util.List;
import lombok.Data;
import lombok.ToString;

View File

@@ -2,10 +2,11 @@ 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 java.util.List;
import lombok.Data;
import lombok.ToString;
import java.util.List;
@Data
@ToString
public class ModelResp extends SchemaItem {

View File

@@ -1,6 +1,7 @@
package com.tencent.supersonic.semantic.api.model.response;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@@ -6,6 +6,7 @@ import com.tencent.supersonic.common.pojo.QueryColumn;
import com.tencent.supersonic.semantic.api.model.pojo.QueryResult;
import java.util.List;
import java.util.Map;
import lombok.Data;
import lombok.ToString;

View File

@@ -1,8 +1,10 @@
package com.tencent.supersonic.semantic.api.query.pojo;
import com.tencent.supersonic.semantic.api.query.enums.FilterOperatorEnum;
import java.util.Arrays;
import java.util.List;
import lombok.Data;
@Data

View File

@@ -1,7 +1,9 @@
package com.tencent.supersonic.semantic.api.query.pojo;
import com.tencent.supersonic.semantic.api.query.enums.FilterOperatorEnum;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@@ -1,6 +1,7 @@
package com.tencent.supersonic.semantic.api.query.pojo;
import javax.validation.constraints.NotBlank;
import lombok.Data;
@Data

View File

@@ -1,15 +1,17 @@
package com.tencent.supersonic.semantic.api.query.request;
import com.google.common.collect.Lists;
import com.tencent.supersonic.common.pojo.Aggregator;
import com.tencent.supersonic.common.pojo.DateConf;
import com.tencent.supersonic.common.pojo.Order;
import com.tencent.supersonic.semantic.api.query.pojo.Cache;
import com.tencent.supersonic.semantic.api.query.pojo.Filter;
import com.tencent.supersonic.semantic.api.query.pojo.Param;
import com.tencent.supersonic.common.pojo.Aggregator;
import com.tencent.supersonic.common.pojo.DateConf;
import com.tencent.supersonic.common.pojo.Order;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Data;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.logging.log4j.util.Strings;