[improvement][launcher]Refactor unit tests and demo data.

[improvement][launcher]Refactor unit tests and demo data.

[improvement][launcher]Refactor unit tests and demo data.

[improvement][launcher]Refactor unit tests and demo data.
This commit is contained in:
jerryjzhang
2024-12-01 16:23:05 +08:00
parent 1c73453c5f
commit 0f1c50167d
84 changed files with 2097 additions and 7421 deletions

View File

@@ -1,10 +1,15 @@
package com.tencent.supersonic.headless.server.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("s2_available_date_info")
public class DateInfoDO {
@TableId(type = IdType.AUTO)
private Long id;
private String type;
private Long itemId;

View File

@@ -0,0 +1,52 @@
package com.tencent.supersonic.headless.server.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("s2_query_stat_info")
public class QueryStatDO {
@TableId(type = IdType.AUTO)
private Long id;
private String traceId;
private Long modelId;
private Long dataSetId;
@TableField("query_user")
private String user;
private String createdAt;
/** corresponding type, such as sql, struct, etc */
private String queryType;
/** NORMAL, PRE_FLUSH */
private Integer queryTypeBack;
private String querySqlCmd;
@TableField("sql_cmd_md5")
private String querySqlCmdMd5;
private String queryStructCmd;
@TableField("struct_cmd_md5")
private String queryStructCmdMd5;
private String sql;
private String sqlMd5;
private String queryEngine;
// private Long startTime;
private Long elapsedMs;
private String queryState;
private Boolean nativeQuery;
private String startDate;
private String endDate;
private String dimensions;
private String metrics;
private String selectCols;
private String aggCols;
private String filterCols;
private String groupByCols;
private String orderByCols;
private Boolean useResultCache;
private Boolean useSqlCache;
private String sqlCacheKey;
private String resultCacheKey;
private String queryOptMode;
}

View File

@@ -1,5 +1,6 @@
package com.tencent.supersonic.headless.server.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tencent.supersonic.headless.api.pojo.ItemDateFilter;
import com.tencent.supersonic.headless.server.persistence.dataobject.DateInfoDO;
import org.apache.ibatis.annotations.Mapper;
@@ -7,9 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface DateInfoMapper {
Boolean upsertDateInfo(DateInfoDO dateInfoDO);
public interface DateInfoMapper extends BaseMapper<DateInfoDO> {
List<DateInfoDO> getDateInfos(ItemDateFilter itemDateFilter);
}

View File

@@ -1,15 +1,15 @@
package com.tencent.supersonic.headless.server.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tencent.supersonic.headless.api.pojo.QueryStat;
import com.tencent.supersonic.headless.api.pojo.request.ItemUseReq;
import com.tencent.supersonic.headless.server.persistence.dataobject.QueryStatDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface StatMapper {
Boolean createRecord(QueryStat queryStatInfo);
public interface StatMapper extends BaseMapper<QueryStatDO> {
List<QueryStat> getStatInfo(ItemUseReq itemUseCommend);
}

View File

@@ -12,5 +12,4 @@ public interface StatRepository {
List<ItemUseResp> getStatInfo(ItemUseReq itemUseCommend);
List<QueryStat> getQueryStatInfoWithoutCache(ItemUseReq itemUseCommend);
}

View File

@@ -66,7 +66,7 @@ public class DateInfoRepositoryImpl implements DateInfoRepository {
private Integer batchUpsert(List<DateInfoDO> dateInfoDOList) {
Stopwatch stopwatch = Stopwatch.createStarted();
for (DateInfoDO dateInfoDO : dateInfoDOList) {
dateInfoMapper.upsertDateInfo(dateInfoDO);
dateInfoMapper.insertOrUpdate(dateInfoDO);
}
log.info("before final, elapsed time:{}", stopwatch.elapsed(TimeUnit.MILLISECONDS));
return 0;

View File

@@ -6,11 +6,13 @@ import com.tencent.supersonic.common.pojo.enums.TypeEnums;
import com.tencent.supersonic.headless.api.pojo.QueryStat;
import com.tencent.supersonic.headless.api.pojo.request.ItemUseReq;
import com.tencent.supersonic.headless.api.pojo.response.ItemUseResp;
import com.tencent.supersonic.headless.server.persistence.dataobject.QueryStatDO;
import com.tencent.supersonic.headless.server.persistence.mapper.StatMapper;
import com.tencent.supersonic.headless.server.persistence.repository.StatRepository;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
@@ -36,7 +38,9 @@ public class StatRepositoryImpl implements StatRepository {
@Override
public Boolean createRecord(QueryStat queryStatInfo) {
return statMapper.createRecord(queryStatInfo);
QueryStatDO queryStatDO = new QueryStatDO();
BeanUtils.copyProperties(queryStatInfo, queryStatDO);
return statMapper.insertOrUpdate(queryStatDO);
}
@Override
@@ -66,11 +70,6 @@ public class StatRepositoryImpl implements StatRepository {
.collect(Collectors.toList());
}
@Override
public List<QueryStat> getQueryStatInfoWithoutCache(ItemUseReq itemUseCommend) {
return statMapper.getStatInfo(itemUseCommend);
}
private void updateStatMapInfo(Map<String, Long> map, String dimensions, String type,
Long dataSetId) {
if (StringUtils.isNotEmpty(dimensions)) {
@@ -92,14 +91,4 @@ public class StatRepositoryImpl implements StatRepository {
}
}
private void updateStatMapInfo(Map<String, Long> map, Long modelId, String type) {
if (Objects.nonNull(modelId)) {
String key = type + AT_SYMBOL + AT_SYMBOL + modelId;
if (map.containsKey(key)) {
map.put(key, map.get(key) + 1);
} else {
map.put(key, 1L);
}
}
}
}

View File

@@ -40,21 +40,6 @@
<result column="query_opt_mode" property="queryOptMode"/>
</resultMap>
<insert id="createRecord">
insert into s2_query_stat_info
(
trace_id, model_id, data_set_id, `user`, query_type, query_type_back, query_sql_cmd, sql_cmd_md5, query_struct_cmd, struct_cmd_md5, `sql`, sql_md5, query_engine,
elapsed_ms, query_state, native_query, start_date, end_date, dimensions, metrics, select_cols, agg_cols, filter_cols, group_by_cols,
order_by_cols, use_result_cache, use_sql_cache, sql_cache_key, result_cache_key, query_opt_mode
)
values
(
#{traceId}, #{modelId}, #{dataSetId}, #{user}, #{queryType}, #{queryTypeBack}, #{querySqlCmd}, #{querySqlCmdMd5}, #{queryStructCmd}, #{queryStructCmdMd5}, #{sql}, #{sqlMd5}, #{queryEngine},
#{elapsedMs}, #{queryState}, #{nativeQuery}, #{startDate}, #{endDate}, #{dimensions}, #{metrics}, #{selectCols}, #{aggCols}, #{filterCols}, #{groupByCols},
#{orderByCols}, #{useResultCache}, #{useSqlCache}, #{sqlCacheKey}, #{resultCacheKey}, #{queryOptMode}
)
</insert>
<select id="getStatInfo"
resultType="com.tencent.supersonic.headless.api.pojo.QueryStat">
select *

View File

@@ -17,22 +17,6 @@
<result column="date_period" jdbcType="VARCHAR" property="datePeriod"/>
</resultMap>
<insert id="upsertDateInfo">
insert into s2_available_date_info
(`type`, item_id, date_format, start_date, end_date, unavailable_date, created_by,
updated_by,date_period)
values (#{type}, #{itemId}, #{dateFormat}, #{startDate}, #{endDate}, #{unavailableDateList},
#{createdBy}, #{updatedBy}, #{datePeriod}) ON DUPLICATE KEY
UPDATE
date_format = #{dateFormat},
start_date = #{startDate},
end_date = #{endDate},
unavailable_date = #{unavailableDateList},
created_by = #{createdBy},
updated_by = #{updatedBy},
date_period = #{datePeriod}
</insert>
<select id="getDateInfos" resultMap="BaseResultMap">
select e.*
from s2_available_date_info e