ClickHouse 是俄罗斯第一大搜索引擎 Yandex 开发的列式储存数据库。令人惊喜的是,这个列式储存数据库的性能大幅超越了很多商业 MPP 数据库软件,比如 Vertica,InfiniDB.
相比传统的数据库软件,ClickHouse 要快 100-1000X:
100Million 数据集:
ClickHouse 比 Vertica 约快 5 倍,比 Hive 快 279 倍,比 My SQL 快 801 倍
1Billion 数据集:
ClickHouse 比 Vertica 约快 5 倍,MySQL 和 Hive 已经无法完成任务了
- 部署 Clickhouse 服务 1.1 创建clickhouse 数据存储目录
cd /data
mkdir clickhouse
1.2 创建clickhouse 工作目录
cd /home
mkdir clickhouse
cd clickhouse
mkdir config
1.3 docker-compose 启动镜像
version: '3'
services:
clickhouse:
image: clickhouse/clickhouse-server
container_name: clickhouse
restart: always
networks:
- deng
ports:
- "8123:8123"
- "9000:9000"
volumes:
# 默认配置
- /etc/localtime:/etc/localtime:ro
# 运行日志
- /data/clickhouse/log:/var/log/clickhouse-server
# 数据持久
- /data/clickhouse:/var/lib/clickhouse:rw
networks:
deng:
external: true
启动:docker-compose up -d
-
修改 Clickhouse 配置 2.1 更改默认配置
进入容器查看配置:
docker exec -it clickhouse /bin/bash
clickhouse 默认配置路径是: /etc/clickhouse-server/
2.2 退出容器,复制配置文件到当前工作目录
docker cp clickhouse:/etc/clickhouse-server/config.xml ./config
docker cp clickhouse:/etc/clickhouse-server/users.xml ./config
docker cp clickhouse:/etc/clickhouse-server/config.d/docker_related_config.xml ./config
2.3 修改docker-compose 配置文件
修改后的完整配置如下
version: '3'
services:
clickhouse:
image: yandex/clickhouse-server:21.3.20-alpine
container_name: clickhouse
restart: always
networks:
- deng
ports:
- "8123:8123"
- "9000:9000"
volumes:
# 默认配置
- ./config/docker_related_config.xml:/etc/clickhouse-server/config.d/docker_related_config.xml:rw
- ./config/config.xml:/etc/clickhouse-server/config.xml:rw
- ./config/users.xml:/etc/clickhouse-server/users.xml:rw
- /etc/localtime:/etc/localtime:ro
# 运行日志
- /data/clickhouse/log:/var/log/clickhouse-server
# 数据持久
- /data/clickhouse:/var/lib/clickhouse:rw
networks:
deng:
external: true
2.4 修改监听地址
关闭监听地址 ./config/docker_related_config.xml 第3行如下:
<!-- <listen_host>::</listen_host> -->
打开监听地址 ./config/config.xml 第146行如下:
<listen_host>0.0.0.0</listen_host>
2.5 创建clickhouse用户
查看 ./config/users.xml文件,在<users></users> 中加入自定义用户dev
<dev>
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
<allow_databases>
<database>default</database>
</allow_databases>
</dev>
生成密码(必须进入容器内运行)
docker exec -it clickhouse /bin/bash
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
然后将生成的密码(第二行)替换掉<password_sha256_hex></password_sha256_hex>中的。
2.6 重新启动服务
docker-compose up -d
重启服务后,再重新用DBeaver连接可成功。
注意:本文归作者所有,未经作者允许,不得转载