跳到主要内容
跳到主要内容

MergeTree 引擎家族

MergeTree 家族中的表引擎是 ClickHouse 数据存储能力的核心。它们提供了实现高可靠性和高性能数据检索的大部分特性:列式存储、自定义分区、稀疏主索引、二级数据跳过索引等。

基础的 MergeTree 表引擎可以视为单节点 ClickHouse 实例的默认表引擎,因为它用途广泛且适用于多种场景。

在生产环境中,更推荐使用 ReplicatedMergeTree,因为它在常规 MergeTree 引擎的所有特性之上增加了高可用性。一个额外的优势是在数据摄取时自动去重,因此在插入期间如果发生网络问题,软件可以安全地重试。

MergeTree 家族中的其他所有引擎都为某些特定用例增加了额外功能。通常,这是通过在后台执行附加的数据处理操作来实现的。

MergeTree 引擎的主要缺点是相对较为“重量级”。因此,典型的模式是不要创建太多这类表。如果需要大量小表,例如用于临时数据,可以考虑使用 Log 引擎家族

PageDescription
MergeTree table engineMergeTree 系列表引擎专为高数据摄取速率和海量数据量而设计。
Replicated* table engines介绍 ClickHouse 中 Replicated* 系列表引擎的数据复制机制概览。
Custom Partitioning Key了解如何为 MergeTree 表添加自定义分区键。
ReplacingMergeTree table engine与 MergeTree 的区别在于,它会删除具有相同排序键值(ORDER BY 表子句,而非 PRIMARY KEY)的重复记录。
CoalescingMergeTree table engineCoalescingMergeTree 继承自 MergeTree 引擎。其核心特性是在数据分片合并期间,能够自动存储每一列的最新非空值。
SummingMergeTree table engineSummingMergeTree 继承自 MergeTree 引擎。其核心特性是在数据分片合并期间,能够自动对数值数据求和。
AggregatingMergeTree table engine将所有具有相同主键(更准确地说,是相同排序键)的行,替换为单行(在同一数据分片内),该行存储聚合函数状态的组合结果。
CollapsingMergeTree table engine继承自 MergeTree,但在合并过程中增加了折叠行的逻辑。
VersionedCollapsingMergeTree table engine适用于对持续变化的对象状态进行快速写入,并在后台删除旧的对象状态。
GraphiteMergeTree table engine专为对 Graphite 数据进行抽稀和聚合/平均(rollup)而设计。
Exact and Approximate Vector Search精确和近似向量搜索的文档。
Full-text Search using Text Indexes在文本中快速查找搜索词。