podman安装clickhouse
- 1.什么是ClickHouse
- [2. 安装](#2. 安装)
- 3.实践(表命名)
1.什么是ClickHouse
ClickHouse 是一款开源列式存储 OLAP 数据库,由 Yandex 开发,主打海量数据实时分析。它采用列式存储、向量化执行引擎、数据分片与并行计算,对聚合、过滤、统计类查询性能极强,适合日志、埋点、监控、金融流水等大宽表场景。支持 SQL 语法,兼容丰富数据格式,可批量高速写入。它不擅长高频单行更新与事务,优先面向读多写少的分析业务,常搭配 Kafka 做实时数仓。可单机、容器或集群部署,资源开销可控,广泛用于大数据实时看板、指标统计、用户行为分析。
2. 安装
本文安装的是clickhouse 26.9.19.9
2.1.拉取镜像
bash
# 拉取镜像
podman pull clickhouse/clickhouse-server
2.2.创建容器
bash
# 创建本地存放 clickhouse 数据、日志、配置目录
# 创建宿主机目录,将容器内的东西映射出来
mkdir -p /home/wengad/data/clickhouse/{data,logs,config.d,users.d}
# 创建容器
podman run -d \
--name clickhouse \
-p 8123:8123 \
-p 9020:9000 \
--ulimit nofile=262144:262144 \
--cap-add=SYS_NICE \
--cap-add=IPC_LOCK \
-e CLICKHOUSE_PASSWORD="Click_HK999a" \
-e CLICKHOUSE_USER=default \
-v /home/wengad/data/clickhouse/data:/var/lib/clickhouse:Z \
-v /home/wengad/data/clickhouse/logs:/var/log/clickhouse-server:Z \
-v /home/wengad/data/clickhouse/config.d:/etc/clickhouse-server/config.d:Z \
-v /home/wengad/data/clickhouse/users.d:/etc/clickhouse-server/users.d:Z \
clickhouse/clickhouse-server
2.3.修改监听
在宿主机配置目录 /home/wengad/data/clickhouse/config.d/listen.xml
0.0.0.0
bash
# 重启容器
podman restart clickhouse
bash
# 测试下
curl http://127.0.0.1:8123 -u default:Click_HK999a
不修改,有可能通过dbeaver会报如下错误:
bash
SQL 错误 [HY000]: Query request failed (attempt: 1, duration: 185ms, queryId: a30ce82a-b191-45ed-80bf-de09f9bbb31e)
Query request failed (attempt: 1, duration: 185ms, queryId: a30ce82a-b191-45ed-80bf-de09f9bbb31e)
Connection reset
2.4.DBeaver连接
报错:Invalid LZ4 magic byte: '-112'

SQL 错误 HY000: Invalid LZ4 magic byte: '-112'
Invalid LZ4 magic byte: '-112'
解决:关闭驱动侧 LZ4 压缩

2.5.WEB端连接


3.实践(表命名)
3.1.语法硬性规则
- 无引号表名正则:
^[a-zA-Z_][a-zA-Z0-9_]*$,只能字母、下划线开头,后面字母 / 数字 / 下划线;不能数字开头、不能空格、中文、点、横杠、特殊符号ClickHouse - 大小写敏感 :
user_log和User_Log是两张不同表 - 禁止直接使用 SQL 关键字;非要用关键字做表名,必须用
\`` 或"` 包裹 - 带引号可以支持特殊字符,但不推荐,容易在 BI、JDBC 同步踩坑
3.2.工程推荐命名规范
- 全部小写 + 下划线分隔(蛇形),规避 DBeaver、BI 工具自动大小写转换问题
- 语义前缀区分类型:
ods_:原始层、dwd_明细层、dws_汇总层local_本地表、dist_分布式表、tmp_临时表
- 带上业务域:
ods_app_click_log、dws_order_day_stats - 禁止连续下划线,名字简洁,一般不超过 64 字符
- 不要用
system、numbers这类内置系统表名
3.3.不推荐写法
UserLog(驼峰,大小写坑)、app-click(短横线)、app.click(点号)、1_user_log(数字开头)、中文表名
示例标准表名:ods_web_access_log、dws_user_pv_uv_di