前言
ClickHouse 是一款开源的分布式列式数据库管理系统,专门设计用于高性能的大数据分析和查询。
目前项目中用到的一个场景是将mongo的数据同步到clickhouse,使用clickhouse做报表,后续也将分享同步和使用方案
- 使用 Docker Compose 部署单机版,小项目和自己测试够用了,生产使用集群,基于此方案后续有需要我再尝试整理
- 作者:易墨
- 发布时间:2023.10.05
安装
- 安装目录:/app/clickhouse
- 镜像:yandex/clickhouse-server:20.6.8.5
- 版本: v20.6.8.5
- 配置文件文档:配置文件
- 端口说明:Network ports ,单机部署可以就暴露 8123(连接),9363(prometheus );ps:如果使用 Archery v1.10 连接需要使用 9000 端口
获取默认配置文件
默认配置文件: config.xml, users.xml
(创建 work 目录,进入运行的 clickhouse 容器后会将默认的配置文件(config.xml, users.xml)复制到 work 目录)
-
创建容器获取容器内的默认配置文件 mkdir ./work docker run -it --rm --entrypoint=/bin/bash -v ./work:/work --privileged=true --user=root yandex/clickhouse-server:20.6.8.5 进入容器后复制配置到work文件夹 cp -r /etc/clickhouse-server/* /work exit
-
trace /var/log/clickhouse-server/clickhouse-server.log /var/log/clickhouse-server/clickhouse-server.err.log 1000M 10 false false https://6f33034cfe684dd7a3ab9875e57b1c8d@o388870.ingest.sentry.io/5226277 8123 9000 9004 /etc/clickhouse-server/server.crt /etc/clickhouse-server/server.key /etc/clickhouse-server/dhparam.pem none true true sslv2,sslv3 true true true sslv2,sslv3 true RejectCertificateHandler 9009 4096 3 100 0 10000 0.9 4194304 0 8589934592 5368709120 /var/lib/clickhouse/ /var/lib/clickhouse/tmp/ /var/lib/clickhouse/user_files/ /var/lib/clickhouse/access/ users.xml default default true localhost 9000 localhost 9000 localhost 9000 127.0.0.1 9000 127.0.0.2 9000 localhost 9440 1 localhost 9000 localhost 1 3600 3600 60 system query_log toYYYYMM(event_date) 7500 system trace_log toYYYYMM(event_date) 7500 system query_thread_log toYYYYMM(event_date) 7500 system metric_log 7500 1000 system asynchronous_metric_log 60000 *_dictionary.xml /clickhouse/task_queue/ddl click_cost any 0 3600 86400 60 max 0 60 3600 300 86400 3600 /var/lib/clickhouse/format_schemas/
-
10000000000 0 random 1 ::/0 default default 3600 0 0 0 0 0
添加自定义配置
自定义配置文件文档,自定义放到 config.d/.xml,用户配置放到 users.d/.xml
添加集群配置文件:metrika.xml (单机版)
-
0.0.0.0/0 10000000000 0.01 lz4
添加自定义的配置文件:config.d/docker_related_config.xml(日志配置,端口配置,prometheus 配置,集群设置(移除))
-
error /var/log/clickhouse-server/clickhouse-server.log /var/log/clickhouse-server/clickhouse-server.err.log 1000M 10 8123 9000 9004 0.0.0.0 /metrics 9363 true true true true users.xml /etc/clickhouse-server/metrika.xml
添加自定义配置 users.d/docker_related_config.xml 配置,账号 default 密码 devops666 ,启用权限控制
-
devops666 ::/0 default default 1
docker-compose 配置文件
-
指定时区:Asia/Shanghai
-
指定端口:8123,9363
-
挂载目录:./data ./logs ./config
-
运行 compose.yml 构建:
docker compose up -d
-
version: '3' services: clickhouse-server: container_name: db_clickhouse_20_6 image: yandex/clickhouse-server:20.6.8.5 restart: always ulimits: nofile: soft: 262144 hard: 262144 environment: - TZ=Asia/Shanghai - ports=8123,9363 ports: - 8123:8123 - 9363:9363 volumes: - ./data:/var/lib/clickhouse - ./logs:/var/log/clickhouse-server - ./config:/etc/clickhouse-server
- 运行示例
-
最后连接部分参考前篇 DBeaver Ultimate 22.1.0 连接数据库(MySQL+Mongo+Clickhouse)
后语
很极限的一天,前几天就开始研究整理,今天回来灵感爆发完成构建,配置这一块一直有点迷糊,还是需要多看看文档才行