ClickHouse内核分析-MergeTree的Merge和Mutation机制

注:以下分析基于开源 v19.15.2.2-stable 版本进行

引言

ClickHouse内核分析系列文章,继上一篇文章 MergeTree查询链路 之后,这次我将为大家介绍MergeTree存储引擎的异步Merge和MutationA ) % Z F G $ & ~机制。建议读者先补充上一篇文章的基础知识,这样会比较容易理解。

MergeTree Mutation功能介绍: - ^ ^ = C 9 _ g

在上一篇系Q 7 : 1 H I E列文章中,我已经介绍过ClickHouse内核中的MergeTree存储Z : ) K 4一旦生成| 9 u Q G ~ h $ 0一个Data Part,这个Data Part就b 8 ) Q 9 i不可再更改了。所以从MergeTree存储内核层面,ClickHouse就不擅长做数B t N据更新删除操作。但是绝大部J b _分用户场景中,难免F 2 C } | } 1会出现需要手动订正、修复数据的场景。所以ClickHouse为用户设计了一套离线异步机制来支持低频的Mutation(改、删)操作。

M