mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 20:51:48 +00:00
(fix)(common)Make sure system exemplar gets loaded before demo chats.
This commit is contained in:
@@ -15,6 +15,7 @@ import dev.langchain4j.store.embedding.RetrieveQueryResult;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.CommandLineRunner;
|
import org.springframework.boot.CommandLineRunner;
|
||||||
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -24,6 +25,7 @@ import java.util.List;
|
|||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
@Order(0)
|
||||||
public class ExemplarServiceImpl implements ExemplarService, CommandLineRunner {
|
public class ExemplarServiceImpl implements ExemplarService, CommandLineRunner {
|
||||||
|
|
||||||
private static final String SYS_EXEMPLAR_FILE = "s2ql_exemplar.json";
|
private static final String SYS_EXEMPLAR_FILE = "s2ql_exemplar.json";
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public class SqlFilterUtils {
|
|||||||
joiner.add(SPACE + dealFilter(filter, isBizName) + SPACE);
|
joiner.add(SPACE + dealFilter(filter, isBizName) + SPACE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
log.info("getWhereClause, where sql : {}", joiner);
|
log.debug("getWhereClause, where sql : {}", joiner);
|
||||||
return joiner.toString();
|
return joiner.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ public class SqlFilterUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String generator(Criterion criterion) {
|
private String generator(Criterion criterion) {
|
||||||
log.info("criterion :{}", criterion);
|
log.debug("criterion :{}", criterion);
|
||||||
String sqlPart;
|
String sqlPart;
|
||||||
switch (criterion.getOperator()) {
|
switch (criterion.getOperator()) {
|
||||||
case SQL_PART:
|
case SQL_PART:
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ public class TimeCorrector extends BaseSemanticCorrector {
|
|||||||
//decide whether add date field to where
|
//decide whether add date field to where
|
||||||
Environment environment = ContextUtils.getBean(Environment.class);
|
Environment environment = ContextUtils.getBean(Environment.class);
|
||||||
String correctorDate = environment.getProperty("s2.corrector.date");
|
String correctorDate = environment.getProperty("s2.corrector.date");
|
||||||
log.info("correctorDate:{}", correctorDate);
|
|
||||||
if (StringUtils.isNotBlank(correctorDate) && !Boolean.parseBoolean(correctorDate)) {
|
if (StringUtils.isNotBlank(correctorDate) && !Boolean.parseBoolean(correctorDate)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class SqlGenerateUtils {
|
|||||||
sb.append(agg.getColumn()).append(" as ").append("value").append(locate).append(",");
|
sb.append(agg.getColumn()).append(" as ").append("value").append(locate).append(",");
|
||||||
}
|
}
|
||||||
String selectSql = sb.substring(0, sb.length() - 1);
|
String selectSql = sb.substring(0, sb.length() - 1);
|
||||||
log.info("union select sql {}", selectSql);
|
log.debug("union select sql {}", selectSql);
|
||||||
return selectSql;
|
return selectSql;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ public class SqlGenerateUtils {
|
|||||||
} else if (StringUtils.isNotEmpty(whereFromDate) && StringUtils.isEmpty(whereClauseFromFilter)) {
|
} else if (StringUtils.isNotEmpty(whereFromDate) && StringUtils.isEmpty(whereClauseFromFilter)) {
|
||||||
return whereFromDate;
|
return whereFromDate;
|
||||||
} else if (Objects.isNull(whereFromDate) && StringUtils.isEmpty(whereClauseFromFilter)) {
|
} else if (Objects.isNull(whereFromDate) && StringUtils.isEmpty(whereClauseFromFilter)) {
|
||||||
log.info("the current date information is empty, enter the date initialization logic");
|
log.debug("the current date information is empty, enter the date initialization logic");
|
||||||
return dateModeUtils.defaultRecentDateInfo(queryParam.getDateInfo());
|
return dateModeUtils.defaultRecentDateInfo(queryParam.getDateInfo());
|
||||||
}
|
}
|
||||||
return whereClauseFromFilter;
|
return whereClauseFromFilter;
|
||||||
@@ -198,7 +198,7 @@ public class SqlGenerateUtils {
|
|||||||
|
|
||||||
return dateModeUtils.defaultRecentDateInfo(dateInfo);
|
return dateModeUtils.defaultRecentDateInfo(dateInfo);
|
||||||
}
|
}
|
||||||
log.info("dateDate:{}", dateDate);
|
log.debug("dateDate:{}", dateDate);
|
||||||
return dateModeUtils.getDateWhereStr(dateInfo, dateDate);
|
return dateModeUtils.getDateWhereStr(dateInfo, dateDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -320,7 +320,7 @@ public class SqlGenerateUtils {
|
|||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(replace)) {
|
if (!CollectionUtils.isEmpty(replace)) {
|
||||||
String expr = SqlReplaceHelper.replaceExpression(expression, replace);
|
String expr = SqlReplaceHelper.replaceExpression(expression, replace);
|
||||||
log.info("derived measure {}->{}", expression, expr);
|
log.debug("derived measure {}->{}", expression, expr);
|
||||||
return expr;
|
return expr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class DimValueAspect {
|
|||||||
QuerySqlReq querySqlReq = (QuerySqlReq) args[0];
|
QuerySqlReq querySqlReq = (QuerySqlReq) args[0];
|
||||||
MetaFilter metaFilter = new MetaFilter(Lists.newArrayList(querySqlReq.getModelIds()));
|
MetaFilter metaFilter = new MetaFilter(Lists.newArrayList(querySqlReq.getModelIds()));
|
||||||
String sql = querySqlReq.getSql();
|
String sql = querySqlReq.getSql();
|
||||||
log.info("correctorSql before replacing:{}", sql);
|
log.debug("correctorSql before replacing:{}", sql);
|
||||||
List<FieldExpression> fieldExpressionList = SqlSelectHelper.getWhereExpressions(sql);
|
List<FieldExpression> fieldExpressionList = SqlSelectHelper.getWhereExpressions(sql);
|
||||||
List<DimensionResp> dimensions = dimensionService.getDimensions(metaFilter);
|
List<DimensionResp> dimensions = dimensionService.getDimensions(metaFilter);
|
||||||
Set<String> fieldNames = dimensions.stream().map(SchemaItem::getName).collect(Collectors.toSet());
|
Set<String> fieldNames = dimensions.stream().map(SchemaItem::getName).collect(Collectors.toSet());
|
||||||
@@ -117,7 +117,7 @@ public class DimValueAspect {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
sql = SqlReplaceHelper.replaceValue(sql, filedNameToValueMap);
|
sql = SqlReplaceHelper.replaceValue(sql, filedNameToValueMap);
|
||||||
log.info("correctorSql after replacing:{}", sql);
|
log.debug("correctorSql after replacing:{}", sql);
|
||||||
querySqlReq.setSql(sql);
|
querySqlReq.setSql(sql);
|
||||||
Map<String, Map<String, String>> techNameToBizName = getTechNameToBizName(dimensions);
|
Map<String, Map<String, String>> techNameToBizName = getTechNameToBizName(dimensions);
|
||||||
|
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class QueryReqConverter {
|
|||||||
// correct order item is same as agg alias
|
// correct order item is same as agg alias
|
||||||
String reqSql = querySQLReq.getSql();
|
String reqSql = querySQLReq.getSql();
|
||||||
querySQLReq.setSql(SqlReplaceHelper.replaceAggAliasOrderItem(querySQLReq.getSql()));
|
querySQLReq.setSql(SqlReplaceHelper.replaceAggAliasOrderItem(querySQLReq.getSql()));
|
||||||
log.info("replaceOrderAggSameAlias {} -> {}", reqSql, querySQLReq.getSql());
|
log.debug("replaceOrderAggSameAlias {} -> {}", reqSql, querySQLReq.getSql());
|
||||||
//4.build MetricTables
|
//4.build MetricTables
|
||||||
List<String> allFields = SqlSelectHelper.getAllFields(querySQLReq.getSql());
|
List<String> allFields = SqlSelectHelper.getAllFields(querySQLReq.getSql());
|
||||||
List<MetricSchemaResp> metricSchemas = getMetrics(semanticSchemaResp, allFields);
|
List<MetricSchemaResp> metricSchemas = getMetrics(semanticSchemaResp, allFields);
|
||||||
@@ -122,7 +122,7 @@ public class QueryReqConverter {
|
|||||||
queryStructReq.setDateInfo(queryStructUtils.getDateConfBySql(querySQLReq.getSql()));
|
queryStructReq.setDateInfo(queryStructUtils.getDateConfBySql(querySQLReq.getSql()));
|
||||||
queryStructReq.setDataSetId(querySQLReq.getDataSetId());
|
queryStructReq.setDataSetId(querySQLReq.getDataSetId());
|
||||||
queryStructReq.setQueryType(getQueryType(aggOption));
|
queryStructReq.setQueryType(getQueryType(aggOption));
|
||||||
log.info("QueryReqConverter queryStructReq[{}]", queryStructReq);
|
log.debug("QueryReqConverter queryStructReq[{}]", queryStructReq);
|
||||||
QueryParam queryParam = new QueryParam();
|
QueryParam queryParam = new QueryParam();
|
||||||
convert(queryStructReq, queryParam);
|
convert(queryStructReq, queryParam);
|
||||||
QueryStatement queryStatement = new QueryStatement();
|
QueryStatement queryStatement = new QueryStatement();
|
||||||
@@ -161,7 +161,7 @@ public class QueryReqConverter {
|
|||||||
long defaultAggNullCnt = metricSchemas.stream()
|
long defaultAggNullCnt = metricSchemas.stream()
|
||||||
.filter(m -> Objects.isNull(m.getDefaultAgg()) || StringUtils.isBlank(m.getDefaultAgg())).count();
|
.filter(m -> Objects.isNull(m.getDefaultAgg()) || StringUtils.isBlank(m.getDefaultAgg())).count();
|
||||||
if (defaultAggNullCnt > 0) {
|
if (defaultAggNullCnt > 0) {
|
||||||
log.info("getAggOption find null defaultAgg metric set to NATIVE");
|
log.debug("getAggOption find null defaultAgg metric set to NATIVE");
|
||||||
return AggOption.OUTER;
|
return AggOption.OUTER;
|
||||||
}
|
}
|
||||||
return AggOption.DEFAULT;
|
return AggOption.DEFAULT;
|
||||||
@@ -170,9 +170,9 @@ public class QueryReqConverter {
|
|||||||
private void convertNameToBizName(QuerySqlReq querySqlReq, SemanticSchemaResp semanticSchemaResp) {
|
private void convertNameToBizName(QuerySqlReq querySqlReq, SemanticSchemaResp semanticSchemaResp) {
|
||||||
Map<String, String> fieldNameToBizNameMap = getFieldNameToBizNameMap(semanticSchemaResp);
|
Map<String, String> fieldNameToBizNameMap = getFieldNameToBizNameMap(semanticSchemaResp);
|
||||||
String sql = querySqlReq.getSql();
|
String sql = querySqlReq.getSql();
|
||||||
log.info("dataSetId:{},convert name to bizName before:{}", querySqlReq.getDataSetId(), sql);
|
log.debug("dataSetId:{},convert name to bizName before:{}", querySqlReq.getDataSetId(), sql);
|
||||||
String replaceFields = SqlReplaceHelper.replaceFields(sql, fieldNameToBizNameMap, true);
|
String replaceFields = SqlReplaceHelper.replaceFields(sql, fieldNameToBizNameMap, true);
|
||||||
log.info("dataSetId:{},convert name to bizName after:{}", querySqlReq.getDataSetId(), replaceFields);
|
log.debug("dataSetId:{},convert name to bizName after:{}", querySqlReq.getDataSetId(), replaceFields);
|
||||||
querySqlReq.setSql(replaceFields);
|
querySqlReq.setSql(replaceFields);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -240,7 +240,7 @@ public class QueryReqConverter {
|
|||||||
String sql = querySqlReq.getSql();
|
String sql = querySqlReq.getSql();
|
||||||
sql = SqlReplaceHelper.replaceTable(sql,
|
sql = SqlReplaceHelper.replaceTable(sql,
|
||||||
Constants.TABLE_PREFIX + querySqlReq.getDataSetId());
|
Constants.TABLE_PREFIX + querySqlReq.getDataSetId());
|
||||||
log.info("correctTableName after:{}", sql);
|
log.debug("correctTableName after:{}", sql);
|
||||||
querySqlReq.setSql(sql);
|
querySqlReq.setSql(sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,7 +286,7 @@ public class QueryReqConverter {
|
|||||||
m.getMetricDefineByMeasureParams()))) {
|
m.getMetricDefineByMeasureParams()))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
log.info("begin to generateDerivedMetric {} [{}]", aggOption, metrics);
|
log.debug("begin to generateDerivedMetric {} [{}]", aggOption, metrics);
|
||||||
Set<String> allFields = new HashSet<>();
|
Set<String> allFields = new HashSet<>();
|
||||||
Map<String, Measure> allMeasures = new HashMap<>();
|
Map<String, Measure> allMeasures = new HashMap<>();
|
||||||
semanticSchemaResp.getModelResps().forEach(modelResp -> {
|
semanticSchemaResp.getModelResps().forEach(modelResp -> {
|
||||||
@@ -310,7 +310,7 @@ public class QueryReqConverter {
|
|||||||
visitedMetric,
|
visitedMetric,
|
||||||
deriveMetric, deriveDimension);
|
deriveMetric, deriveDimension);
|
||||||
replaces.put(metricResp.getBizName(), expr);
|
replaces.put(metricResp.getBizName(), expr);
|
||||||
log.info("derived metric {}->{}", metricResp.getBizName(), expr);
|
log.debug("derived metric {}->{}", metricResp.getBizName(), expr);
|
||||||
} else {
|
} else {
|
||||||
measures.add(metricResp.getBizName());
|
measures.add(metricResp.getBizName());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user