Docker部署clickhouse

Clickhouse特点
完备的DBMS:不仅是个数据库,也是个数据库系统
列存储和数据压缩:典型的olap数据库特性
向量化并行:利用CPU的SIMD(Single INstruction MUltiple Data),单条指令操作多条数据
多线程并行:向量化并行利用硬件采取数据并行(缺陷:不适应较多分支的判断),多线程级并行提高并发
关系模型:有数据库、表、视图和函数。更好清晰的描述实体间的关系
SQL:极高的群众基础
多样化表引擎:合并树、内存、文件、接口等20多种表引擎
多主架构:天然避免单点故障,服务端对客户端都是“孪生兄弟”
分布式:分区、分片

一. 部署

  1. 创建目录
cd /data/clickhouse
mkdir {config,data,log}
  1. 拷贝默认配置文件
docker run -itd --name tmp --ulimit nofile=262144:262144  yandex/clickhouse-server:21.3.14.1-alpine
docker cp tmp:/etc/clickhouse-server/users.xml /data/clickhouse/config/users.xml
docker cp tmp:/etc/clickhouse-server/config.xml /data/clickhouse/config/config.xml
  1. 生成密码
# 这一步如果你不需要密码就跳过,需要操作一下
echo -n 123456 | openssl dgst -sha256
(stdin)= 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
  1. 修改users.xml配置
    同理,不需要配置密码的就省略这一步吧。

  2. 运行容器

docker run -itd --name my-clickhouse --ulimit nofile=262144:262144 -p 28123:8123 -p 29000:9000 -p 29009:9009 -v /data/clickhouse/data:/var/lib/clickhouse:rw -v /data/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml -v /data/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml -v /data/clickhouse/log:/var/log/clickhouse-server:rw yandex/clickhouse-server:21.3.14.1-alpine
  1. 测试
# 进入容器
docker exec -it my-clickhouse /bin/bash
# 连接clickhouse
clickhouse-client --password "123456"
# 查看库
show databases;

## 或者在其他其他上通过http接口测试是否能连通
echo 'show databases' | curl 'http://127.0.0.1:28123/?user=default&password=123456' -d @-

## 如果本地可以通,其他主机连不通的话则看一下防火墙是否打开端口了

二. ClickHouse 冷数据恢复的迁移方式
直接拷贝走clickhouse 的数据到另一台机器上,修改下相关配置就可以直接启动了,仔细的观察一下 ClickHouse 在文件系统上的目录结构(配置文件
/ect/clickhouse-server/config.xml 里面配置的 ),为了便于查看,只保留了 data 和 metadata 目录。




基于这个信息,直接把data和metadata目录(要排除 system 库)复制到新集群,即可实现数据迁移

posted @   怀里的懒猫  阅读(441)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示