SpringBoot整合clickHouse

ClickHouse

关于ClickHouse数据库,它也是一种关系型数据库。但是区别于传统关系型数据库mysql以及Oracle。其中最大的区别就是传统的关系型数据库是行式存储,而clickHouse是列式存储。请记住这个列式存储方式。这种结构存储方式,具备了一种天然的优势,就是做统计分析,聚类分析。
总结:就是存的慢,查得快,系统中主要是图片库的查询,或者数据的统计之类的数据的统计之类的可以使用此数据库。

整合方法:(默认已经安装clickHouse)

第一、要在使用此数据库的pom.xml中添加相关依赖

        <!-- https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc -->
        <dependency>
            <groupId>com.clickhouse</groupId>
            <artifactId>clickhouse-jdbc</artifactId>
            <version>0.4.6</version>
        </dependency>
        <dependency>
            <groupId>ru.yandex.clickhouse</groupId>
            <artifactId>clickhouse-jdbc</artifactId>
            <version>0.2.6</version>
        </dependency>

第二、要在nacos中配置数据源

dynamic:
   druid:
     initial-size: 5
     min-idle: 5
     maxActive: 20
     maxWait: 60000
     timeBetweenEvictionRunsMillis: 60000
     minEvictableIdleTimeMillis: 300000
     validationQuery: SELECT 1 
     testWhileIdle: true
     testOnBorrow: false
     testOnReturn: false
     poolPreparedStatements: true
     maxPoolPreparedStatementPerConnectionSize: 20
     filters: stat,slf4j
     connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
   datasource:
       # 主库数据源
       master:
         driver-class-name: com.mysql.cj.jdbc.Driver
         url: jdbc:mysql://ip:端口/数据库?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: 
         password: 
       # 从库数据源
       slave:
         driver-class-name: com.mysql.cj.jdbc.Driver 
         url: jdbc:mysql://ip:端口/数据库?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username:
         password:
       clickhouse:
         driverClassName: com.clickhouse.jdbc.ClickHouseDriver
         url: jdbc:clickhouse://ip:端口/default?socket_timeout=300000&serverTimezone=GMT+8
         username: default (默认是default)
         password: 密码

注意:加了clickHouse要把 validationQuery的配置改为 SELECT 1

第三:在代码中整合的时候,可以自定义一个注解,来调用从数据源,也可以不自定义注解,直接使用 @DS(“clickhouse”)

package cn.tadoo.common.datasource.annotation;

import com.baomidou.dynamic.datasource.annotation.DS;

import java.lang.annotation.*;

/**
 * 从库数据源
 *
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@DS("clickhouse")
public @interface Clickhouse {

}

在ClickHouse整合到MyBatis中的时候要注意数据库的引用,不然可能查不到
例如:insert into web_img.img_info
前面的 web_img 就是数据库的引用

注意,在使用从数据源的时候,一定要把注解写在service的实现类中,否则是不生效的

clickHouse使用navicat链接工具是连不上的,个人使用的是DBeaver链接工具
下载地址: https://dbeaver.io/download/

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值