From 75e01891c353d279b4854575d4fdb4467ad2914e Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Wed, 27 Dec 2023 17:08:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(info-query):=20=E5=A2=9E=E5=8A=A0=E7=AE=80?= =?UTF-8?q?=E5=8D=95table=20meta=E4=BF=A1=E6=81=AF=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/info/SimpleTableMeta.java | 78 +++++++++++++++++++ .../service/forest/service/InfoService.java | 12 +++ .../info/controller/InfoController.java | 8 ++ .../service/info/service/InfoService.java | 37 +++++++++ 4 files changed, 135 insertions(+) create mode 100644 service-configuration/src/main/java/com/lanyuanxiaoyao/service/configuration/entity/info/SimpleTableMeta.java diff --git a/service-configuration/src/main/java/com/lanyuanxiaoyao/service/configuration/entity/info/SimpleTableMeta.java b/service-configuration/src/main/java/com/lanyuanxiaoyao/service/configuration/entity/info/SimpleTableMeta.java new file mode 100644 index 0000000..22a66b2 --- /dev/null +++ b/service-configuration/src/main/java/com/lanyuanxiaoyao/service/configuration/entity/info/SimpleTableMeta.java @@ -0,0 +1,78 @@ +package com.lanyuanxiaoyao.service.configuration.entity.info; + +/** + * Flink job 信息聚合 + * + * @author ZhangJiacheng + * @date 2022-05-30 + */ +public class SimpleTableMeta { + private Long flinkJobId; + private String flinkJobName; + private String alias; + private String schema; + private String table; + private String targetDb; + private String targetTable; + private String targetHdfs; + + public SimpleTableMeta() { + } + + public SimpleTableMeta(Long flinkJobId, String flinkJobName, String alias, String schema, String table, String targetDb, String targetTable, String targetHdfs) { + this.flinkJobId = flinkJobId; + this.flinkJobName = flinkJobName; + this.alias = alias; + this.schema = schema; + this.table = table; + this.targetDb = targetDb; + this.targetTable = targetTable; + this.targetHdfs = targetHdfs; + } + + public Long getFlinkJobId() { + return flinkJobId; + } + + public String getFlinkJobName() { + return flinkJobName; + } + + public String getAlias() { + return alias; + } + + public String getSchema() { + return schema; + } + + public String getTable() { + return table; + } + + public String getTargetDb() { + return targetDb; + } + + public String getTargetTable() { + return targetTable; + } + + public String getTargetHdfs() { + return targetHdfs; + } + + @Override + public String toString() { + return "SimpleTableMeta{" + + "flinkJobId=" + flinkJobId + + ", flinkJobName='" + flinkJobName + '\'' + + ", alias='" + alias + '\'' + + ", schema='" + schema + '\'' + + ", table='" + table + '\'' + + ", targetDb='" + targetDb + '\'' + + ", targetTable='" + targetTable + '\'' + + ", targetHdfs='" + targetHdfs + '\'' + + '}'; + } +} diff --git a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/InfoService.java b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/InfoService.java index 81d78ac..288af13 100644 --- a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/InfoService.java +++ b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/InfoService.java @@ -135,4 +135,16 @@ public interface InfoService { @Get("/info/all_hdfs") ImmutableList allHdfs(@Query("key") String key); + + @Get("/info/simple_table_metas") + ImmutableList simpleTableMetas(); + + @Get("/info/simple_table_metas") + ImmutableList simpleTableMetas(@Query("flink_job_id") Long flinkJobId); + + @Get("/info/simple_table_metas") + ImmutableList simpleTableMetas(@Query("alias") String alias); + + @Get("/info/simple_table_metas") + ImmutableList simpleTableMetas(@Query("flink_job_id") Long flinkJobId, @Query("alias") String alias); } diff --git a/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/controller/InfoController.java b/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/controller/InfoController.java index 1cc3441..bf781dd 100644 --- a/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/controller/InfoController.java +++ b/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/controller/InfoController.java @@ -257,4 +257,12 @@ public class InfoController { .collect(TableInfoSearchCache::getHdfs) .distinct(); } + + @GetMapping("/simple_table_metas") + public ImmutableList simpleTableMetas( + @RequestParam(value = "flink_job_id", required = false) Long flinkJobId, + @RequestParam(value = "alias", required = false) String alias + ) { + return infoService.simpleTableMetas(flinkJobId, alias); + } } diff --git a/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/service/InfoService.java b/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/service/InfoService.java index 96da3d1..88c0657 100644 --- a/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/service/InfoService.java +++ b/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/service/InfoService.java @@ -787,4 +787,41 @@ public class InfoService { (rs, row) -> new TableInfoSearchCache(rs.getLong(1), rs.getString(2), rs.getString(3)) )); } + + @Cacheable(value = "simple-table-metas", sync = true, cacheManager = "long-cache") + @Retryable(Throwable.class) + public ImmutableList simpleTableMetas(Long flinkJobId, String alias) { + return Lists.immutable.ofAll( + mysqlJdbcTemplate.query( + SqlBuilder + .select( + TbAppFlinkJobConfig.ID_A, + TbAppFlinkJobConfig.NAME_A, + TbAppCollectTableInfo.ALIAS_A, + TbAppCollectTableInfo.SRC_SCHEMA_A, + TbAppCollectTableInfo.SRC_TABLE_A, + TbAppCollectTableInfo.TGT_DB_A, + TbAppCollectTableInfo.TGT_TABLE_A, + TbAppCollectTableInfo.TGT_HDFS_PATH_A + ) + .from(TbAppFlinkJobConfig._alias_, TbAppCollectTableInfo._alias_) + .whereEq(TbAppFlinkJobConfig.ID_A, Column.as(TbAppCollectTableInfo.FLINK_JOB_ID_A)) + .andEq(TbAppFlinkJobConfig.STATUS_A, STATUS_Y) + .andEq(TbAppCollectTableInfo.STATUS_A, STATUS_Y) + .andEq(ObjectUtil.isNotNull(flinkJobId), TbAppFlinkJobConfig.ID_A, flinkJobId) + .andEq(StrUtil.isNotBlank(alias), TbAppCollectTableInfo.ALIAS_A, alias) + .build(), + (rs, row) -> new SimpleTableMeta( + rs.getLong(1), + rs.getString(2), + rs.getString(3), + rs.getString(4), + rs.getString(5), + rs.getString(6), + rs.getString(7), + rs.getString(8) + ) + ) + ); + } }