windows环境部署clickhouse,spring boot集成clickhouse
提要: clickhouse没有windows的安装包 可以在docker中搭建一个
一.安装docker
1.启用虚拟化
2.启用Hyper-v
控制面板(Win+R -> 输入control -> 回车) -> 程序 -> 启用或关闭Windows功能 -> 勾选Hyper-v
3.下载安装
4.配置
1)打开Docker配置中心:任务栏小鲸鱼右键 -> Settings
2)配置Docker国内镜像加速下载:左侧菜单 Docker Engine -> 右侧输入框 -> Apply & Restart
{ "debug": false, "experimental": false, "features": { "buildkit": true }, "insecure-registries": [], "registry-mirrors": [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ] }
3) 查看版本 打开Windows控制台(Win+R -> 输入cmd -> 回车)-> 输入
docker -v
二.在docker中搭建ClickHouse
1.拉取镜像
打开Windows控制台(Win+R -> 输入cmd -> 回车)-> 输入
docker pull yandex/clickhouse-server
docker pull yandex/clickhouse-client
tips:如果没有配置国内镜像无法下载
拉取之后可以在镜像列表里查看
2.启动clickhouse-server
下载完成后,直接运行clickhouse-server即可,这里建议在 git bash中启动,在cmd/powershell中需要将各文件路径换为Windows本地路径才行,这里直接在git bash 中用默认设置启动
docker run -d --name=clickhouse-server \
-p 8123:8123 -p 9009:9009 -p 9090:9000 \
--ulimit nofile=262144:262144 \
-v /data/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
-v /data/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
-v /data/clickhouse/log:/var/log/clickhouse-server \
-v /data/docker/database:/var/lib/clickhouse:wr \
yandex/clickhouse-server
docker run:启动一个新的容器。
-d:以后台(守护进程)模式运行容器。
--name=clickhouse-server:为容器指定一个名称,这里是 “clickhouse-server”。
-p 8123:8123 -p 9009:9009 -p 9090:9000:将容器内部的端口映射到主机的端口,允许通过主机访问 ClickHouse 服务器。例如,容器内的 8123 端口被映射到主机上的 8123 端口,可以通过主机的 8123 端口访问 ClickHouse 服务器。
--ulimit nofile=262144:262144:设置容器的文件描述符限制。这里设置为 262144 个文件描述符。
-v /data/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml:将主机系统中的文件 /data/clickhouse/conf/config.xml 映射到容器内的文件 /etc/clickhouse-server/config.xml,用于配置 ClickHouse 服务器。
-v /data/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml:将主机系统中的文件 /data/clickhouse/conf/users.xml 映射到容器内的文件 /etc/clickhouse-server/users.xml,用于配置 ClickHouse 服务器的用户。
-v /data/clickhouse/log:/var/log/clickhouse-server:将主机系统中的目录 /data/clickhouse/log 映射到容器内的目录 /var/log/clickhouse-server,用于存储 ClickHouse 服务器的日志。
-v /data/docker/database:/var/lib/clickhouse:rw:将主机系统中的目录 /data/docker/database 映射到容器内的目录 /var/lib/clickhouse,用于存储 ClickHouse 服务器的数据,并允许读写操作。
yandex/clickhouse-server:使用 yandex/clickhouse-server 镜像运行容器,即 ClickHouse 服务器的镜像。
3.测试是否安装成功
进入docker中的clickhouse bash,运行sql
docker exec -it clickhouse-server bash clickhouse-client show databases;
可以看到安装好后docker ui中出现了一个clickhouse-server服务,以后可以直接在界面上进行操作
版权声明: 2.3这段引用了这篇文章的方法
原文链接:Windows下安装ClickHouse图文教程_clickhouse windows-CSDN博客
三.使用可视化工具操作数据库
DBeaver可视化数据库下载地址:https://dbeaver.io/files/dbeaver-ce-latest-x86_64-setup.exe
设置ip 端口 测试连接 成功后确认
这样配置的clickhouse是没有密码的 账号是defalut
Spring boot 集成 clickhouse
springboot? mybaties clickhouse方式
一、依赖
<!--ck框架-->
<dependency>
<groupId>ru.yandex.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.3.0</version>
</dependency>
使用0.3.0版本 其他文档都是使用0.1.53版本 太低了 我的项目不兼容 测了很久才发现是这个问题
二、配置
1.跟Mysql的配置非常像 设置好库和数据库连接池配置就好
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
click:
driverClassName: ru.yandex.clickhouse.ClickHouseDriver
url: jdbc:clickhouse://127.0.0.1:8123/default
initialSize: 10
maxActive: 100
minIdle: 10
maxWait: 6000
2.使用实体类配置并注入
1)实体类
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "spring.datasource.click")
@Data
public class JdbcParamConfig {
private String driverClassName ;
private String url ;
private Integer initialSize ;
private Integer maxActive ;
private Integer minIdle ;
private Integer maxWait ;
// 省略 GET 和 SET
}
2)配置类
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
import javax.sql.DataSource;
@Configuration
public class DruidConfig {
@Resource
private JdbcParamConfig jdbcParamConfig ;
@Bean
public DataSource dataSource() {
DruidDataSource datasource = new DruidDataSource();
datasource.setUrl(jdbcParamConfig.getUrl());
datasource.setDriverClassName(jdbcParamConfig.getDriverClassName());
datasource.setInitialSize(jdbcParamConfig.getInitialSize());
datasource.setMinIdle(jdbcParamConfig.getMinIdle());
datasource.setMaxActive(jdbcParamConfig.getMaxActive());
datasource.setMaxWait(jdbcParamConfig.getMaxWait());
return datasource;
}
}
3.位置
三、使用
把clickhouse的mapper和xml文件 跟mysql的放在一起 要不然检索不到
mapper层不用@mapper注解一样能找到
XML:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxx.xxx.xxx.dao.mysql.UserInfoDao"> <select id="selectById" resultType="com.xxx.xxx.xxx.domain.mysql.UserInfo"> select * from user where id = #{id} </select> </mapper>
测试类中执行:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!