ClickHouse 架构与原理 专栏导览

专栏定位

本专栏聚焦 ClickHouse 列式存储 OLAP 引擎的架构设计与查询优化——从行存 vs 列存的本质区别和 SIMD 向量化执行,到 MergeTree 引擎家族的稀疏索引与 Part 合并机制,再到分布式表的分片路由和性能调优。ClickHouse 以其极致的查询性能成为实时分析领域的标杆——理解其存储引擎和执行引擎的设计,是进行表结构设计和查询优化的前提。

目标读者

  • 使用 ClickHouse 做实时分析、报表查询的数据工程师/后端工程师
  • 需要进行 ClickHouse 集群规划和性能调优的 DBA/SRE
  • 对列式存储和 OLAP 引擎设计感兴趣的技术爱好者

专栏目录

序号标题核心内容
0101 ClickHouse 全局架构——列式存储与 MPP 执行引擎行存 vs 列存的本质区别、SIMD 向量化执行、MPP 架构的并行查询、ClickHouse 在 OLAP 场景中的定位
0202 MergeTree 引擎家族——主键索引与数据排序MergeTree 的稀疏索引(Primary Key Index)、数据按主键排序的物理存储、Mark 文件与 Granule 的定位机制、ReplacingMergeTree/AggregatingMergeTree/CollapsingMergeTree 的变体
0303 数据写入与 Part 合并写入的 Part 生成流程、后台 Merge 的触发策略与调度、Mutation 操作的异步执行、TTL 数据过期与自动清理
0404 查询执行引擎——向量化与 Pipeline查询解析→优化→执行的完整链路、向量化执行(列批量处理)、Pipeline 执行器的多线程调度、Prewhere 优化
0505 分布式表与数据分片Distributed 表引擎的查询路由、分片键(Sharding Key)设计、副本与 ReplicatedMergeTree 的 Zookeeper 协调、分布式 JOIN 的性能考量
0606 ClickHouse 性能调优——表设计、查询优化与资源管理主键与排序键设计原则、物化视图预聚合、跳数索引(minmax/set/bloom_filter/ngrambf)、用户级资源配额与并发限制
0707 ClickHouse 运维——集群部署、监控与版本升级集群部署拓扑(Shard + Replica)、system 表监控(query_log/parts/merges)、配置管理与滚动升级、与 Doris/StarRocks 的选型对比

推荐阅读路径

核心原理路径:01 → 02 → 03 → 04

分布式与调优路径:05 → 06 → 07

前置知识


关联专栏

  • Doris:同类 OLAP 引擎的设计对比
  • Trino:联邦查询与单引擎的场景对比
  • Flink:Flink 实时写入 ClickHouse 的常见架构
  • Kafka:Kafka → ClickHouse 的实时数据导入