ClickHouse安装
一、Docker安装
0. 不本地安装的体验平台:https://play.clickhouse.com/play?user=play;
1. docker-compose配置文件
version: "3"
networks:
rhxy-network:
external: true
services:
clickhouse:
image: clickhouse/clickhouse-server:23.12.2.59-alpine
container_name: clickhouse
hostname: clickhouse
restart: on-failure
ports:
- "18123:8123"
- "19000:9000"
networks:
- rhxy-network
volumes:
- /data/test/clickhouse/data:/var/lib/clickhouse
- /data/test/clickhouse/log/:/var/log/clickhouse-server/
# - /data/test/clickhouse/etc/:/etc/clickhouse-server/
- /data/test/clickhouse/initdb/:/docker-entrypoint-initdb.d/
environment:
TZ: Asia/Shanghai
CLICKHOUSE_USER: root
CLICKHOUSE_PASSWORD: 123456@rhxy
ulimits:
nofile:
soft: 262144
hard: 262144
2. 端口介绍
A. 8123(HTTP)端口:用于通过HTTP协议与该数据库进行交互,支持RESTful API和HTTP查询语法,通常用在执行查询、获取数据和管理CK集群;
B. 9000(TCP)端口:用于通过TCP/IP协议与该数据库进行交互,使用自定义二进制协议进行通信,支持更高的并发性和高性能,通常用于大规模数据导入、导出和数据处理等高性能场景。
3. 核心文件
A. /etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml等,小技巧是这两个文件可以从容器内拷贝出来再修改映射;
config.d/docker_related_config.xml:放开logger的注释可将日志输入到标准流上,即docker logs 容器ID可以查看日志
B. /var/lib/clickhouse:默认的数据存储目录;
C. /var/log/clickhouse-server:默认保存日志的目录;
D. /docker-entrypoint-initdb.d:数据库初始化脚本目录。
4. 数据导入
A. 本地SQL文件导入:insert into rhxy_log from infile '/var/log/clickhouse-server/rhxy_log.sql' FORMAT MySQLDump,注意DDL语句将会跳过。
5. clickhouse-client命令
clickhouse-client -h 127.0.0.1 --password {{ clickhouse_password }} --multiquery < '/tmp/{{ clickhouse_sql }}'
-h(--host):服务端的主机名,默认值localhost
--port:端口,默认值9000
-u(--user):用户名,默认值default
--password:密码
-n(--multiquery):允许用;分隔多个查询,在非交互模式下生效
二、SpringBoot整合
1. 报错
A. 报错一:clickhouse-jdbc连接数据库报错:LZ4 is not supported;
解决方式:引入lz4-java 1.8.0版本依赖
B. 错误一:ava.lang.NoClassDefFoundError:org/apache/hc/client5/http/config/ConnectionConfig
解决方式:升级httpclient5到5.2.3版本;
2. Maven整合
<dependency>
<groupId>com.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.5.0</version>
</dependency>
三、Clickhouse配置
config.xml
1. 内存配置:show processlist——可查看每个查询的当前内存消耗
B. max_server_memory_usage:内存使用总量限制,默认为无限制(0);
C. max_server_memory_usage_to_ram_ratio:与 max_server_memory_usage 相同,但与物理内存成比例,零表示无限制;
2. 其他配置
path:数据存储路径;
users.xml:
A. users标签下default为用户名,password为明文密码,若要用使用密文,步骤如下;
先使用明文生成密文:echo -n "rhxy@0109" | sha256sum | tr -d '-' 然后在/etc/clickhouse-server/users.xml中添加<password_sha256_hex>da67ecb1ac69a22c2f1774a2d296e7ea464a470bd92e40c520d196dfa9a53b8b</password_sha256_hex> 最后重启服务:systemctl restart clickhouse-server
B. max_memory_usage:运行单个查询时使用的最大内存量,默认为无限制(0);
C. max_threads:设置单个查询能使用的最大CPU个数,默认是CPU核数。

浙公网安备 33010602011771号