Skip to content
返回部署

部署 ClickHouse

列式 OLAP 数据库,数十亿行快速分析。

平台高级

为什么

ClickHouse 是列式数据库优化 OLAP — 数十亿行亚秒查询。聚合比行存储快 100-1000 倍。

平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。

何时使用

分析、仪表盘和日志/指标聚合用 ClickHouse。OLTP 避免(用 Postgres)。

如何做

1. Docker — clickhouse/clickhouse-server 2. 配置 — config.xml 调优 3. 表 — MergeTree 引擎 OLAP 4. 插入 — 批量插入性能 5. 查询 — SQL 聚合 6. 集群 — 跨 shard 分布式表 7. 物化 — 预计算聚合

示例

# docker-compose.yml services: clickhouse: image: clickhouse/clickhouse-server:24.3 ports: ["8123:8123", "9000:9000"] volumes: [chdata:/var/lib/clickhouse] volumes: { chdata: } # 建表和查询 clickhouse-client --query " CREATE TABLE events ( date Date, event String, user_id UInt64 ) ENGINE = MergeTree() ORDER BY (date, user_id); " clickhouse-client --query " INSERT INTO events VALUES ('2024-01-01', 'click', 123); " clickhouse-client --query " SELECT event, count() FROM events WHERE date = '2024-01-01' GROUP BY event; "

常见问题

  • ⚠单行插入慢 — 批量插入,一次 1000+ 行
  • ⚠part 过多 — 小插入过多,用异步插入
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓批量插入 — 每插入 1000-100000 行最佳吞吐
  • ✓MergeTree 配合适 ORDER BY — 查询模式主排序键
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答