补充h2遗漏的统计SQL

This commit is contained in:
inrgihc
2025-04-10 22:00:27 +08:00
parent 2ecc1b4db6
commit 214504b801
7 changed files with 64 additions and 27 deletions

View File

@@ -103,6 +103,14 @@ sh ./docker-maven-build.sh
(2) docker容器方式部署 (2) docker容器方式部署
- H2做配置库部署
这里将宿主机的/tmp目录挂载到容器上
```
docker run -d --name dbswitch -e DBTYPE=h2 -v /tmp:/tmp -p 9088:9088 \
registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest
```
- MYSQL做配置库部署 - MYSQL做配置库部署
假设已经部署好的MySQL(5.7+)数据库地址为192.168.31.57端口为3306账号为test密码为123456 假设已经部署好的MySQL(5.7+)数据库地址为192.168.31.57端口为3306账号为test密码为123456
@@ -293,9 +301,9 @@ dbswitch.target.writer-engine-insert=true
### 2、基于conf/application.yml配置的dbswitch-admin模块启动的WEB使用方式 ### 2、基于conf/application.yml配置的dbswitch-admin模块启动的WEB使用方式
#### (1)、准备一个MySQL(建议版本为: 5.7+ )或PostgreSQL(建议版本11.7+ )或者OpenGauss(建议版本5.0+ )的数据库 #### (1)、如果使用默认配置的H2数据库可忽略本步骤否则准备一个MySQL(建议版本为: 5.7+ )或PostgreSQL(建议版本11.7+ )或者OpenGauss(建议版本5.0+ )的数据库
> dbswitch-admin模块后端同时支持MySQL、PostgreSQL、OpenGauss作为配置数据库。 > dbswitch-admin模块后端同时支持H2、MySQL、PostgreSQL、OpenGauss作为配置数据库。
#### (2)、配置conf/application.yml #### (2)、配置conf/application.yml
@@ -304,9 +312,9 @@ application.yml配置内容示例如下
``` ```
spring: spring:
profiles: profiles:
# 配置包含使用的配置库类型(可选值:mysql或postgres),对应在application-mysql.yml或application-postgres.yml中配置数据库信息 # 配置包含使用的配置库类型(可选值:h2或mysql或postgres),对应在application-h2.yml或application-mysql.yml或application-postgres.yml中配置数据库信息
# 如果使用OpenGauss作为配置数据库请配置为postgres类型,dbswitch会使用postgres的jdbc驱动连接OpenGauss # 如果使用OpenGauss作为配置数据库请配置为postgres类型,dbswitch会使用postgres的jdbc驱动连接OpenGauss
include: mysql include: h2
application: application:
name: dbswitch-admin name: dbswitch-admin
tomcat: tomcat:

View File

@@ -32,4 +32,5 @@ cd $PROJECT_ROOT_DIR && sh docker-maven-clean.sh && cd -
# push docker image # push docker image
docker tag inrgihc/dbswitch:${DBSWITCH_VERSION} registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:${DBSWITCH_VERSION} docker tag inrgihc/dbswitch:${DBSWITCH_VERSION} registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:${DBSWITCH_VERSION}
docker push registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:${DBSWITCH_VERSION} docker push registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:${DBSWITCH_VERSION}
docker tag inrgihc/dbswitch:${DBSWITCH_VERSION} registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest
docker push registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest

View File

@@ -0,0 +1,13 @@
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:/tmp/dbswitch_db;MODE=MySQL;CASE_INSENSITIVE_IDENTIFIERS=TRUE;DATABASE_TO_UPPER=FALSE;DATABASE_TO_LOWER=FALSE
username: root
password: 123456
validation-query: SELECT 1
test-on-borrow: true
flyway:
locations: classpath:db/h2
baseline-on-migrate: true
table: DBSWITCH_SCHEMA_HISTORY
enabled: true

View File

@@ -1,6 +1,6 @@
spring: spring:
profiles: profiles:
include: ${DBTYPE:mysql} include: ${DBTYPE:h2}
application: application:
name: dbswitch-admin name: dbswitch-admin
tomcat: tomcat:

View File

@@ -31,6 +31,7 @@ public class DbswitchConfig {
Properties props = new Properties(); Properties props = new Properties();
props.setProperty("PostgreSQL", "postgresql"); props.setProperty("PostgreSQL", "postgresql");
props.setProperty("MySQL", "mysql"); props.setProperty("MySQL", "mysql");
props.setProperty("H2", "h2");
databaseIdProvider.setProperties(props); databaseIdProvider.setProperties(props);
return databaseIdProvider; return databaseIdProvider;
} }

View File

@@ -22,28 +22,39 @@ public interface AssignmentJobMapper extends BaseMapper<AssignmentJobEntity> {
@Select("<script>" @Select("<script>"
+ "<if test='_databaseId == \"mysql\" '>" + "<if test='_databaseId == \"mysql\" '>"
+ " SELECT \n" + " SELECT "
+ " \t DATE_FORMAT(create_time,'%Y-%m-%d') as of_date , \n" + " DATE_FORMAT(create_time,'%Y-%m-%d') as of_date , "
+ " \t count(*) as count_of_job,\n" + " count(*) as count_of_job, "
+ " \t count(DISTINCT assignment_id) as count_of_task \n" + " count(DISTINCT assignment_id) as count_of_task "
+ " FROM \n" + " FROM "
+ " ( \n" + " ( "
+ " \t SELECT * FROM DBSWITCH_ASSIGNMENT_JOB\n" + " SELECT * FROM DBSWITCH_ASSIGNMENT_JOB "
+ " \t WHERE DATE_SUB( CURDATE(), INTERVAL ${days} DAY ) &lt;= date(create_time)\n" + " WHERE DATE_SUB( CURDATE(), INTERVAL ${days} DAY ) <![CDATA[ <= ]]> date(create_time) "
+ " ) t \n" + " ) t "
+ " GROUP BY of_date " + " GROUP BY of_date "
+ "</if>" + "</if>"
+ "<if test='_databaseId == \"postgresql\" '>" + "<if test='_databaseId == \"postgresql\" '>"
+ " SELECT \n" + " SELECT "
+ " \t to_char(create_time, 'YYYY-MM-DD') as of_date , \n" + " to_char(create_time, 'YYYY-MM-DD') as of_date , "
+ " \t count(*) as count_of_job,\n" + " count(*) as count_of_job, "
+ " \t count(DISTINCT assignment_id) as count_of_task \n" + " count(DISTINCT assignment_id) as count_of_task "
+ " FROM \n" + " FROM "
+ " ( \n" + " ( "
+ " \t SELECT * FROM DBSWITCH_ASSIGNMENT_JOB\n" + " SELECT * FROM DBSWITCH_ASSIGNMENT_JOB "
+ " \t WHERE CURRENT_DATE - INTERVAL'${days} day' &lt;= create_time::date\n" + " WHERE CURRENT_DATE - INTERVAL'${days} day' <![CDATA[ <= ]]> create_time::date "
+ " ) t \n" + " ) t "
+ " GROUP BY of_date; " + " GROUP BY of_date "
+ "</if>"
+ "<if test='_databaseId == \"h2\" '>"
+ " SELECT "
+ " CAST(create_time as DATE) AS of_date, "
+ " COUNT(*) AS count_of_job, "
+ " COUNT(DISTINCT assignment_id) AS count_of_task "
+ " FROM ( "
+ " SELECT * FROM DBSWITCH_ASSIGNMENT_JOB "
+ " WHERE CAST(create_time as DATE) <![CDATA[ >= ]]> ( CURDATE()- ${days} ) "
+ ") t "
+ " GROUP BY of_date "
+ "</if>" + "</if>"
+ "</script>") + "</script>")
@Results({ @Results({

View File

@@ -18,10 +18,13 @@ public interface JobLogbackMapper extends BaseMapper<JobLogbackEntity> {
@Delete("<script>" @Delete("<script>"
+ "<if test='_databaseId == \"mysql\" '>" + "<if test='_databaseId == \"mysql\" '>"
+ "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE date(create_time) &lt; DATE_SUB( CURDATE(), INTERVAL ${days} DAY )" + "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE date(create_time) <![CDATA[ <= ]]> DATE_SUB( CURDATE(), INTERVAL ${days} DAY )"
+ "</if>" + "</if>"
+ "<if test='_databaseId == \"postgresql\" '>" + "<if test='_databaseId == \"postgresql\" '>"
+ "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE create_time::date &lt; CURRENT_DATE - INTERVAL'${days} day'" + "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE create_time::date <![CDATA[ <= ]]> CURRENT_DATE - INTERVAL'${days} day'"
+ "</if>"
+ "<if test='_databaseId == \"h2\" '>"
+ "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE CAST(create_time as DATE) <![CDATA[ <= ]]> (CURDATE() - ${days})"
+ "</if>" + "</if>"
+ "</script>") + "</script>")
void deleteByDays(@Param("days") Integer days); void deleteByDays(@Param("days") Integer days);