本机环境 :win11 32 内存
1,下载 docker 按提示安装(WSL)
https://docs.docker.com/desktop/install/windows-install/
安装完docker后,可进入windows命令行
2,容器化部署clickhouse
执行 docker search clickhouse-server 命令 查找clickhouse-server 镜像, clickhouse分服务端和客户端,可以合并部署或者分开部署,这里分开部署。
(为了速度,可连接阿里的镜像仓库)配置如下图
系统会列出搜到的 clickhouse-server镜像,如下图
第一列 名称,我们执行 docker run -d -p 8123:8123 -p 9000:9000 --name clickhouse yandex/clickhouse-server
命令,用指定的镜像名称启动容器,并映射端口。要暴两个端口,8123(http)管理,9000(tcp)端口
docker 会检查本地是否有镜像,如果没有就先下载,否则直接启动。启动完成
执行命令 docker container ls 查看启动的镜像,如下图
可以看到,我们指定的镜像已经运行在从容器中,并有端口映射。
3,连接clickhouse-server
到此,我们就可以用客户端端链接clickhouse服务了。除了clickhouse-client ,还有图形化工具,比如
dbeaver (https://dbeaver.io/download/)
4,部署配置jdbc-bridge
jdbc-bridge 是clickhouse 连接其他类型数据库的桥接器(常见的比如msql.hive ,elasticsearch等),一般和clickhouse部署在一块,也可以单独部署。这里我们把它部署在一个独立的容器里
通过镜像搜索找到对应的镜像
docker search jdbc-bridge
运行docker
docker run -d -p 9019:9019 --name clickhouse/jdbc-bridge (暴露9019通信端口)
启动后,通过命令行进入jdbc-bridge容器
docker exec -it 【容器id】/bin/bash
执行ipconfig ( 如果找不到命令 可以先安装apt install net-tools) 查看ip
比如 jdbc-bridge容器 ip 地址为 172.0.0.4
a.首先配置clickhouse-server
命令行进入容器
vim /etc/clickhouse-server/config.xml
找到配置项
<jdbc_bridge><host>172.17.0.4</host><port>9019</port></jdbc_bridge>
设置 jdbc-bridge容器的ip地址和端口
b.配置jdbc-bridge容器 (以配置mysql为例)
命令行进入jdbc-bridge容器,配置目录/app/config/datasources ,添加文件mysql8.json
文件内容如下
代码语言:javascript复制{
"mysql8": {
"driverUrls": ["https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar" ],
"jdbcUrl": "xxxxx",
"username": "xxxx",
"password": "xxxxx"
}
}
到此配置完成。
可通过客户端,通过如下命令和mysql交互
代码语言:javascript复制create table system.test (
a String,
b UInt8
) engine=JDBC('mysql8', '', 'select user as a, is_initial_query as b from system.processes');