mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-20 06:34:55 +00:00
[improvement][headless]Support dataSetNames that contain dash.
[improvement][headless]Support dataSetNames that contain dash. [improvement][headless]Support dataSetNames that contain dash.
This commit is contained in:
@@ -20,6 +20,7 @@ import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
||||
import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.DomainDO;
|
||||
import com.tencent.supersonic.headless.server.persistence.repository.DomainRepository;
|
||||
import com.tencent.supersonic.headless.server.service.DataSetService;
|
||||
import com.tencent.supersonic.headless.server.service.DatabaseService;
|
||||
import com.tencent.supersonic.headless.server.service.SchemaService;
|
||||
import com.tencent.supersonic.util.DataUtils;
|
||||
@@ -46,6 +47,8 @@ public class BaseTest extends BaseApplication {
|
||||
private AgentService agentService;
|
||||
@Autowired
|
||||
protected DatabaseService databaseService;
|
||||
@Autowired
|
||||
protected DataSetService dataSetService;
|
||||
|
||||
protected Agent agent;
|
||||
protected SemanticSchema schema;
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.tencent.supersonic.headless;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.User;
|
||||
import com.tencent.supersonic.demo.S2VisitsDemo;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticTranslateResp;
|
||||
import com.tencent.supersonic.headless.chat.utils.QueryReqBuilder;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -18,14 +19,15 @@ import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class TranslatorTest extends BaseTest {
|
||||
|
||||
private Long dataSetId;
|
||||
private DataSetResp dataSet;
|
||||
|
||||
@BeforeEach
|
||||
public void init() {
|
||||
agent = getAgentByName(S2VisitsDemo.AGENT_NAME);
|
||||
schema = schemaService.getSemanticSchema(agent.getDataSetIds());
|
||||
if (Objects.nonNull(agent)) {
|
||||
dataSetId = agent.getDataSetIds().stream().findFirst().get();
|
||||
long dataSetId = agent.getDataSetIds().stream().findFirst().get();
|
||||
dataSet = dataSetService.getDataSet(dataSetId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +36,7 @@ public class TranslatorTest extends BaseTest {
|
||||
String sql =
|
||||
"SELECT SUM(访问次数) AS _总访问次数_ FROM 超音数数据集 WHERE 数据日期 >= '2024-11-15' AND 数据日期 <= '2024-12-15'";
|
||||
SemanticTranslateResp explain = semanticLayerService
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSetId), User.getDefaultUser());
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSet), User.getDefaultUser());
|
||||
assertNotNull(explain);
|
||||
assertNotNull(explain.getQuerySQL());
|
||||
assertTrue(explain.getQuerySQL().contains("count(1)"));
|
||||
@@ -45,7 +47,7 @@ public class TranslatorTest extends BaseTest {
|
||||
public void testSql_1() throws Exception {
|
||||
String sql = "SELECT 部门, SUM(访问次数) AS 总访问次数 FROM 超音数PVUV统计 GROUP BY 部门 ";
|
||||
SemanticTranslateResp explain = semanticLayerService
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSetId), User.getDefaultUser());
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSet), User.getDefaultUser());
|
||||
assertNotNull(explain);
|
||||
assertNotNull(explain.getQuerySQL());
|
||||
assertTrue(explain.getQuerySQL().contains("department"));
|
||||
@@ -59,7 +61,7 @@ public class TranslatorTest extends BaseTest {
|
||||
String sql =
|
||||
"WITH _department_visits_ AS (SELECT 部门, SUM(访问次数) AS _total_visits_ FROM 超音数数据集 WHERE 数据日期 >= '2024-11-15' AND 数据日期 <= '2024-12-15' GROUP BY 部门) SELECT 部门 FROM _department_visits_ ORDER BY _total_visits_ DESC LIMIT 2";
|
||||
SemanticTranslateResp explain = semanticLayerService
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSetId), User.getDefaultUser());
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSet), User.getDefaultUser());
|
||||
assertNotNull(explain);
|
||||
assertNotNull(explain.getQuerySQL());
|
||||
assertTrue(explain.getQuerySQL().toLowerCase().contains("department"));
|
||||
@@ -73,7 +75,7 @@ public class TranslatorTest extends BaseTest {
|
||||
String sql =
|
||||
"WITH recent_data AS (SELECT 用户名, 访问次数 FROM 超音数数据集 WHERE 部门 = 'marketing' AND 数据日期 >= '2024-12-01' AND 数据日期 <= '2024-12-15') SELECT 用户名 FROM recent_data ORDER BY 访问次数 DESC LIMIT 1";
|
||||
SemanticTranslateResp explain = semanticLayerService
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSetId), User.getDefaultUser());
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSet), User.getDefaultUser());
|
||||
assertNotNull(explain);
|
||||
assertNotNull(explain.getQuerySQL());
|
||||
assertTrue(explain.getQuerySQL().toLowerCase().contains("department"));
|
||||
@@ -89,7 +91,7 @@ public class TranslatorTest extends BaseTest {
|
||||
Paths.get(ClassLoader.getSystemResource("sql/testUnion.sql").toURI())),
|
||||
StandardCharsets.UTF_8);
|
||||
SemanticTranslateResp explain = semanticLayerService
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSetId), User.getDefaultUser());
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSet), User.getDefaultUser());
|
||||
assertNotNull(explain);
|
||||
assertNotNull(explain.getQuerySQL());
|
||||
assertTrue(explain.getQuerySQL().contains("user_name"));
|
||||
@@ -105,7 +107,7 @@ public class TranslatorTest extends BaseTest {
|
||||
Paths.get(ClassLoader.getSystemResource("sql/testWith.sql").toURI())),
|
||||
StandardCharsets.UTF_8);
|
||||
SemanticTranslateResp explain = semanticLayerService
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSetId), User.getDefaultUser());
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSet), User.getDefaultUser());
|
||||
assertNotNull(explain);
|
||||
assertNotNull(explain.getQuerySQL());
|
||||
executeSql(explain.getQuerySQL());
|
||||
@@ -119,7 +121,7 @@ public class TranslatorTest extends BaseTest {
|
||||
Paths.get(ClassLoader.getSystemResource("sql/testSubquery.sql").toURI())),
|
||||
StandardCharsets.UTF_8);
|
||||
SemanticTranslateResp explain = semanticLayerService
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSetId), User.getDefaultUser());
|
||||
.translate(QueryReqBuilder.buildS2SQLReq(sql, dataSet), User.getDefaultUser());
|
||||
assertNotNull(explain);
|
||||
assertNotNull(explain.getQuerySQL());
|
||||
executeSql(explain.getQuerySQL());
|
||||
|
||||
Reference in New Issue
Block a user