feat(info-query): 增加简单table meta信息查询

This commit is contained in:
2023-12-27 17:08:51 +08:00
parent 6b564bb7ea
commit 75e01891c3
4 changed files with 135 additions and 0 deletions

View File

@@ -257,4 +257,12 @@ public class InfoController {
.collect(TableInfoSearchCache::getHdfs)
.distinct();
}
@GetMapping("/simple_table_metas")
public ImmutableList<SimpleTableMeta> simpleTableMetas(
@RequestParam(value = "flink_job_id", required = false) Long flinkJobId,
@RequestParam(value = "alias", required = false) String alias
) {
return infoService.simpleTableMetas(flinkJobId, alias);
}
}

View File

@@ -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<SimpleTableMeta> 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)
)
)
);
}
}