diff --git a/data-framework/src/main/java/com/huaxing/common/result/BaseException.java b/data-framework/src/main/java/com/huaxing/common/exception/BaseException.java similarity index 96% rename from data-framework/src/main/java/com/huaxing/common/result/BaseException.java rename to data-framework/src/main/java/com/huaxing/common/exception/BaseException.java index 30d8d90..f970671 100644 --- a/data-framework/src/main/java/com/huaxing/common/result/BaseException.java +++ b/data-framework/src/main/java/com/huaxing/common/exception/BaseException.java @@ -1,4 +1,4 @@ -package com.huaxing.common.result; +package com.huaxing.common.exception; import com.huaxing.common.constant.AppConstant; import lombok.Getter; diff --git a/data-framework/src/main/java/com/huaxing/common/result/BizException.java b/data-framework/src/main/java/com/huaxing/common/exception/BizException.java similarity index 94% rename from data-framework/src/main/java/com/huaxing/common/result/BizException.java rename to data-framework/src/main/java/com/huaxing/common/exception/BizException.java index 9446aa5..07af54f 100644 --- a/data-framework/src/main/java/com/huaxing/common/result/BizException.java +++ b/data-framework/src/main/java/com/huaxing/common/exception/BizException.java @@ -1,4 +1,4 @@ -package com.huaxing.common.result; +package com.huaxing.common.exception; import com.huaxing.common.constant.AppConstant; import org.springframework.util.StringUtils; diff --git a/data-framework/src/main/java/com/huaxing/common/result/ResultVo.java b/data-framework/src/main/java/com/huaxing/common/result/ResultVo.java index 88e359e..582ac8f 100644 --- a/data-framework/src/main/java/com/huaxing/common/result/ResultVo.java +++ b/data-framework/src/main/java/com/huaxing/common/result/ResultVo.java @@ -1,6 +1,7 @@ package com.huaxing.common.result; import com.huaxing.common.constant.AppConstant; +import com.huaxing.common.exception.BaseException; import lombok.Getter; import java.io.Serializable; @@ -49,4 +50,8 @@ public class ResultVo implements Serializable { public static ResultVo fail(BaseException exception) { return new ResultVo<>(exception); } + + public static ResultVo status(boolean flag) { + return flag ? ResultVo.ok() : ResultVo.fail("操作失败!"); + } } diff --git a/data-framework/src/main/java/com/huaxing/common/util/JacksonUtil.java b/data-framework/src/main/java/com/huaxing/common/util/JacksonUtil.java index e589f41..39f8742 100644 --- a/data-framework/src/main/java/com/huaxing/common/util/JacksonUtil.java +++ b/data-framework/src/main/java/com/huaxing/common/util/JacksonUtil.java @@ -21,10 +21,8 @@ public class JacksonUtil { public static String objectStr(Object object) { ObjectMapper mapper = new ObjectMapper(); try { - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - return mapper.writeValueAsString(object); } catch (JsonProcessingException e) { throw new RuntimeException(e); diff --git a/data-framework/src/main/java/com/huaxing/common/util/StrUtils.java b/data-framework/src/main/java/com/huaxing/common/util/StrUtils.java new file mode 100644 index 0000000..5738737 --- /dev/null +++ b/data-framework/src/main/java/com/huaxing/common/util/StrUtils.java @@ -0,0 +1,26 @@ +package com.huaxing.common.util; + +/** + * @ProjectName: data-bridge + * @Package: com.huaxing.common.util + * @ClassName: StrUtils + * @Author: swordmeng8@163.com + * @Description: 字符串工具类 + * @Date: 2025/2/12 15:23 + * @Version: 1.0 + */ + +public class StrUtils { + + /** + * 判断字符串是否以指定前缀开头 + * @param str + * @param prefix + * @return + */ + public static boolean checkStringStartsWithExample(String str, String prefix) { + // 使用 startsWith 方法进行判断 + return str.startsWith(prefix); + } + +} diff --git a/data-framework/src/main/java/com/huaxing/dolphindb/base/CommonService.java b/data-framework/src/main/java/com/huaxing/dolphindb/base/CommonService.java index bd3fbdb..395971e 100644 --- a/data-framework/src/main/java/com/huaxing/dolphindb/base/CommonService.java +++ b/data-framework/src/main/java/com/huaxing/dolphindb/base/CommonService.java @@ -23,8 +23,6 @@ public class CommonService extends SqlConverterStatementHandle { @Autowired private AbstractDbConnector dbPool; - - /** * 执行单条sql * @@ -43,20 +41,23 @@ public class CommonService extends SqlConverterStatementHandle { } /** - * 执行单条sql + * 执行单条sql bool返回值 * * @param sql */ - public void exec(String sql) { + public boolean exec(String sql) { + boolean isSuccess = false; DBConnection connection = dbPool.getConnection(); try { connection.run(sql); + isSuccess = true; } catch (IOException e) { log.error("AbstractDbConnector.exec() Method执行异常:{}", e.getMessage()); throw new RuntimeException(e); } finally { connection.close(); } + return isSuccess; } /** diff --git a/data-storage-api/pom.xml b/data-storage-api/pom.xml new file mode 100644 index 0000000..a7c9196 --- /dev/null +++ b/data-storage-api/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + com.huaxing + data-bridge + 0.0.1-SNAPSHOT + + + data-storage-api + jar + + + 17 + 17 + UTF-8 + + + + com.huaxing + data-framework + 0.0.1-SNAPSHOT + compile + + + + org.springframework.cloud + spring-cloud-starter-openfeign + 2.2.9.RELEASE + + + + org.springframework.cloud + spring-cloud-context + 3.1.4 + + + + \ No newline at end of file diff --git a/data-storage-api/src/main/java/com/huaxing/Main.java b/data-storage-api/src/main/java/com/huaxing/Main.java new file mode 100644 index 0000000..b310726 --- /dev/null +++ b/data-storage-api/src/main/java/com/huaxing/Main.java @@ -0,0 +1,7 @@ +package com.huaxing; + +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/data-storage-api/src/main/java/com/huaxing/feign/IDatabaseClientFeign.java b/data-storage-api/src/main/java/com/huaxing/feign/IDatabaseClientFeign.java new file mode 100644 index 0000000..5ff2902 --- /dev/null +++ b/data-storage-api/src/main/java/com/huaxing/feign/IDatabaseClientFeign.java @@ -0,0 +1,73 @@ +package com.huaxing.feign; + +import com.huaxing.common.constant.AppConstant; +import com.huaxing.common.result.ResultVo; +import com.huaxing.feign.fallback.DatabaseFeignFallbackFactory; +import com.huaxing.pojo.entity.DatabaseDTO; +import com.huaxing.pojo.entity.TableDTO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * Notice Feign接口类 + * + * @author Chill + */ +@FeignClient(name = AppConstant.APP_NAME, fallbackFactory = DatabaseFeignFallbackFactory.class) +public interface IDatabaseClientFeign { + + // 请求前缀 + String API_PREFIX = "/api"; + + // 创建数据库 + String CREATE_DATABASE = API_PREFIX + "/database/create"; + + // 创建dfs表 + String CREATE_DFS_TABLE = API_PREFIX + "/table/create/dfs"; + + // 创建stream表 + String CREATE_STREAM_TABLE = API_PREFIX + "/table/create/stream"; + + // 创建dfs和stream表并订阅 + String CREATE_DFS_AND_STREAM_TABLE_SUBSCRIBE = API_PREFIX + "/table/create/dfs/stream/subscribe"; + + // 创建dfs和stream表不订阅 + String CREATE_DFS_AND_STREAM_TABLE_UNSUBSCRIBE = API_PREFIX + "/table/create/dfs/stream/unsubscribe"; + + // 订阅流表 + String SUBSCRIBE_STREAM_TABLE = API_PREFIX + "/table/subscribe/stream"; + + // 取消订阅流表 + String UNSUBSCRIBE_STREAM_TABLE = API_PREFIX + "/table/unsubscribe/stream"; + + + + // 新增dfs表字段 + String ADD_DFS_COLUMNS = API_PREFIX + "/table/add/dfs/columns"; + + // 新增stream表字段 + String ADD_STREAM_COLUMNS = API_PREFIX + "/table/add/stream/columns"; + + + /** + * 创建数据库 + * @param databaseDTO + * @return ResultVo + */ + @PostMapping(CREATE_DATABASE) + ResultVo createDatabase(@RequestBody @Validated DatabaseDTO databaseDTO); + + + /** + * 创建dfs表 + * @param tableDTO + * @return ResultVo + */ + @PostMapping(CREATE_DFS_TABLE) + ResultVo createDfsTable(@RequestBody @Validated TableDTO tableDTO); + + + +} diff --git a/data-storage-api/src/main/java/com/huaxing/feign/fallback/DatabaseFeignFallbackFactory.java b/data-storage-api/src/main/java/com/huaxing/feign/fallback/DatabaseFeignFallbackFactory.java new file mode 100644 index 0000000..994c0fe --- /dev/null +++ b/data-storage-api/src/main/java/com/huaxing/feign/fallback/DatabaseFeignFallbackFactory.java @@ -0,0 +1,41 @@ +package com.huaxing.feign.fallback; + +import com.huaxing.common.result.ResultVo; +import com.huaxing.feign.IDatabaseClientFeign; +import com.huaxing.pojo.entity.DatabaseDTO; +import com.huaxing.pojo.entity.TableDTO; +import feign.hystrix.FallbackFactory; + +/** + * @ProjectName: data-bridge + * @Package: com.huaxing.fallback + * @ClassName: DataStorageFeignFallbackFactory + * @Author: swordmeng8@163.com + * @Description: 1 + * @Date: 2025/2/12 10:29 + * @Version: 1.0 + */ + +public class DatabaseFeignFallbackFactory implements FallbackFactory { + @Override + public IDatabaseClientFeign create(Throwable throwable) { + return new IDatabaseClientFeign() { + /** + * 创建数据库 + * @param query + * @return + */ + @Override + public ResultVo createDatabase(DatabaseDTO query) { + + ResultVo.fail(throwable.getMessage()); + return null; + } + + @Override + public ResultVo createDfsTable(TableDTO tableDTO) { + return null; + } + }; + } +} diff --git a/data-storage-api/src/main/java/com/huaxing/pojo/entity/DatabaseDTO.java b/data-storage-api/src/main/java/com/huaxing/pojo/entity/DatabaseDTO.java new file mode 100644 index 0000000..962c2a7 --- /dev/null +++ b/data-storage-api/src/main/java/com/huaxing/pojo/entity/DatabaseDTO.java @@ -0,0 +1,18 @@ +package com.huaxing.pojo.entity; + +import lombok.Data; + +/** + * @ProjectName: data-bridge + * @Package: com.huaxing.pojo.entity + * @ClassName: DatabaseDTO + * @Author: swordmeng8@163.com + * @Description: 数据库建库接参对象 + * @Date: 2025/2/12 17:25 + * @Version: 1.0 + */ +@Data +public class DatabaseDTO { + private String databaseName; + private String databaseComment; +} diff --git a/data-storage/src/main/java/com/huaxing/data/tablemanagement/domain/TableColumnDTO.java b/data-storage-api/src/main/java/com/huaxing/pojo/entity/TableColumnDTO.java similarity index 86% rename from data-storage/src/main/java/com/huaxing/data/tablemanagement/domain/TableColumnDTO.java rename to data-storage-api/src/main/java/com/huaxing/pojo/entity/TableColumnDTO.java index 96ba9dc..18ac12e 100644 --- a/data-storage/src/main/java/com/huaxing/data/tablemanagement/domain/TableColumnDTO.java +++ b/data-storage-api/src/main/java/com/huaxing/pojo/entity/TableColumnDTO.java @@ -1,10 +1,10 @@ -package com.huaxing.data.tablemanagement.domain; +package com.huaxing.pojo.entity; import lombok.Data; /** * @ProjectName: iot-data-bridge - * @Package: com.huaxing.data.tablemanagement.domain + * @Package: com.huaxing.data.database.domain * @ClassName: TableColumnDTO * @Author: swordmeng8@163.com * @Description: 表列DTO diff --git a/data-storage-api/src/main/java/com/huaxing/pojo/entity/TableDTO.java b/data-storage-api/src/main/java/com/huaxing/pojo/entity/TableDTO.java new file mode 100644 index 0000000..5e780b9 --- /dev/null +++ b/data-storage-api/src/main/java/com/huaxing/pojo/entity/TableDTO.java @@ -0,0 +1,16 @@ +package com.huaxing.pojo.entity; + +import lombok.Data; + +/** + * @ProjectName: data-bridge + * @Package: com.huaxing.pojo.entity + * @ClassName: TableDTO + * @Author: swordmeng8@163.com + * @Description: 表结构接参类 + * @Date: 2025/2/12 17:40 + * @Version: 1.0 + */ +@Data +public class TableDTO { +} diff --git a/data-storage/pom.xml b/data-storage/pom.xml index 2550459..1b94c8c 100644 --- a/data-storage/pom.xml +++ b/data-storage/pom.xml @@ -48,11 +48,33 @@ spring-web 6.2.1 - + + org.springframework.cloud + spring-cloud-starter-openfeign + 2.2.9.RELEASE + + + com.huaxing + data-storage-api + 0.0.1-SNAPSHOT + compile + + + + + org.springframework.cloud + spring-cloud-dependencies + 2021.0.5 + pom + import + + + + \ No newline at end of file diff --git a/data-storage/src/main/java/com/huaxing/IotDataBridgeApplication.java b/data-storage/src/main/java/com/huaxing/IotDataBridgeApplication.java index ef82823..0c56ad7 100644 --- a/data-storage/src/main/java/com/huaxing/IotDataBridgeApplication.java +++ b/data-storage/src/main/java/com/huaxing/IotDataBridgeApplication.java @@ -2,7 +2,9 @@ package com.huaxing; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; +@EnableFeignClients @SpringBootApplication public class IotDataBridgeApplication { diff --git a/data-storage/src/main/java/com/huaxing/data/database/controller/DatabaseController.java b/data-storage/src/main/java/com/huaxing/data/database/controller/DatabaseController.java new file mode 100644 index 0000000..f64c521 --- /dev/null +++ b/data-storage/src/main/java/com/huaxing/data/database/controller/DatabaseController.java @@ -0,0 +1,240 @@ +package com.huaxing.data.database.controller; + +import com.huaxing.data.storage.domain.DataAnalysisDTO; +import com.huaxing.data.storage.service.IDeviceDataQueryDfsService; +import com.huaxing.data.storage.service.IDeviceDataQueryStreamService; +import com.huaxing.data.storage.service.IDeviceDataStoredService; +import com.huaxing.data.database.domain.TableDTO; +import com.huaxing.data.database.service.ITableStructureService; +import com.huaxing.common.util.JacksonUtil; +import com.huaxing.data.database.template.ISqlTemplateService; +import com.huaxing.mqtt.processor.MqttMessageSender; +import com.huaxing.common.result.ResultVo; +import com.huaxing.pojo.entity.TableColumnDTO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.*; + + +/** + * @ProjectName: iot-data-bridge + * @Package: com.huaxing.data.storage.controller + * @ClassName: TestController + * @Author: swordmeng8@163.com + * @Description: 测试controller + * @Date: 2025/1/15 17:08 + * @Version: 1.0 + */ +@Slf4j +@RestController +@RequestMapping("/api/database") +@SuppressWarnings("all") +public class DatabaseController { + + @Autowired + private MqttMessageSender messageSender; + final IDeviceDataStoredService dataStoredService; + final IDeviceDataQueryDfsService dataQueryDfsService; + final IDeviceDataQueryStreamService dataQueryStreamService; + final ITableStructureService tableStructureService; + + + // =============================================== 测试构造器 ====================================== + public DatabaseController(IDeviceDataStoredService dataStoredService, IDeviceDataQueryDfsService dataQueryDfsService, IDeviceDataQueryStreamService dataQueryStreamService, ITableStructureService tableStructureService, ISqlTemplateService tableTemplateService) { + this.dataStoredService = dataStoredService; + this.dataQueryDfsService = dataQueryDfsService; + this.dataQueryStreamService = dataQueryStreamService; + this.tableStructureService = tableStructureService; + } + + + // =============================================== 测试插入数据 ====================================== + + /** + * 测试数据插入 + */ + @GetMapping(value = "/testInsert") + public void testInsert() { + String tableName = "MyTable2Stream"; + String sql = "INSERT INTO " + tableName + " (time, projectId, deviceId, test) VALUES (2025.01.11 00:00:00,'48', '0jZU2102_0806_0011', 'testVal')"; + dataStoredService.execute(sql); + log.info("SUCCESS"); + } + + // =============================================== 测试Dfs表查询 ====================================== + + /** + * 测试Dfs表查询 + */ + @GetMapping(value = "/testSelectDfs") + public ResultVo>> testSelectDfs() { + String dbPath = "dfs://ZbDB"; + String sql = String.format("select * from loadTable('%s','%s')", dbPath, "ZbWaterMeter1Dfs"); + return ResultVo.ok(dataQueryDfsService.selectList(sql)); + } + + // =============================================== 测试订阅流表查询 ====================================== + + /** + * 测试订阅流表查询 + */ + @GetMapping(value = "/testSelectStream") + public ResultVo>> testSelectStream() { + String sql = "select * from WaterMeterTset1Stream"; + return ResultVo.ok(dataQueryStreamService.selectList(sql)); + } + + // =============================================== 给指定的流表增加列字段 ====================================== + + /** + * 测试给指定的流表增加列字段 + */ + @GetMapping(value = "/testStreamAddColumn") + public void testStreamAddColumn() { + String tableName = "WaterMeterTsetStream"; + String columnName = "test"; + String columnType = "STRING"; + String columnDesc = "test"; + TableDTO tableDTO = new TableDTO(); + tableDTO.setTableName(tableName); + tableDTO.setTableColumnList(Arrays.asList(new TableColumnDTO(columnName, columnType, columnDesc))); + try { + tableStructureService.addStreamColumns(tableDTO); + log.info("SUCCESS"); + } catch (Exception e) { + log.error("FAIL"); + e.printStackTrace(); + } + } + + // =============================================== 给指定的Dfs表增加列字段 ====================================== + /** + * 测试给指定的Dfs表增加列字段 + */ + @GetMapping(value = "/testDfsAddColumn") + public void testDfsAddColumn() { + String tableName = "WaterMeterTsetDfs"; + String columnName = "test"; + String columnType = "STRING"; + String columnDesc = "test描述"; + TableDTO tableDTO = new TableDTO(); + tableDTO.setTableName(tableName); + tableDTO.setTableColumnList(Arrays.asList(new TableColumnDTO(columnName, columnType, columnDesc))); + try { + tableStructureService.addDfsColumns(tableDTO); + log.info("SUCCESS"); + } catch (Exception e) { + log.error("FAIL"); + e.printStackTrace(); + } + } + + + // ===================================== mqtt消息发送-测试数据入库 START ============================== + + /** + * 测试发送mqtt消息 + */ + @GetMapping(value = "/testSendMessage") + public void testSendMessage() { + for (int i = 0; i < 2; i++) { + List> dataList = new ArrayList<>(); + dataList.add(handleMapByIndex(i)); + DataAnalysisDTO dataAnalysisDTO = DataAnalysisDTO.builder().tableName( "WaterMeterTsetStream").dataList(dataList).build(); + messageSender.send("iot/test1/in-storage", JacksonUtil.objectStr(dataAnalysisDTO)); + } + } + + /** + * 根据索引生成测试数据 + * @param index 索引 + * @return + */ + private Map handleMapByIndex(int index) { + Map map = new HashMap<>(); + map.put("time", new Date()); + map.put("projectId", "0jZU2102"); + map.put("deviceId", "0jZU2102_0806_0011"); + map.put("WM_WFA", 124.656 + index); + map.put("WM_WFA_Unit", "m³"); + map.put("test", "test"); + return map; + } + + // =============================================== 创建Dfs表 Stream流表 取消订阅 添加订阅 创建 ====================================== + + /** + * 测试创建Dfs表 + */ + @GetMapping(value = "/testCreateDfsTable") + public void testCreateDfsTable() { + TableDTO tableDTO = new TableDTO(); + tableDTO.setDatabaseName("ZbDB"); + tableDTO.setTableName("Test1"); + List tableColumnList = new ArrayList<>(); + tableColumnList.add(new TableColumnDTO("test", "STRING", "test")); + tableColumnList.add(new TableColumnDTO("test1", "STRING","test1")); + tableColumnList.add(new TableColumnDTO("test2", "STRING","test2")); + tableDTO.setTableColumnList(tableColumnList); + tableStructureService.createDfsTable(tableDTO); + } + + /** + * 测试创建流表 + */ + @GetMapping(value = "/testCreateStreamTable") + public void testCreateStreamTable() { + TableDTO tableDTO = new TableDTO(); + tableDTO.setDatabaseName("ZbDB"); + tableDTO.setTableName("Test1"); + List tableColumnList = new ArrayList<>(); + tableColumnList.add(new TableColumnDTO("test", "STRING", "test")); + tableColumnList.add(new TableColumnDTO("test1", "STRING","test1")); + tableColumnList.add(new TableColumnDTO("test2", "STRING","test2")); + tableDTO.setTableColumnList(tableColumnList); + tableStructureService.createStreamTable(tableDTO); + } + + /** + * 取消订阅流表 + */ + @GetMapping(value = "/testUnsubscribeStreamTable") + public void testUnsubscribeStreamTable() { + TableDTO tableDTO = new TableDTO(); + tableDTO.setDatabaseName("ZbDB"); + tableDTO.setTableName("Test1"); + tableStructureService.unsubscribeStreamTable(tableDTO); + } + + /** + * 订阅流表 + */ + @GetMapping(value = "/testSubscribeStreamTable") + public void testSubscribeStreamTable() { + TableDTO tableDTO = new TableDTO(); + tableDTO.setDatabaseName("ZbDB"); + tableDTO.setTableName("Test1"); + tableStructureService.subscribeStreamTable(tableDTO); + } + + /** + * 创建Dfs和Stream表并添加订阅 + */ + @GetMapping(value = "/testCreateDfsAndStreamTableSubscribe") + public void testCreateDfsAndStreamTableSubscribe() { + TableDTO tableDTO = new TableDTO(); + tableDTO.setDatabaseName("ZbDB"); + tableDTO.setTableName("MyTe2"); + tableDTO.setTableDesc("MyTe2测试表"); + List tableColumnList = new ArrayList<>(); + tableColumnList.add(new TableColumnDTO("test", "STRING", "test")); + tableDTO.setTableColumnList(tableColumnList); + tableStructureService.createDfsAndStreamTableSubscribe(tableDTO); + } + + +} diff --git a/data-storage/src/main/java/com/huaxing/data/tablemanagement/domain/TableDTO.java b/data-storage/src/main/java/com/huaxing/data/database/domain/TableDTO.java similarity index 92% rename from data-storage/src/main/java/com/huaxing/data/tablemanagement/domain/TableDTO.java rename to data-storage/src/main/java/com/huaxing/data/database/domain/TableDTO.java index 14c8903..81cee86 100644 --- a/data-storage/src/main/java/com/huaxing/data/tablemanagement/domain/TableDTO.java +++ b/data-storage/src/main/java/com/huaxing/data/database/domain/TableDTO.java @@ -1,5 +1,6 @@ -package com.huaxing.data.tablemanagement.domain; +package com.huaxing.data.database.domain; +import com.huaxing.pojo.entity.TableColumnDTO; import lombok.Data; import java.util.Iterator; @@ -8,7 +9,7 @@ import java.util.Objects; /** * @ProjectName: iot-data-bridge - * @Package: com.huaxing.data.tablemanagement.domain + * @Package: com.huaxing.data.database.domain * @ClassName: TableDTO * @Author: swordmeng8@163.com * @Description: 表操作类 diff --git a/data-storage/src/main/java/com/huaxing/data/database/service/IDatabaseService.java b/data-storage/src/main/java/com/huaxing/data/database/service/IDatabaseService.java new file mode 100644 index 0000000..4c2bacd --- /dev/null +++ b/data-storage/src/main/java/com/huaxing/data/database/service/IDatabaseService.java @@ -0,0 +1,17 @@ +package com.huaxing.data.database.service; + +import com.huaxing.common.result.ResultVo; + +/** + * 数据库操作 + * @author 孟剑 + * @date 2025-02-12 13:47 + */ +public interface IDatabaseService { + + // 检查数据库是否存在 + ResultVo checkExistsDatabase(String databaseName); + + // 创建数据库 + ResultVo createDatabase(String databaseName); +} diff --git a/data-storage/src/main/java/com/huaxing/data/tablemanagement/service/ITableStructureService.java b/data-storage/src/main/java/com/huaxing/data/database/service/ITableStructureService.java similarity index 84% rename from data-storage/src/main/java/com/huaxing/data/tablemanagement/service/ITableStructureService.java rename to data-storage/src/main/java/com/huaxing/data/database/service/ITableStructureService.java index 8ccffff..3c411f5 100644 --- a/data-storage/src/main/java/com/huaxing/data/tablemanagement/service/ITableStructureService.java +++ b/data-storage/src/main/java/com/huaxing/data/database/service/ITableStructureService.java @@ -1,9 +1,6 @@ -package com.huaxing.data.tablemanagement.service; +package com.huaxing.data.database.service; -import com.huaxing.data.tablemanagement.domain.TableDTO; - -import java.sql.SQLException; -import java.util.List; +import com.huaxing.data.database.domain.TableDTO; /** * @ProjectName: iot-data-bridge diff --git a/data-storage/src/main/java/com/huaxing/data/database/service/impl/DatabaseServiceImpl.java b/data-storage/src/main/java/com/huaxing/data/database/service/impl/DatabaseServiceImpl.java new file mode 100644 index 0000000..2606599 --- /dev/null +++ b/data-storage/src/main/java/com/huaxing/data/database/service/impl/DatabaseServiceImpl.java @@ -0,0 +1,62 @@ +package com.huaxing.data.database.service.impl; + +import com.huaxing.common.result.ResultVo; +import com.huaxing.common.util.StrUtils; +import com.huaxing.data.database.service.IDatabaseService; +import com.huaxing.data.database.template.ISqlTemplateService; +import com.huaxing.dolphindb.base.CommonService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * @ProjectName: data-bridge + * @Package: com.huaxing.data.database.service.impl + * @ClassName: DatabaseServiceImpl + * @Author: swordmeng8@163.com + * @Description: 数据库操作实现类 + * @Date: 2025/2/12 13:48 + * @Version: 1.0 + */ +@Service +@AllArgsConstructor +public class DatabaseServiceImpl extends CommonService implements IDatabaseService { + + final ISqlTemplateService tableTemplateService; + + /** + * @description: 检查数据库是否存在 + * @param databaseName 数据库名 + * @return com.huaxing.common.result.ResultVo + * @author swordmeng8@163.com + * @date 2025/2/12 13:48 + */ + @Override + public ResultVo checkExistsDatabase(String databaseName) { + if (!StrUtils.checkStringStartsWithExample(databaseName, "dfs://")) { + return ResultVo.fail("数据库名必须以dfs://开头"); + } + ; + return ResultVo.status(exec(tableTemplateService.checkExistsDatabaseTemplate(databaseName))); + } + + /** + * @description: 创建数据库 + * @param databaseName 数据库名 + * @return void + * @author swordmeng8@163.com + * @date 2025/2/12 13:48 + */ + @Override + public ResultVo createDatabase(String databaseName) { + // 创建数据库操作 +// StringBuilder script = new StringBuilder(); +// script.append("pt = loadTable(\"dfs://").append(tableDTO.getDatabaseName()).append("\", `").append(tableDTO.getTableName()).append(");"); +// tableDTO.getTableColumnList().forEach(columnItem -> { +// script.append("alter table pt add ").append(columnItem.getColumnName()).append(" ").append(columnItem.getColumnType()).append(";"); +// }); +// exec(script.toString()); + + return ResultVo.status(true); + + } +} diff --git a/data-storage/src/main/java/com/huaxing/data/tablemanagement/service/impl/TableStructureService.java b/data-storage/src/main/java/com/huaxing/data/database/service/impl/TableStructureService.java similarity index 85% rename from data-storage/src/main/java/com/huaxing/data/tablemanagement/service/impl/TableStructureService.java rename to data-storage/src/main/java/com/huaxing/data/database/service/impl/TableStructureService.java index 77d7a71..45d8f63 100644 --- a/data-storage/src/main/java/com/huaxing/data/tablemanagement/service/impl/TableStructureService.java +++ b/data-storage/src/main/java/com/huaxing/data/database/service/impl/TableStructureService.java @@ -1,14 +1,12 @@ -package com.huaxing.data.tablemanagement.service.impl; +package com.huaxing.data.database.service.impl; -import com.huaxing.data.tablemanagement.domain.TableDTO; -import com.huaxing.data.tablemanagement.service.ITableTemplateService; +import com.huaxing.data.database.domain.TableDTO; +import com.huaxing.data.database.template.ISqlTemplateService; import com.huaxing.dolphindb.base.CommonService; -import com.huaxing.data.tablemanagement.service.ITableStructureService; +import com.huaxing.data.database.service.ITableStructureService; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; -import java.sql.SQLException; -import java.util.List; - /** * @ProjectName: iot-data-bridge * @Package: com.huaxing.data.storage.service.impl @@ -19,12 +17,10 @@ import java.util.List; * @Version: 1.0 */ @Service +@AllArgsConstructor public class TableStructureService extends CommonService implements ITableStructureService { - final ITableTemplateService tableTemplateService; - public TableStructureService(ITableTemplateService tableTemplateService) { - this.tableTemplateService = tableTemplateService; - } + final ISqlTemplateService tableTemplateService; /** * 添加dfs表列 diff --git a/data-storage/src/main/java/com/huaxing/data/tablemanagement/service/ITableTemplateService.java b/data-storage/src/main/java/com/huaxing/data/database/template/ISqlTemplateService.java similarity index 61% rename from data-storage/src/main/java/com/huaxing/data/tablemanagement/service/ITableTemplateService.java rename to data-storage/src/main/java/com/huaxing/data/database/template/ISqlTemplateService.java index 6990963..309331d 100644 --- a/data-storage/src/main/java/com/huaxing/data/tablemanagement/service/ITableTemplateService.java +++ b/data-storage/src/main/java/com/huaxing/data/database/template/ISqlTemplateService.java @@ -1,15 +1,19 @@ -package com.huaxing.data.tablemanagement.service; +package com.huaxing.data.database.template; -import com.huaxing.data.tablemanagement.domain.TableDTO; - -import java.util.List; +import com.huaxing.data.database.domain.TableDTO; /** * 表创建模板 * @author 孟剑 * @date 2025-01-20 10:32 */ -public interface ITableTemplateService { +public interface ISqlTemplateService { + + // 检查数据库是否存在SQL模板 + String checkExistsDatabaseTemplate(String databaseName); + + // 创建数据库SQL模板 + String createDatabaseTemplate(String databaseName); // 创建dfs表模板 String createDfsTableTemplate(TableDTO tableDTO); diff --git a/data-storage/src/main/java/com/huaxing/data/tablemanagement/service/impl/TableTemplateServiceImpl.java b/data-storage/src/main/java/com/huaxing/data/database/template/SqlTemplateServiceImpl.java similarity index 86% rename from data-storage/src/main/java/com/huaxing/data/tablemanagement/service/impl/TableTemplateServiceImpl.java rename to data-storage/src/main/java/com/huaxing/data/database/template/SqlTemplateServiceImpl.java index b056218..66f35e8 100644 --- a/data-storage/src/main/java/com/huaxing/data/tablemanagement/service/impl/TableTemplateServiceImpl.java +++ b/data-storage/src/main/java/com/huaxing/data/database/template/SqlTemplateServiceImpl.java @@ -1,13 +1,12 @@ -package com.huaxing.data.tablemanagement.service.impl; +package com.huaxing.data.database.template; -import com.huaxing.data.tablemanagement.domain.TableDTO; -import com.huaxing.data.tablemanagement.service.ITableTemplateService; +import com.huaxing.data.database.domain.TableDTO; import com.huaxing.dolphindb.base.CommonService; import org.springframework.stereotype.Service; /** * @ProjectName: data-bridge - * @Package: com.huaxing.data.tablemanagement.service.impl + * @Package: com.huaxing.data.database.service.impl * @ClassName: TableTemplateServiceImpl * @Author: swordmeng8@163.com * @Description: 表操作模板 @@ -15,7 +14,29 @@ import org.springframework.stereotype.Service; * @Version: 1.0 */ @Service -public class TableTemplateServiceImpl extends CommonService implements ITableTemplateService { +public class SqlTemplateServiceImpl extends CommonService implements ISqlTemplateService { + + /** + * @Description 检查数据库是否存在 + * @Author swordmeng8@163.com + * @Date 2025/1/20 10:46 + * @Version v1.0 + **/ + @Override + public String checkExistsDatabaseTemplate(String databaseName) { + return null; + } + + /** + * @Description 创建数据库模板 + * @Author swordmeng8@163.com + * @Date 2025/1/20 10:46 + * @Version v1.0 + **/ + @Override + public String createDatabaseTemplate(String databaseName) { + return null; + } /** * @Description 创建 DFS 表模板 @@ -62,7 +83,7 @@ public class TableTemplateServiceImpl extends CommonService implements ITableTem String sql = ""; String colNames = tableDTO.handleTableColumnName(tableDTO.getTableColumnList()); String colTypes = tableDTO.handleTableColumnType(tableDTO.getTableColumnList()); - String colDesc = tableDTO.handleTableColumnDesc(tableDTO.getTableColumnList()); +// String colDesc = tableDTO.handleTableColumnDesc(tableDTO.getTableColumnList()); sql = "dbPath = \"dfs://" + tableDTO.getDatabaseName() + "\"\n" + "stName = \"" + tableDTO.getTableName() + "Stream\"\n" + "def createST(stName){\n" + @@ -71,8 +92,6 @@ public class TableTemplateServiceImpl extends CommonService implements ITableTem " colTypes = [DATETIME,STRING,STRING,"+ colTypes +"]\n" + " st = streamTable(150000:0, colNames, colTypes)\n" + " enableTableShareAndPersistence(table=st, tableName=stName, retentionMinutes=10, cacheSize=100000, preCache=100000 )\n" + -// " setColumnComment(st,{time:\"时间\",projectId:\"项目ID\",deviceId:\"设备编号\"," + colDesc + "})\n" + -// " setTableComment(table=st, comment=\"" + tableDTO.getTableDesc() + "\")\n" + " return st\n" + " }\n" + " else{\n" + diff --git a/data-storage/src/main/java/com/huaxing/test/TestController.java b/data-storage/src/main/java/com/huaxing/test/TestController.java index 8d3c12e..9555f7d 100644 --- a/data-storage/src/main/java/com/huaxing/test/TestController.java +++ b/data-storage/src/main/java/com/huaxing/test/TestController.java @@ -1,24 +1,9 @@ package com.huaxing.test; -import com.huaxing.data.storage.domain.DataAnalysisDTO; -import com.huaxing.data.storage.service.IDeviceDataQueryDfsService; -import com.huaxing.data.storage.service.IDeviceDataQueryStreamService; -import com.huaxing.data.storage.service.IDeviceDataStoredService; -import com.huaxing.data.tablemanagement.domain.TableColumnDTO; -import com.huaxing.data.tablemanagement.domain.TableDTO; -import com.huaxing.data.tablemanagement.service.ITableStructureService; -import com.huaxing.common.util.JacksonUtil; -import com.huaxing.data.tablemanagement.service.ITableTemplateService; -import com.huaxing.mqtt.processor.MqttMessageSender; -import com.huaxing.common.result.ResultVo; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.*; - /** * @ProjectName: iot-data-bridge @@ -35,206 +20,206 @@ import java.util.*; @SuppressWarnings("all") public class TestController { - @Autowired - private MqttMessageSender messageSender; - final IDeviceDataStoredService dataStoredService; - final IDeviceDataQueryDfsService dataQueryDfsService; - final IDeviceDataQueryStreamService dataQueryStreamService; - final ITableStructureService tableStructureService; - - - // =============================================== 测试构造器 ====================================== - public TestController(IDeviceDataStoredService dataStoredService, IDeviceDataQueryDfsService dataQueryDfsService, IDeviceDataQueryStreamService dataQueryStreamService, ITableStructureService tableStructureService, ITableTemplateService tableTemplateService) { - this.dataStoredService = dataStoredService; - this.dataQueryDfsService = dataQueryDfsService; - this.dataQueryStreamService = dataQueryStreamService; - this.tableStructureService = tableStructureService; - } - - - // =============================================== 测试插入数据 ====================================== - - /** - * 测试数据插入 - */ - @GetMapping(value = "/testInsert") - public void testInsert() { - String tableName = "MyTable2Stream"; - String sql = "INSERT INTO " + tableName + " (time, projectId, deviceId, test) VALUES (2025.01.11 00:00:00,'48', '0jZU2102_0806_0011', 'testVal')"; - dataStoredService.execute(sql); - log.info("SUCCESS"); - } - - // =============================================== 测试Dfs表查询 ====================================== - - /** - * 测试Dfs表查询 - */ - @GetMapping(value = "/testSelectDfs") - public ResultVo>> testSelectDfs() { - String dbPath = "dfs://ZbDB"; - String sql = String.format("select * from loadTable('%s','%s')", dbPath, "ZbWaterMeter1Dfs"); - return ResultVo.ok(dataQueryDfsService.selectList(sql)); - } - - // =============================================== 测试订阅流表查询 ====================================== - - /** - * 测试订阅流表查询 - */ - @GetMapping(value = "/testSelectStream") - public ResultVo>> testSelectStream() { - String sql = "select * from WaterMeterTset1Stream"; - return ResultVo.ok(dataQueryStreamService.selectList(sql)); - } - - // =============================================== 给指定的流表增加列字段 ====================================== - - /** - * 测试给指定的流表增加列字段 - */ - @GetMapping(value = "/testStreamAddColumn") - public void testStreamAddColumn() { - String tableName = "WaterMeterTsetStream"; - String columnName = "test"; - String columnType = "STRING"; - String columnDesc = "test"; - TableDTO tableDTO = new TableDTO(); - tableDTO.setTableName(tableName); - tableDTO.setTableColumnList(Arrays.asList(new TableColumnDTO(columnName, columnType, columnDesc))); - try { - tableStructureService.addStreamColumns(tableDTO); - log.info("SUCCESS"); - } catch (Exception e) { - log.error("FAIL"); - e.printStackTrace(); - } - } - - // =============================================== 给指定的Dfs表增加列字段 ====================================== - /** - * 测试给指定的Dfs表增加列字段 - */ - @GetMapping(value = "/testDfsAddColumn") - public void testDfsAddColumn() { - String tableName = "WaterMeterTsetDfs"; - String columnName = "test"; - String columnType = "STRING"; - String columnDesc = "test描述"; - TableDTO tableDTO = new TableDTO(); - tableDTO.setTableName(tableName); - tableDTO.setTableColumnList(Arrays.asList(new TableColumnDTO(columnName, columnType, columnDesc))); - try { - tableStructureService.addDfsColumns(tableDTO); - log.info("SUCCESS"); - } catch (Exception e) { - log.error("FAIL"); - e.printStackTrace(); - } - } - - - // ===================================== mqtt消息发送-测试数据入库 START ============================== - - /** - * 测试发送mqtt消息 - */ - @GetMapping(value = "/testSendMessage") - public void testSendMessage() { - for (int i = 0; i < 2; i++) { - List> dataList = new ArrayList<>(); - dataList.add(handleMapByIndex(i)); - DataAnalysisDTO dataAnalysisDTO = DataAnalysisDTO.builder().tableName( "WaterMeterTsetStream").dataList(dataList).build(); - messageSender.send("iot/test1/in-storage", JacksonUtil.objectStr(dataAnalysisDTO)); - } - } - - /** - * 根据索引生成测试数据 - * @param index 索引 - * @return - */ - private Map handleMapByIndex(int index) { - Map map = new HashMap<>(); - map.put("time", new Date()); - map.put("projectId", "0jZU2102"); - map.put("deviceId", "0jZU2102_0806_0011"); - map.put("WM_WFA", 124.656 + index); - map.put("WM_WFA_Unit", "m³"); - map.put("test", "test"); - return map; - } - - // =============================================== 创建Dfs表 Stream流表 取消订阅 添加订阅 创建 ====================================== - - /** - * 测试创建Dfs表 - */ - @GetMapping(value = "/testCreateDfsTable") - public void testCreateDfsTable() { - TableDTO tableDTO = new TableDTO(); - tableDTO.setDatabaseName("ZbDB"); - tableDTO.setTableName("Test1"); - List tableColumnList = new ArrayList<>(); - tableColumnList.add(new TableColumnDTO("test", "STRING", "test")); - tableColumnList.add(new TableColumnDTO("test1", "STRING","test1")); - tableColumnList.add(new TableColumnDTO("test2", "STRING","test2")); - tableDTO.setTableColumnList(tableColumnList); - tableStructureService.createDfsTable(tableDTO); - } - - /** - * 测试创建流表 - */ - @GetMapping(value = "/testCreateStreamTable") - public void testCreateStreamTable() { - TableDTO tableDTO = new TableDTO(); - tableDTO.setDatabaseName("ZbDB"); - tableDTO.setTableName("Test1"); - List tableColumnList = new ArrayList<>(); - tableColumnList.add(new TableColumnDTO("test", "STRING", "test")); - tableColumnList.add(new TableColumnDTO("test1", "STRING","test1")); - tableColumnList.add(new TableColumnDTO("test2", "STRING","test2")); - tableDTO.setTableColumnList(tableColumnList); - tableStructureService.createStreamTable(tableDTO); - } - - /** - * 取消订阅流表 - */ - @GetMapping(value = "/testUnsubscribeStreamTable") - public void testUnsubscribeStreamTable() { - TableDTO tableDTO = new TableDTO(); - tableDTO.setDatabaseName("ZbDB"); - tableDTO.setTableName("Test1"); - tableStructureService.unsubscribeStreamTable(tableDTO); - } - - /** - * 订阅流表 - */ - @GetMapping(value = "/testSubscribeStreamTable") - public void testSubscribeStreamTable() { - TableDTO tableDTO = new TableDTO(); - tableDTO.setDatabaseName("ZbDB"); - tableDTO.setTableName("Test1"); - tableStructureService.subscribeStreamTable(tableDTO); - } - - /** - * 创建Dfs和Stream表并添加订阅 - */ - @GetMapping(value = "/testCreateDfsAndStreamTableSubscribe") - public void testCreateDfsAndStreamTableSubscribe() { - TableDTO tableDTO = new TableDTO(); - tableDTO.setDatabaseName("ZbDB"); - tableDTO.setTableName("MyTe2"); - tableDTO.setTableDesc("MyTe2测试表"); - List tableColumnList = new ArrayList<>(); - tableColumnList.add(new TableColumnDTO("test", "STRING", "test")); - tableDTO.setTableColumnList(tableColumnList); - tableStructureService.createDfsAndStreamTableSubscribe(tableDTO); - } +// @Autowired +// private MqttMessageSender messageSender; +// final IDeviceDataStoredService dataStoredService; +// final IDeviceDataQueryDfsService dataQueryDfsService; +// final IDeviceDataQueryStreamService dataQueryStreamService; +// final ITableStructureService tableStructureService; +// +// +// // =============================================== 测试构造器 ====================================== +// public TestController(IDeviceDataStoredService dataStoredService, IDeviceDataQueryDfsService dataQueryDfsService, IDeviceDataQueryStreamService dataQueryStreamService, ITableStructureService tableStructureService, ISqlTemplateService tableTemplateService) { +// this.dataStoredService = dataStoredService; +// this.dataQueryDfsService = dataQueryDfsService; +// this.dataQueryStreamService = dataQueryStreamService; +// this.tableStructureService = tableStructureService; +// } +// +// +// // =============================================== 测试插入数据 ====================================== +// +// /** +// * 测试数据插入 +// */ +// @GetMapping(value = "/testInsert") +// public void testInsert() { +// String tableName = "MyTable2Stream"; +// String sql = "INSERT INTO " + tableName + " (time, projectId, deviceId, test) VALUES (2025.01.11 00:00:00,'48', '0jZU2102_0806_0011', 'testVal')"; +// dataStoredService.execute(sql); +// log.info("SUCCESS"); +// } +// +// // =============================================== 测试Dfs表查询 ====================================== +// +// /** +// * 测试Dfs表查询 +// */ +// @GetMapping(value = "/testSelectDfs") +// public ResultVo>> testSelectDfs() { +// String dbPath = "dfs://ZbDB"; +// String sql = String.format("select * from loadTable('%s','%s')", dbPath, "ZbWaterMeter1Dfs"); +// return ResultVo.ok(dataQueryDfsService.selectList(sql)); +// } +// +// // =============================================== 测试订阅流表查询 ====================================== +// +// /** +// * 测试订阅流表查询 +// */ +// @GetMapping(value = "/testSelectStream") +// public ResultVo>> testSelectStream() { +// String sql = "select * from WaterMeterTset1Stream"; +// return ResultVo.ok(dataQueryStreamService.selectList(sql)); +// } +// +// // =============================================== 给指定的流表增加列字段 ====================================== +// +// /** +// * 测试给指定的流表增加列字段 +// */ +// @GetMapping(value = "/testStreamAddColumn") +// public void testStreamAddColumn() { +// String tableName = "WaterMeterTsetStream"; +// String columnName = "test"; +// String columnType = "STRING"; +// String columnDesc = "test"; +// TableDTO tableDTO = new TableDTO(); +// tableDTO.setTableName(tableName); +// tableDTO.setTableColumnList(Arrays.asList(new TableColumnDTO(columnName, columnType, columnDesc))); +// try { +// tableStructureService.addStreamColumns(tableDTO); +// log.info("SUCCESS"); +// } catch (Exception e) { +// log.error("FAIL"); +// e.printStackTrace(); +// } +// } +// +// // =============================================== 给指定的Dfs表增加列字段 ====================================== +// /** +// * 测试给指定的Dfs表增加列字段 +// */ +// @GetMapping(value = "/testDfsAddColumn") +// public void testDfsAddColumn() { +// String tableName = "WaterMeterTsetDfs"; +// String columnName = "test"; +// String columnType = "STRING"; +// String columnDesc = "test描述"; +// TableDTO tableDTO = new TableDTO(); +// tableDTO.setTableName(tableName); +// tableDTO.setTableColumnList(Arrays.asList(new TableColumnDTO(columnName, columnType, columnDesc))); +// try { +// tableStructureService.addDfsColumns(tableDTO); +// log.info("SUCCESS"); +// } catch (Exception e) { +// log.error("FAIL"); +// e.printStackTrace(); +// } +// } +// +// +// // ===================================== mqtt消息发送-测试数据入库 START ============================== +// +// /** +// * 测试发送mqtt消息 +// */ +// @GetMapping(value = "/testSendMessage") +// public void testSendMessage() { +// for (int i = 0; i < 2; i++) { +// List> dataList = new ArrayList<>(); +// dataList.add(handleMapByIndex(i)); +// DataAnalysisDTO dataAnalysisDTO = DataAnalysisDTO.builder().tableName( "WaterMeterTsetStream").dataList(dataList).build(); +// messageSender.send("iot/test1/in-storage", JacksonUtil.objectStr(dataAnalysisDTO)); +// } +// } +// +// /** +// * 根据索引生成测试数据 +// * @param index 索引 +// * @return +// */ +// private Map handleMapByIndex(int index) { +// Map map = new HashMap<>(); +// map.put("time", new Date()); +// map.put("projectId", "0jZU2102"); +// map.put("deviceId", "0jZU2102_0806_0011"); +// map.put("WM_WFA", 124.656 + index); +// map.put("WM_WFA_Unit", "m³"); +// map.put("test", "test"); +// return map; +// } +// +// // =============================================== 创建Dfs表 Stream流表 取消订阅 添加订阅 创建 ====================================== +// +// /** +// * 测试创建Dfs表 +// */ +// @GetMapping(value = "/testCreateDfsTable") +// public void testCreateDfsTable() { +// TableDTO tableDTO = new TableDTO(); +// tableDTO.setDatabaseName("ZbDB"); +// tableDTO.setTableName("Test1"); +// List tableColumnList = new ArrayList<>(); +// tableColumnList.add(new TableColumnDTO("test", "STRING", "test")); +// tableColumnList.add(new TableColumnDTO("test1", "STRING","test1")); +// tableColumnList.add(new TableColumnDTO("test2", "STRING","test2")); +// tableDTO.setTableColumnList(tableColumnList); +// tableStructureService.createDfsTable(tableDTO); +// } +// +// /** +// * 测试创建流表 +// */ +// @GetMapping(value = "/testCreateStreamTable") +// public void testCreateStreamTable() { +// TableDTO tableDTO = new TableDTO(); +// tableDTO.setDatabaseName("ZbDB"); +// tableDTO.setTableName("Test1"); +// List tableColumnList = new ArrayList<>(); +// tableColumnList.add(new TableColumnDTO("test", "STRING", "test")); +// tableColumnList.add(new TableColumnDTO("test1", "STRING","test1")); +// tableColumnList.add(new TableColumnDTO("test2", "STRING","test2")); +// tableDTO.setTableColumnList(tableColumnList); +// tableStructureService.createStreamTable(tableDTO); +// } +// +// /** +// * 取消订阅流表 +// */ +// @GetMapping(value = "/testUnsubscribeStreamTable") +// public void testUnsubscribeStreamTable() { +// TableDTO tableDTO = new TableDTO(); +// tableDTO.setDatabaseName("ZbDB"); +// tableDTO.setTableName("Test1"); +// tableStructureService.unsubscribeStreamTable(tableDTO); +// } +// +// /** +// * 订阅流表 +// */ +// @GetMapping(value = "/testSubscribeStreamTable") +// public void testSubscribeStreamTable() { +// TableDTO tableDTO = new TableDTO(); +// tableDTO.setDatabaseName("ZbDB"); +// tableDTO.setTableName("Test1"); +// tableStructureService.subscribeStreamTable(tableDTO); +// } +// +// /** +// * 创建Dfs和Stream表并添加订阅 +// */ +// @GetMapping(value = "/testCreateDfsAndStreamTableSubscribe") +// public void testCreateDfsAndStreamTableSubscribe() { +// TableDTO tableDTO = new TableDTO(); +// tableDTO.setDatabaseName("ZbDB"); +// tableDTO.setTableName("MyTe2"); +// tableDTO.setTableDesc("MyTe2测试表"); +// List tableColumnList = new ArrayList<>(); +// tableColumnList.add(new TableColumnDTO("test", "STRING", "test")); +// tableDTO.setTableColumnList(tableColumnList); +// tableStructureService.createDfsAndStreamTableSubscribe(tableDTO); +// } } diff --git a/pom.xml b/pom.xml index e0a1a19..053b8d6 100644 --- a/pom.xml +++ b/pom.xml @@ -13,6 +13,7 @@ data-framework data-storage + data-storage-api @@ -115,22 +116,16 @@ + + + + org.apache.maven.plugins + maven-antrun-plugin + 3.0.0 + + + - - - aliyunmaven - 阿里云公共仓库 - https://maven.aliyun.com/repository/public - - - true - - - - false - - -