SpringBoot集成ClickHouse,含集成kerberos认证

需求:项目中要使用ClickHouse做数据库。
具体实现:
1,在pom.xml中添加clickhouse依赖

<!-- https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc -->
<dependency>
    <groupId>com.clickhouse</groupId>
    <artifactId>clickhouse-jdbc</artifactId>
    <version>0.3.2</version>
</dependency>

2, 配置文件中添加clickhouse的配置属性:

spring:
  datasource:
    clickhouse:
      driverClassName: ru.yandex.clickhouse.ClickHouseDirver
      url: jdbc:clickhouse:IP:端口号/数据库
      user: 用户名
      password: 密码

#这部分配置用于kerberos认证
clickhouse:
  security:
    enabled: true
  isMachineUser: false

3,配置Clickhouse连接

@Configuration
public class ClickHouseConfig {
	@Value({spring.datasource.clickhouse.url})
	private String clickhouseUrl;
	@Value({spring.datasource.clickhouse.user})
	private String clickhouseUser;
	@Value({spring.datasource.clickhouse.password})
	private String clickhousePassword;
	@Value({clickhouse.seurity.enabled})
	private Boolean isSecurity;
	@Value({clickhouse.isMachineUser})
	private Boolean isMachineUser;
	
	@Bean
	public DataSource dataSource() {
		ClickHouseProperties clickHouseProperties = new ClickHouseProperties();
		clickHouseProperties .setSocketTimeout(60000);

		//下面三行用于开启kerberos认证
		if(isSecurity & isMachineUser) {
			clickHouseProperties.setMachineUser(true);
			clickHouseProperties.setMachineUserKeytabPath(System.getProperty("user.dir") + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + "user.keytab");
		}
		clickHouseProperties.setSsl(true);
		clickHouseProperties.setSslMode("none");
		clickHouseProperties.setUser(clickhouseUser);
		clickHouseProperties.setPassword(clickhousePassword);
		ClickHouseDataSource clickHouseDataSource = new ClickHouseDataSource (clickhouseUrl, clickHouseProperties);
		return clickHouseDataSource;
	}
}

4,实现具体的Mapper。
其他的操作就跟mysql的操作一致了。
注意:clickhouse跟mysql的SQL语法不一致。

相关推荐

  1. SpringBoot集成ClickHouse集成kerberos认证

    2024-06-09 10:44:03       8 阅读
  2. SpringBoot 集成 ClickHouse

    2024-06-09 10:44:03       27 阅读
  3. Springboot集成token认证

    2024-06-09 10:44:03       11 阅读
  4. springboot集成mybatis-plus

    2024-06-09 10:44:03       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 10:44:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 10:44:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 10:44:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 10:44:03       18 阅读

热门阅读

  1. Angular知识概览

    2024-06-09 10:44:03       8 阅读
  2. Mac电脑arm64芯片Cocoapods 的 ffi 兼容问题

    2024-06-09 10:44:03       5 阅读
  3. 0105__学习一个 Linux 命令:objcopy 命令

    2024-06-09 10:44:03       10 阅读
  4. 参观营业额变化增长(sql练习)

    2024-06-09 10:44:03       7 阅读
  5. g++ 预处理 编译 汇编 链接 命令

    2024-06-09 10:44:03       8 阅读
  6. Npm发布自己的插件包

    2024-06-09 10:44:03       7 阅读
  7. Linux基本指令查询硬件信息001

    2024-06-09 10:44:03       9 阅读
  8. 360数字安全:2024年3月勒索软件流行态势分析报告

    2024-06-09 10:44:03       8 阅读
  9. Redis中的发布/订阅模式:构建灵活的消息系统

    2024-06-09 10:44:03       8 阅读
  10. 2024年OceanBase数据库中级培训课程

    2024-06-09 10:44:03       9 阅读