加载中...

MergeTree 是 ClickHouse 的核心表引擎家族,名字点明其机制:数据以不可变分片(part)批量写入,后台不断将小分片合并为大分片,思想与 LSM 树同源但面向列式分析负载。
每次批量插入生成一个按排序键有序的列式 part,列数据分文件压缩存储。主键索引是稀疏索引:每 8192 行(一个 granule)记录一条主键标记,索引极小可常驻内存,查询时先按索引圈定 granule 范围再解压扫描。分区键(如按月)支持整分区裁剪与删除。后台 merge 线程按策略合并 part,顺带完成数据整理。
ReplacingMergeTree 在合并时按主键去重;SummingMergeTree、AggregatingMergeTree 在合并时做预聚合;CollapsingMergeTree 通过符号位折叠实现变更;ReplicatedMergeTree 提供多副本复制。
适合大批量追加与聚合扫描,不适合高频单行更新;"不可变 part + 后台合并"的设计是其高压缩与高扫描速度的来源。

登录 后参与讨论
暂无讨论,来发表第一条评论吧