From c493849d1a1243b12dbd2e468eb2c32c5bbbe983 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 28 Mar 2022 09:11:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=B2=BE=E7=AE=80=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E4=B8=8B=E5=88=9B=E5=BB=BA=E5=85=B3=E8=81=94=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/mysql/MysqlDDLProvider.java | 2 +- .../service/dataset/DataSetTableService.java | 25 ++++++++++--------- .../dataset/common/DatasetGroupSelector.vue | 6 ++++- frontend/src/views/dataset/data/UnionView.vue | 4 +-- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java index a920e7d01f..83ea6bb178 100644 --- a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java @@ -22,7 +22,7 @@ public class MysqlDDLProvider extends DDLProviderImpl { @Override public String createView(String name, String viewSQL) { - return "CREATE VIEW IF NOT EXISTS " + name + " AS (" + viewSQL + ")"; + return "CREATE or replace view " + name + " AS (" + viewSQL + ")"; } @Override diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index ed4e4a9d64..7ed436beda 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -962,7 +962,7 @@ public class DataSetTableService { } else { ds = engineService.getDeEngine(); datasourceRequest.setDatasource(ds); - sql = getCustomSQLDoris(dataTableInfoDTO, list); + sql = getCustomViewSQL(dataTableInfoDTO, list); } Map res = new HashMap<>(); try { @@ -1010,8 +1010,8 @@ public class DataSetTableService { } } - // 自助数据集从doris里预览数据 - private String getCustomSQLDoris(DataTableInfoDTO dataTableInfoDTO, List list) { + // 自助数据集从数据引擎(dorsi/mysql/...)里预览数据 + private String getCustomViewSQL(DataTableInfoDTO dataTableInfoDTO, List list) { Map customInfo = new TreeMap<>(); dataTableInfoDTO.getList().forEach(ele -> { String table = TableUtils.tableName(ele.getTableId()); @@ -1519,7 +1519,7 @@ public class DataSetTableService { dataSetTableFieldsService.batchEdit(fieldList); // custom 创建doris视图 if (datasetTable.getMode() == 1) { - createDorisView(TableUtils.tableName(datasetTable.getId()), getCustomSQLDoris(dataTableInfoDTO, + createDorisView(TableUtils.tableName(datasetTable.getId()), getCustomViewSQL(dataTableInfoDTO, dataSetTableUnionService.listByTableId(dataTableInfoDTO.getList().get(0).getTableId()))); } return; @@ -1670,11 +1670,11 @@ public class DataSetTableService { } private void createDorisView(String dorisTableName, String customSql) throws Exception { - Datasource dorisDatasource = engineService.getDeEngine(); + Datasource engine = engineService.getDeEngine(); JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); DatasourceRequest datasourceRequest = new DatasourceRequest(); - datasourceRequest.setDatasource(dorisDatasource); - DDLProvider ddlProvider = ProviderFactory.getDDLProvider(dorisDatasource.getType()); + datasourceRequest.setDatasource(engine); + DDLProvider ddlProvider = ProviderFactory.getDDLProvider(engine.getType()); // 先删除表 datasourceRequest.setQuery(ddlProvider.dropView(dorisTableName)); jdbcProvider.exec(datasourceRequest); @@ -2184,21 +2184,21 @@ public class DataSetTableService { private UtilMapper utilMapper; public void updateDatasetTableStatus() { - if(this.isUpdatingDatasetTableStatus){ + if (this.isUpdatingDatasetTableStatus) { return; - }else { + } else { this.isUpdatingDatasetTableStatus = true; } try { doUpdate(); - }catch (Exception e){} - finally { + } catch (Exception e) { + } finally { this.isUpdatingDatasetTableStatus = false; } } - private void doUpdate(){ + private void doUpdate() { List qrtzSchedulerStates = qrtzSchedulerStateMapper.selectByExample(null); List activeQrtzInstances = qrtzSchedulerStates.stream() .filter(qrtzSchedulerState -> qrtzSchedulerState.getLastCheckinTime() @@ -2250,6 +2250,7 @@ public class DataSetTableService { extractDataService.deleteFile("incremental_delete", jobStoppeddDatasetTable.getId()); } } + /* * 判断数组中是否有重复的值 */ diff --git a/frontend/src/views/dataset/common/DatasetGroupSelector.vue b/frontend/src/views/dataset/common/DatasetGroupSelector.vue index 45f2344097..bd90c13c70 100644 --- a/frontend/src/views/dataset/common/DatasetGroupSelector.vue +++ b/frontend/src/views/dataset/common/DatasetGroupSelector.vue @@ -115,6 +115,7 @@