mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-13 13:07:32 +00:00
(improvement)(headless)Reduce level of several logs, avoiding too verbase.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
[中文介绍](README_CN.md) | [日本語版](README_JP.md) | [Docs](https://supersonicbi.github.io/)
|
[中文版](README_CN.md) | [日本語版](README_JP.md) | [Docs](https://supersonicbi.github.io/)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ The high-level architecture and main process flow is as follows:
|
|||||||
### Online playground
|
### Online playground
|
||||||
Visit http://117.72.46.148:9080 to register and experience as a new user. Please do not modify system configurations. We will restart to reset configurations regularly every weekend.
|
Visit http://117.72.46.148:9080 to register and experience as a new user. Please do not modify system configurations. We will restart to reset configurations regularly every weekend.
|
||||||
|
|
||||||
## Local build
|
### Local build
|
||||||
SuperSonic comes with sample semantic models as well as chat conversations that can be used as a starting point. Please follow the steps:
|
SuperSonic comes with sample semantic models as well as chat conversations that can be used as a starting point. Please follow the steps:
|
||||||
|
|
||||||
- Download the latest prebuilt binary from the [release page](https://github.com/tencentmusic/supersonic/releases)
|
- Download the latest prebuilt binary from the [release page](https://github.com/tencentmusic/supersonic/releases)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[英文介绍](README.md) | [日本語版](README_JP.md) | [文档中心](https://supersonicbi.github.io/)
|
[English](README.md) | [日本語版](README_JP.md) | [文档中心](https://supersonicbi.github.io/)
|
||||||
|
|
||||||
# SuperSonic
|
# SuperSonic
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ ChatGPTのような大規模言語モデル(LLM)の出現は、情報検索
|
|||||||
### オンラインプレイグラウンド
|
### オンラインプレイグラウンド
|
||||||
http://117.72.46.148:9080 にアクセスして、新規ユーザーとして登録して体験してください。システム設定を変更しないでください。毎週末に定期的に再起動して設定をリセットします。
|
http://117.72.46.148:9080 にアクセスして、新規ユーザーとして登録して体験してください。システム設定を変更しないでください。毎週末に定期的に再起動して設定をリセットします。
|
||||||
|
|
||||||
## ローカルビルド
|
### ローカルビルド
|
||||||
SuperSonicには、サンプルのセマンティックモデルとチャット会話が付属しており、以下の手順で簡単に体験できます:
|
SuperSonicには、サンプルのセマンティックモデルとチャット会話が付属しており、以下の手順で簡単に体験できます:
|
||||||
|
|
||||||
- [リリースページ](https://github.com/tencentmusic/supersonic/releases)から最新のプリビルドバイナリをダウンロード
|
- [リリースページ](https://github.com/tencentmusic/supersonic/releases)から最新のプリビルドバイナリをダウンロード
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ package com.hankcs.hanlp.collection.trie.bintrie;
|
|||||||
|
|
||||||
import com.hankcs.hanlp.LoadRemoveService;
|
import com.hankcs.hanlp.LoadRemoveService;
|
||||||
import com.hankcs.hanlp.corpus.io.ByteArray;
|
import com.hankcs.hanlp.corpus.io.ByteArray;
|
||||||
import org.slf4j.Logger;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -18,7 +17,7 @@ import java.util.Objects;
|
|||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
public abstract class BaseNode<V> implements Comparable<BaseNode> {
|
public abstract class BaseNode<V> implements Comparable<BaseNode> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,7 +25,6 @@ public abstract class BaseNode<V> implements Comparable<BaseNode> {
|
|||||||
*/
|
*/
|
||||||
static final Status[] ARRAY_STATUS = Status.values();
|
static final Status[] ARRAY_STATUS = Status.values();
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(BaseNode.class);
|
|
||||||
/**
|
/**
|
||||||
* 子节点
|
* 子节点
|
||||||
*/
|
*/
|
||||||
@@ -289,10 +287,10 @@ public abstract class BaseNode<V> implements Comparable<BaseNode> {
|
|||||||
|
|
||||||
public void walkNode(Set<Map.Entry<String, V>> entrySet) {
|
public void walkNode(Set<Map.Entry<String, V>> entrySet) {
|
||||||
if (status == Status.WORD_MIDDLE_2 || status == Status.WORD_END_3) {
|
if (status == Status.WORD_MIDDLE_2 || status == Status.WORD_END_3) {
|
||||||
logger.debug("walkNode before:{}", value.toString());
|
log.debug("walkNode before:{}", value.toString());
|
||||||
List natures = new LoadRemoveService().removeNatures((List) value);
|
List natures = new LoadRemoveService().removeNatures((List) value);
|
||||||
String name = this.prefix != null ? this.prefix + c : "" + c;
|
String name = this.prefix != null ? this.prefix + c : "" + c;
|
||||||
logger.debug("walkNode name:{},after:{},natures:{}", name, (List) value, natures);
|
log.debug("walkNode name:{},after:{},natures:{}", name, (List) value, natures);
|
||||||
entrySet.add(new TrieEntry(name, (V) natures));
|
entrySet.add(new TrieEntry(name, (V) natures));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.http.Header;
|
import org.apache.http.Header;
|
||||||
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpEntity;
|
||||||
@@ -50,15 +52,10 @@ import org.apache.http.protocol.HttpContext;
|
|||||||
import org.apache.http.ssl.SSLContexts;
|
import org.apache.http.ssl.SSLContexts;
|
||||||
import org.apache.http.util.CharsetUtils;
|
import org.apache.http.util.CharsetUtils;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
public class HttpClientUtils {
|
public class HttpClientUtils {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(HttpClientUtils.class);
|
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* Encoding format. Unified sending encoding format using UTF-8
|
* Encoding format. Unified sending encoding format using UTF-8
|
||||||
*/
|
*/
|
||||||
@@ -114,17 +111,17 @@ public class HttpClientUtils {
|
|||||||
HttpRequestRetryHandler httpRequestRetryHandler = (exception, executionCount, context) -> {
|
HttpRequestRetryHandler httpRequestRetryHandler = (exception, executionCount, context) -> {
|
||||||
// 如果已经重试了3次,就放弃
|
// 如果已经重试了3次,就放弃
|
||||||
if (executionCount > 3) {
|
if (executionCount > 3) {
|
||||||
logger.warn("Maximum tries reached, exception would be thrown to outer block");
|
log.warn("Maximum tries reached, exception would be thrown to outer block");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (exception instanceof NoHttpResponseException) {
|
if (exception instanceof NoHttpResponseException) {
|
||||||
// 如果服务器丢掉了连接,那么就重试
|
// 如果服务器丢掉了连接,那么就重试
|
||||||
logger.warn("Retry, No response from server on {} error: {}", executionCount,
|
log.warn("Retry, No response from server on {} error: {}", executionCount,
|
||||||
exception.getMessage());
|
exception.getMessage());
|
||||||
return true;
|
return true;
|
||||||
} else if (exception instanceof SocketException) {
|
} else if (exception instanceof SocketException) {
|
||||||
// 如果服务器断开了连接,那么就重试
|
// 如果服务器断开了连接,那么就重试
|
||||||
logger.warn("Retry, No connection from server on {} error: {}", executionCount,
|
log.warn("Retry, No connection from server on {} error: {}", executionCount,
|
||||||
exception.getMessage());
|
exception.getMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -154,7 +151,7 @@ public class HttpClientUtils {
|
|||||||
.evictIdleConnections(5L, TimeUnit.SECONDS)
|
.evictIdleConnections(5L, TimeUnit.SECONDS)
|
||||||
.build();
|
.build();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -207,11 +204,11 @@ public class HttpClientUtils {
|
|||||||
response = httpClient.execute(httpPost);
|
response = httpClient.execute(httpPost);
|
||||||
// 获取返回结果
|
// 获取返回结果
|
||||||
HttpClientResult result = getHttpClientResult(response);
|
HttpClientResult result = getHttpClientResult(response);
|
||||||
logger.info("uri:{}, req:{}, resp:{}", url,
|
log.info("uri:{}, req:{}, resp:{}", url,
|
||||||
"headers:" + getHeaders(httpPost) + "------params:" + params, result);
|
"headers:" + getHeaders(httpPost) + "------params:" + params, result);
|
||||||
return result;
|
return result;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("uri:{}, req:{}", url, "headers:" + headers + "------params:" + params, e);
|
log.error("uri:{}, req:{}", url, "headers:" + headers + "------params:" + params, e);
|
||||||
throw new RuntimeException(e.getMessage());
|
throw new RuntimeException(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
close(httpPost, response);
|
close(httpPost, response);
|
||||||
@@ -288,11 +285,11 @@ public class HttpClientUtils {
|
|||||||
|
|
||||||
// 获取返回结果
|
// 获取返回结果
|
||||||
HttpClientResult res = getHttpClientResult(response);
|
HttpClientResult res = getHttpClientResult(response);
|
||||||
logger.debug("GET uri:{}, req:{}, resp:{}", url,
|
log.debug("GET uri:{}, req:{}, resp:{}", url,
|
||||||
"headers:" + getHeaders(httpGet) + "------params:" + params, res);
|
"headers:" + getHeaders(httpGet) + "------params:" + params, res);
|
||||||
return res;
|
return res;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("GET error! uri:{}, req:{}", url, "headers:" + headers + "------params:" + params, e);
|
log.error("GET error! uri:{}, req:{}", url, "headers:" + headers + "------params:" + params, e);
|
||||||
throw new RuntimeException(e.getMessage());
|
throw new RuntimeException(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
close(httpGet, response);
|
close(httpGet, response);
|
||||||
@@ -320,12 +317,12 @@ public class HttpClientUtils {
|
|||||||
try {
|
try {
|
||||||
EntityUtils.consume(response.getEntity());
|
EntityUtils.consume(response.getEntity());
|
||||||
} catch (Throwable ex) {
|
} catch (Throwable ex) {
|
||||||
logger.error("entity close error : ", ex);
|
log.error("entity close error : ", ex);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
response.close();
|
response.close();
|
||||||
} catch (Throwable ex) {
|
} catch (Throwable ex) {
|
||||||
logger.error("response close error : ", ex);
|
log.error("response close error : ", ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -333,7 +330,7 @@ public class HttpClientUtils {
|
|||||||
try {
|
try {
|
||||||
httpRequest.abort();
|
httpRequest.abort();
|
||||||
} catch (Throwable ex) {
|
} catch (Throwable ex) {
|
||||||
logger.error("httpPost abort error : ", ex);
|
log.error("httpPost abort error : ", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -433,11 +430,11 @@ public class HttpClientUtils {
|
|||||||
response = httpClient.execute(httpPost);
|
response = httpClient.execute(httpPost);
|
||||||
// 获取返回结果
|
// 获取返回结果
|
||||||
HttpClientResult res = getHttpClientResult(response);
|
HttpClientResult res = getHttpClientResult(response);
|
||||||
logger.info("doPostJSON uri:{}, req:{}, resp:{}", url,
|
log.info("doPostJSON uri:{}, req:{}, resp:{}", url,
|
||||||
"headers:" + getHeaders(httpPost) + "------req:" + req, res);
|
"headers:" + getHeaders(httpPost) + "------req:" + req, res);
|
||||||
return res;
|
return res;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("doPostJSON error! uri:{}, req:{}", url, "headers:" + headers + "------req:" + req, e);
|
log.error("doPostJSON error! uri:{}, req:{}", url, "headers:" + headers + "------req:" + req, e);
|
||||||
throw new RuntimeException(e.getMessage());
|
throw new RuntimeException(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
close(httpPost, response);
|
close(httpPost, response);
|
||||||
@@ -479,12 +476,12 @@ public class HttpClientUtils {
|
|||||||
// 获取返回结果
|
// 获取返回结果
|
||||||
HttpClientResult res = getHttpClientResult(response);
|
HttpClientResult res = getHttpClientResult(response);
|
||||||
|
|
||||||
logger.info("doGetJSON uri:{}, req:{}, resp:{}", url,
|
log.info("doGetJSON uri:{}, req:{}, resp:{}", url,
|
||||||
"headers:" + getHeaders(httpGet) + "------params:" + params, res);
|
"headers:" + getHeaders(httpGet) + "------params:" + params, res);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.warn("doGetJSON error! uri:{}, req:{}", url, "headers:" + headers + "------params:" + params, e);
|
log.warn("doGetJSON error! uri:{}, req:{}", url, "headers:" + headers + "------params:" + params, e);
|
||||||
throw new RuntimeException(e.getMessage());
|
throw new RuntimeException(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
close(httpGet, response);
|
close(httpGet, response);
|
||||||
@@ -548,11 +545,11 @@ public class HttpClientUtils {
|
|||||||
response = httpClient.execute(httpPost);
|
response = httpClient.execute(httpPost);
|
||||||
// 执行请求并获得响应结果
|
// 执行请求并获得响应结果
|
||||||
HttpClientResult res = getHttpClientResult(response);
|
HttpClientResult res = getHttpClientResult(response);
|
||||||
logger.info("doFileUpload uri:{}, req:{}, resp:{}", url,
|
log.info("doFileUpload uri:{}, req:{}, resp:{}", url,
|
||||||
"params:" + params + ", fullFilePath:" + fullFilePath, res);
|
"params:" + params + ", fullFilePath:" + fullFilePath, res);
|
||||||
return res;
|
return res;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("doFileUpload error! uri:{}, req:{}", url,
|
log.error("doFileUpload error! uri:{}, req:{}", url,
|
||||||
"params:" + params + ", fullFilePath:" + fullFilePath, e);
|
"params:" + params + ", fullFilePath:" + fullFilePath, e);
|
||||||
throw new RuntimeException(e.getMessage());
|
throw new RuntimeException(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
@@ -563,7 +560,7 @@ public class HttpClientUtils {
|
|||||||
// 释放资源
|
// 释放资源
|
||||||
close(httpPost, response);
|
close(httpPost, response);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.error("HttpClientUtils release error!", e);
|
log.error("HttpClientUtils release error!", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -619,11 +616,11 @@ public class HttpClientUtils {
|
|||||||
response = httpClient.execute(httpDelete);
|
response = httpClient.execute(httpDelete);
|
||||||
|
|
||||||
HttpClientResult res = getHttpClientResult(response);
|
HttpClientResult res = getHttpClientResult(response);
|
||||||
logger.info("doDeleteJSON uri:{}, req:{}, resp:{}", url,
|
log.info("doDeleteJSON uri:{}, req:{}, resp:{}", url,
|
||||||
"headers:" + getHeaders(httpDelete) + "------req:" + req, res);
|
"headers:" + getHeaders(httpDelete) + "------req:" + req, res);
|
||||||
return res;
|
return res;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("doDeleteJSON error! uri:{}, req:{}", url, "headers:" + headers + "------req:" + req, e);
|
log.error("doDeleteJSON error! uri:{}, req:{}", url, "headers:" + headers + "------req:" + req, e);
|
||||||
throw new RuntimeException(e.getMessage());
|
throw new RuntimeException(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
close(httpDelete, response);
|
close(httpDelete, response);
|
||||||
@@ -671,11 +668,11 @@ public class HttpClientUtils {
|
|||||||
httpPut.setEntity(stringEntity);
|
httpPut.setEntity(stringEntity);
|
||||||
response = httpClient.execute(httpPut);
|
response = httpClient.execute(httpPut);
|
||||||
HttpClientResult res = getHttpClientResult(response);
|
HttpClientResult res = getHttpClientResult(response);
|
||||||
logger.info("doPutJSON uri:{}, req:{}, resp:{}", url,
|
log.info("doPutJSON uri:{}, req:{}, resp:{}", url,
|
||||||
"headers:" + getHeaders(httpPut) + "------req:" + req, res);
|
"headers:" + getHeaders(httpPut) + "------req:" + req, res);
|
||||||
return res;
|
return res;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("doPutJSON error! uri:{}, req:{}", url, "headers:" + headers + "------req:" + req, e);
|
log.error("doPutJSON error! uri:{}, req:{}", url, "headers:" + headers + "------req:" + req, e);
|
||||||
throw new RuntimeException(e.getMessage());
|
throw new RuntimeException(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
close(httpPut, response);
|
close(httpPut, response);
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ public abstract class BaseMatchStrategy<T> implements MatchStrategy<T> {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
log.info("terms filter by dataSetId:{}", dataSetIds);
|
log.debug("terms filter by dataSetId:{}", dataSetIds);
|
||||||
logTerms(terms);
|
logTerms(terms);
|
||||||
}
|
}
|
||||||
return terms;
|
return terms;
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ public class MetricFilterQuery extends MetricSemanticQuery {
|
|||||||
private void addDimension(QueryStructReq queryStructReq, boolean onlyOperateInFilter) {
|
private void addDimension(QueryStructReq queryStructReq, boolean onlyOperateInFilter) {
|
||||||
if (!queryStructReq.getDimensionFilters().isEmpty()) {
|
if (!queryStructReq.getDimensionFilters().isEmpty()) {
|
||||||
List<String> dimensions = queryStructReq.getGroups();
|
List<String> dimensions = queryStructReq.getGroups();
|
||||||
log.info("addDimension before [{}]", queryStructReq.getGroups());
|
log.debug("addDimension before [{}]", queryStructReq.getGroups());
|
||||||
List<Filter> filters = new ArrayList<>(queryStructReq.getDimensionFilters());
|
List<Filter> filters = new ArrayList<>(queryStructReq.getDimensionFilters());
|
||||||
if (onlyOperateInFilter) {
|
if (onlyOperateInFilter) {
|
||||||
filters = filters.stream().filter(filter
|
filters = filters.stream().filter(filter
|
||||||
@@ -82,7 +82,7 @@ public class MetricFilterQuery extends MetricSemanticQuery {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
queryStructReq.setGroups(dimensions);
|
queryStructReq.setGroups(dimensions);
|
||||||
log.info("addDimension after [{}]", queryStructReq.getGroups());
|
log.debug("addDimension after [{}]", queryStructReq.getGroups());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class DefaultSemanticTranslator implements SemanticTranslator {
|
|||||||
log.debug("SemanticConverter before [{}]", queryParam);
|
log.debug("SemanticConverter before [{}]", queryParam);
|
||||||
for (QueryConverter headlessConverter : ComponentFactory.getQueryConverters()) {
|
for (QueryConverter headlessConverter : ComponentFactory.getQueryConverters()) {
|
||||||
if (headlessConverter.accept(queryStatement)) {
|
if (headlessConverter.accept(queryStatement)) {
|
||||||
log.info("SemanticConverter accept [{}]", headlessConverter.getClass().getName());
|
log.debug("SemanticConverter accept [{}]", headlessConverter.getClass().getName());
|
||||||
headlessConverter.convert(queryStatement);
|
headlessConverter.convert(queryStatement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -76,7 +76,7 @@ public class DefaultSemanticTranslator implements SemanticTranslator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public QueryStatement doParse(DataSetQueryParam dataSetQueryParam, QueryStatement queryStatement) {
|
public QueryStatement doParse(DataSetQueryParam dataSetQueryParam, QueryStatement queryStatement) {
|
||||||
log.info("parser MetricReq [{}] ", dataSetQueryParam);
|
log.info("parse dataSetQuery [{}] ", dataSetQueryParam);
|
||||||
try {
|
try {
|
||||||
if (!CollectionUtils.isEmpty(dataSetQueryParam.getTables())) {
|
if (!CollectionUtils.isEmpty(dataSetQueryParam.getTables())) {
|
||||||
List<String[]> tables = new ArrayList<>();
|
List<String[]> tables = new ArrayList<>();
|
||||||
@@ -123,7 +123,7 @@ public class DefaultSemanticTranslator implements SemanticTranslator {
|
|||||||
|
|
||||||
public QueryStatement doParse(QueryStatement queryStatement, AggOption isAgg) {
|
public QueryStatement doParse(QueryStatement queryStatement, AggOption isAgg) {
|
||||||
MetricQueryParam metricQueryParam = queryStatement.getMetricQueryParam();
|
MetricQueryParam metricQueryParam = queryStatement.getMetricQueryParam();
|
||||||
log.info("parser metricQueryReq [{}] isAgg [{}]", metricQueryParam, isAgg);
|
log.info("parse metricQuery [{}] isAgg [{}]", metricQueryParam, isAgg);
|
||||||
try {
|
try {
|
||||||
ComponentFactory.getQueryParser().parse(queryStatement, isAgg);
|
ComponentFactory.getQueryParser().parse(queryStatement, isAgg);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user