中间件速查手册
数据仓库与 OLAP合并树表引擎

MergeTree 是什么?

ClickHouse 最核心的表引擎,写入生成 part,后台不断合并

类比:收快递时先堆着,晚上统一按楼栋上架

工作方式

每次批量写入生成一个不可变的 part(按列存的文件 + 索引)。后台线程持续把小的 part 合并成大的,合并过程对查询透明。

这个模型和 LSM 树很像:只追加、不原地改,用后台合并换取写入吞吐。

家族成员

MergeTree 是一族引擎的基类,按“合并时怎么处理重复数据”分。

  • MergeTree:原样合并,不去重
  • ReplacingMergeTree:相同排序键保留最新一条(最终去重,不保证实时)
  • SummingMergeTree / AggregatingMergeTree:合并时直接聚合,适合预聚合指标
  • ReplicatedMergeTree:加 ZooKeeper 做副本,生产必选

part 太多会怎样

写入太频繁时 part 堆积,合并跟不上,就会报 `Too many parts`,写入被拒绝。解决思路是客户端攒批(每批 ≥ 1 万行),而不是加大参数硬扛。

它出现在这些中间件里

相关概念