feature(info-query): 增加查询表是否存在的接口
This commit is contained in:
@@ -99,4 +99,10 @@ public interface InfoService {
|
||||
|
||||
@Get("/updated_version_tables")
|
||||
ImmutableList<String> updatedVersionTables();
|
||||
|
||||
@Get("/exists_table")
|
||||
Boolean existsTable(@Query("flink_job_id") Long flinkJobId, @Query("alias") String alias);
|
||||
|
||||
@Get("/non_exists_table")
|
||||
Boolean nonExistsTable(@Query("flink_job_id") Long flinkJobId, @Query("alias") String alias);
|
||||
}
|
||||
|
||||
@@ -215,4 +215,14 @@ public class InfoController {
|
||||
ObjectUtil.isNull(filterCompletes) ? Lists.immutable.empty() : Lists.immutable.ofAll(filterCompletes)
|
||||
);
|
||||
}
|
||||
|
||||
@GetMapping("/exists_table")
|
||||
public Boolean existsTable(@RequestParam(value = "flink_job_id") Long flinkJobId, @RequestParam(value = "alias") String alias) {
|
||||
return infoService.existsTable(flinkJobId, alias);
|
||||
}
|
||||
|
||||
@GetMapping("/non_exists_table")
|
||||
public Boolean nonExistsTable(@RequestParam(value = "flink_job_id") Long flinkJobId, @RequestParam(value = "alias") String alias) {
|
||||
return !infoService.existsTable(flinkJobId, alias);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -725,4 +725,24 @@ public class InfoService {
|
||||
return new PageResponse<>(list, total);
|
||||
});
|
||||
}
|
||||
|
||||
private static final Alias TABLE_FLINK_JOB = Alias.of(StrUtil.format("{}.tb_app_flink_job_config", DATABASE_NAME), "tafjc");
|
||||
private static final String TABLE_FLINK_JOB_ID = column(TABLE_FLINK_JOB, "id");
|
||||
private static final String TABLE_FLINK_JOB_STATUS = column(TABLE_FLINK_JOB, "status");
|
||||
|
||||
@Cacheable(value = "exists-table", sync = true)
|
||||
@Retryable(Throwable.class)
|
||||
public Boolean existsTable(Long flinkJobId, String alias) {
|
||||
return mysqlJdbcTemplate.queryForObject(
|
||||
SqlBuilder.select("count(*) > 0")
|
||||
.from(TABLE_INFO, TABLE_FLINK_JOB)
|
||||
.whereEq(TABLE_INFO_FLINK_JOB_ID, Column.as(TABLE_FLINK_JOB_ID))
|
||||
.andEq(TABLE_FLINK_JOB_ID, flinkJobId)
|
||||
.andEq(TABLE_INFO_ALIAS, alias)
|
||||
.andEq(TABLE_FLINK_JOB_STATUS, "y")
|
||||
.andEq(TABLE_INFO_STATUS, "y")
|
||||
.build(),
|
||||
Boolean.class
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,12 +37,19 @@ public class SqlBuilderTests {
|
||||
private static final String TABLE_COMPACTION_METRICS_FLINK_JOB_ID = column(TABLE_COMPACTION_METRICS, "flink_job_id");
|
||||
private static final String TABLE_COMPACTION_METRICS_ALIAS = column(TABLE_COMPACTION_METRICS, "alias");
|
||||
|
||||
private static final Alias TABLE_FLINK_JOB = Alias.of(StrUtil.format("{}.tb_app_flink_job_config", DATABASE_NAME), "tafjc");
|
||||
private static final String TABLE_FLINK_JOB_ID = column(TABLE_FLINK_JOB, "id");
|
||||
private static final String TABLE_FLINK_JOB_STATUS = column(TABLE_FLINK_JOB, "status");
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(SqlFormatter.format(
|
||||
SqlBuilder.select(StrUtil.format("concat({}, '-', {})", TABLE_VERSION_FLINK_JOB_ID, TABLE_VERSION_ALIAS))
|
||||
.from(TABLE_VERSION)
|
||||
.whereEq(TABLE_VERSION_SCHEDULED, false)
|
||||
.andEq(TABLE_VERSION_VERSION, Column.as("date_format(subdate(current_date(), 1), '%Y%m%d')"))
|
||||
SqlBuilder.select("count(*) > 0")
|
||||
.from(TABLE_INFO, TABLE_FLINK_JOB)
|
||||
.whereEq(TABLE_INFO_FLINK_JOB_ID, Column.as(TABLE_FLINK_JOB_ID))
|
||||
.andEq(TABLE_FLINK_JOB_ID, 1552408244680593408L)
|
||||
.andEq(TABLE_INFO_ALIAS, "crm_order_ord_prod_inst_sub_his")
|
||||
.andEq(TABLE_FLINK_JOB_STATUS, "y")
|
||||
.andEq(TABLE_INFO_STATUS, "y")
|
||||
.build()
|
||||
));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user