使用mybatis-plus连接clickhouse,同时不影响pg的使用
1、添加依赖
<!-- clickhouse连接依赖-->
<dependency>
<groupId>ru.yandex.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.3.2</version>
</dependency>
<!-- 动态数据源-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
2、编写配置文件
spring:
application:
name: integrated
datasource:
dynamic:
primary: master
strict: true
datasource:
master:
driver-class-name: org.postgresql.Driver
url: ${integrated.datasource.url}
username: ${integrated.datasource.username}
password: ${integrated.datasource.password}
hikari:
connection-timeout: 60000
maximum-pool-size: 80
max-lifetime: 180000
idle-timeout: 500
minimum-idle: 10
name: dataSource
clickHouse:
driver-class-name: ru.yandex.clickhouse.ClickHouseDriver
url: jdbc:clickhouse://127.0.0.1:8123/uae
username: admin
password: admin
3、编写配置类
@Order(0)
@Configuration
public class ClickHouseConfig extends AbstractDataSourceCreator implements DataSourceCreator {
@Override
public DataSource doCreateDataSource(DataSourceProperty dataSourceProperty) {
Properties properties = new Properties();
// 使用clickHouse
properties.setProperty("user",dataSourceProperty.getUsername());
properties.setProperty("password",dataSourceProperty.getPassword());
return new BalancedClickhouseDataSource(dataSourceProperty.getUrl(), properties);
}
@Override
public boolean support(DataSourceProperty dataSourceProperty) {
// 判断是否使用此数据源
String poolName = dataSourceProperty.getPoolName();
return "clickHouse".equals(poolName);
}
}
4、在mapper上增加使用CK数据源的标识
@DS("clickHouse")
public interface AlertMapper extends BaseMapper<AlertPo> {
}