From 2663f3b2fc92fadee5dbb02217977a9aca58c5af Mon Sep 17 00:00:00 2001 From: wenmo <32723967+wenmo@users.noreply.github.com> Date: Fri, 15 Dec 2023 23:09:43 +0800 Subject: [PATCH] [Optimization-2655][core] Optimize data preview in data studio --- .../org/dinky/controller/StudioController.java | 14 -------------- .../main/java/org/dinky/service/StudioService.java | 3 --- .../service/impl/ClusterInstanceServiceImpl.java | 3 +-- .../org/dinky/service/impl/StudioServiceImpl.java | 7 ------- .../org/dinky/service/impl/TaskServiceImpl.java | 2 ++ .../java/org/dinky/service/task/CommonSqlTask.java | 2 -- .../java/org/dinky/data/result/ResultPool.java | 10 ---------- dinky-core/src/main/java/org/dinky/job/Job.java | 10 +++++----- .../DataStudio/BottomContainer/Result/index.tsx | 13 ++----------- .../src/pages/DataStudio/HeaderContainer/index.tsx | 6 +++++- 10 files changed, 15 insertions(+), 55 deletions(-) diff --git a/dinky-admin/src/main/java/org/dinky/controller/StudioController.java b/dinky-admin/src/main/java/org/dinky/controller/StudioController.java index 64d94b7d4f..b5052e1108 100644 --- a/dinky-admin/src/main/java/org/dinky/controller/StudioController.java +++ b/dinky-admin/src/main/java/org/dinky/controller/StudioController.java @@ -33,7 +33,6 @@ import org.dinky.data.result.Result; import org.dinky.data.result.SelectResult; import org.dinky.explainer.lineage.LineageResult; -import org.dinky.metadata.result.JdbcSelectResult; import org.dinky.service.StudioService; import java.util.List; @@ -90,19 +89,6 @@ public Result getJobData(@RequestParam String jobId) { return Result.succeed(studioService.getJobData(jobId)); } - /** 根据jobId获取数据 */ - @GetMapping("/getCommonSqlData") - @ApiOperation("Get Common Sql Data") - @ApiImplicitParam( - name = "taskId", - value = "Get Common Sql Data", - required = true, - dataType = "Integer", - paramType = "query") - public Result getJobData(@RequestParam Integer taskId) { - return Result.succeed(studioService.getCommonSqlData(taskId)); - } - /** 获取单任务实例的血缘分析 */ @PostMapping("/getLineage") @ApiOperation("Get Job Lineage") diff --git a/dinky-admin/src/main/java/org/dinky/service/StudioService.java b/dinky-admin/src/main/java/org/dinky/service/StudioService.java index 6756241ea7..b74d4387fb 100644 --- a/dinky-admin/src/main/java/org/dinky/service/StudioService.java +++ b/dinky-admin/src/main/java/org/dinky/service/StudioService.java @@ -28,7 +28,6 @@ import org.dinky.data.result.IResult; import org.dinky.data.result.SelectResult; import org.dinky.explainer.lineage.LineageResult; -import org.dinky.metadata.result.JdbcSelectResult; import java.util.List; @@ -43,8 +42,6 @@ public interface StudioService { IResult executeDDL(StudioDDLDTO studioDDLDTO); - JdbcSelectResult getCommonSqlData(Integer taskId); - SelectResult getJobData(String jobId); LineageResult getLineage(StudioLineageDTO studioCADTO); diff --git a/dinky-admin/src/main/java/org/dinky/service/impl/ClusterInstanceServiceImpl.java b/dinky-admin/src/main/java/org/dinky/service/impl/ClusterInstanceServiceImpl.java index 67706d19a9..4b1e0cd624 100644 --- a/dinky-admin/src/main/java/org/dinky/service/impl/ClusterInstanceServiceImpl.java +++ b/dinky-admin/src/main/java/org/dinky/service/impl/ClusterInstanceServiceImpl.java @@ -113,8 +113,7 @@ private String buildRemoteEnvironmentAddress(Integer id) { } private String buildLocalEnvironmentAddress(int port) { - String host = IpUtils.getHostIp(); - return host + ":" + port; + return "0.0.0.0:" + port; } @Override diff --git a/dinky-admin/src/main/java/org/dinky/service/impl/StudioServiceImpl.java b/dinky-admin/src/main/java/org/dinky/service/impl/StudioServiceImpl.java index 153c4504f9..5f1127e574 100644 --- a/dinky-admin/src/main/java/org/dinky/service/impl/StudioServiceImpl.java +++ b/dinky-admin/src/main/java/org/dinky/service/impl/StudioServiceImpl.java @@ -33,7 +33,6 @@ import org.dinky.data.model.Table; import org.dinky.data.result.DDLResult; import org.dinky.data.result.IResult; -import org.dinky.data.result.ResultPool; import org.dinky.data.result.SelectResult; import org.dinky.executor.CustomTableEnvironment; import org.dinky.explainer.lineage.LineageBuilder; @@ -42,7 +41,6 @@ import org.dinky.job.JobConfig; import org.dinky.job.JobManager; import org.dinky.metadata.driver.Driver; -import org.dinky.metadata.result.JdbcSelectResult; import org.dinky.service.ClusterInstanceService; import org.dinky.service.DataBaseService; import org.dinky.service.StudioService; @@ -87,11 +85,6 @@ private IResult executeMSFlinkSql(StudioMetaStoreDTO studioMetaStoreDTO) { return jobResult; } - @Override - public JdbcSelectResult getCommonSqlData(Integer taskId) { - return (JdbcSelectResult) ResultPool.getCommonSqlCache(taskId); - } - @Override public IResult executeDDL(StudioDDLDTO studioDDLDTO) { JobConfig config = studioDDLDTO.getJobConfig(); diff --git a/dinky-admin/src/main/java/org/dinky/service/impl/TaskServiceImpl.java b/dinky-admin/src/main/java/org/dinky/service/impl/TaskServiceImpl.java index db6fce93e9..59e40f6f36 100644 --- a/dinky-admin/src/main/java/org/dinky/service/impl/TaskServiceImpl.java +++ b/dinky-admin/src/main/java/org/dinky/service/impl/TaskServiceImpl.java @@ -201,6 +201,7 @@ public JobResult executeJob(TaskDTO task) throws Exception { return jobResult; } + // Submit and export task @ProcessStep(type = ProcessStepType.SUBMIT_BUILD_CONFIG) public JobConfig buildJobSubmitConfig(TaskDTO task) { task.setStatement(buildEnvSql(task) + task.getStatement()); @@ -234,6 +235,7 @@ public JobConfig buildJobSubmitConfig(TaskDTO task) { return config; } + // Savepoint and cancel task @ProcessStep(type = ProcessStepType.SUBMIT_BUILD_CONFIG) public JobConfig buildJobConfig(TaskDTO task) { JobConfig config = task.getJobConfig(); diff --git a/dinky-admin/src/main/java/org/dinky/service/task/CommonSqlTask.java b/dinky-admin/src/main/java/org/dinky/service/task/CommonSqlTask.java index 69432ad549..79bb8786a4 100644 --- a/dinky-admin/src/main/java/org/dinky/service/task/CommonSqlTask.java +++ b/dinky-admin/src/main/java/org/dinky/service/task/CommonSqlTask.java @@ -23,7 +23,6 @@ import org.dinky.data.annotations.SupportDialect; import org.dinky.data.dto.SqlDTO; import org.dinky.data.dto.TaskDTO; -import org.dinky.data.result.ResultPool; import org.dinky.data.result.SqlExplainResult; import org.dinky.job.JobResult; import org.dinky.service.DataBaseService; @@ -65,7 +64,6 @@ public JobResult execute() { SqlDTO sqlDTO = SqlDTO.build(task.getStatement(), task.getDatabaseId(), null); DataBaseService dataBaseService = SpringUtil.getBean(DataBaseService.class); JobResult jobResult = dataBaseService.executeCommonSql(sqlDTO); - ResultPool.putCommonSqlCache(task.getId(), jobResult.getResult()); return jobResult; } diff --git a/dinky-core/src/main/java/org/dinky/data/result/ResultPool.java b/dinky-core/src/main/java/org/dinky/data/result/ResultPool.java index d8a18e4023..b3eb895353 100644 --- a/dinky-core/src/main/java/org/dinky/data/result/ResultPool.java +++ b/dinky-core/src/main/java/org/dinky/data/result/ResultPool.java @@ -33,8 +33,6 @@ public final class ResultPool { private ResultPool() {} - private static final Cache COMMON_SQL_SEARCH_CACHE = - new TimedCache<>(TimeUnit.MINUTES.toMillis(10)); private static final Cache results = new TimedCache<>(TimeUnit.MINUTES.toMillis(10)); public static boolean containsKey(String key) { @@ -45,14 +43,6 @@ public static void put(SelectResult result) { results.put(result.getJobId(), result); } - public static void putCommonSqlCache(Integer taskId, IResult result) { - COMMON_SQL_SEARCH_CACHE.put(taskId, result); - } - - public static IResult getCommonSqlCache(Integer taskId) { - return COMMON_SQL_SEARCH_CACHE.get(taskId); - } - public static SelectResult get(String key) { if (containsKey(key)) { return results.get(key); diff --git a/dinky-core/src/main/java/org/dinky/job/Job.java b/dinky-core/src/main/java/org/dinky/job/Job.java index ff144228bc..7fd3c4db51 100644 --- a/dinky-core/src/main/java/org/dinky/job/Job.java +++ b/dinky-core/src/main/java/org/dinky/job/Job.java @@ -57,11 +57,11 @@ public class Job { @Getter public enum JobStatus { - INITIALIZE(1), - RUNNING(2), - SUCCESS(3), - FAILED(4), - CANCEL(5); + INITIALIZE(0), + RUNNING(1), + SUCCESS(2), + FAILED(3), + CANCEL(4); final int code; JobStatus(int code) { diff --git a/dinky-web/src/pages/DataStudio/BottomContainer/Result/index.tsx b/dinky-web/src/pages/DataStudio/BottomContainer/Result/index.tsx index ac36344c20..ff1a897b81 100644 --- a/dinky-web/src/pages/DataStudio/BottomContainer/Result/index.tsx +++ b/dinky-web/src/pages/DataStudio/BottomContainer/Result/index.tsx @@ -130,16 +130,7 @@ const Result = (props: any) => { if (consoleData.result && !isRefresh) { setData(consoleData.result); } else { - if (isSql(current.dialect)) { - // common sql - const res = await handleGetOption('api/studio/getCommonSqlData', l('global.getdata.tips'), { - taskId: params.taskId - }); - if (res.data) { - consoleData.result = res.data; - setData(res.data); - } - } else { + if (!isSql(current.dialect)) { // flink sql // to do: get job data by history id list, not flink jid if (current.id) { @@ -147,7 +138,7 @@ const Result = (props: any) => { id: current.id }); const historyData = res.data; - if (historyData && '2' == historyData.status) { + if (historyData) { const historyId = historyData.id; const tableData = await handleGetOption( 'api/studio/getJobData', diff --git a/dinky-web/src/pages/DataStudio/HeaderContainer/index.tsx b/dinky-web/src/pages/DataStudio/HeaderContainer/index.tsx index ce7111fb1c..02bb88b056 100644 --- a/dinky-web/src/pages/DataStudio/HeaderContainer/index.tsx +++ b/dinky-web/src/pages/DataStudio/HeaderContainer/index.tsx @@ -33,7 +33,7 @@ import { changeTaskLife, debugTask, executeSql, - getJobPlan + getJobPlan, isSql } from '@/pages/DataStudio/HeaderContainer/service'; import { DataStudioTabsItemType, StateType, TabsPageType, VIEW } from '@/pages/DataStudio/model'; import { JOB_LIFE_CYCLE, JOB_STATUS } from '@/pages/DevOps/constants'; @@ -177,6 +177,10 @@ const HeaderContainer = (props: any) => { }); await SuccessMessageAsync(l('pages.datastudio.editor.exec.success')); currentData.status = JOB_STATUS.RUNNING; + // Common sql task is synchronized, so it needs to automatically update the status to finished. + if(isSql(currentData.dialect)){ + currentData.status = JOB_STATUS.FINISHED; + } if (currentTab) currentTab.console.result = res.data.result; saveTabs({ ...props.tabs }); };