MergeTree 家族的表引擎是 ClickHouse 数据存储能力的核心。它们提供了实现弹性和高性能数据检索所需的大部分特性:列式存储、自定义分区、稀疏主索引、二级跳过索引等。
基础的 MergeTree 表引擎可以视为单节点 ClickHouse 实例的默认表引擎,因为它用途广泛且实用,适用于多种场景。
在生产环境中,ReplicatedMergeTree 是更推荐的选择,因为它在常规 MergeTree 引擎全部特性的基础上增加了高可用性。另一个额外优势是,它会在数据摄取时自动去重,因此如果在插入期间出现网络问题,软件也能安全地重试。
MergeTree 家族中的其他引擎则是为特定场景增加额外功能。通常,这些功能是通过在后台执行额外的数据处理来实现的。
MergeTree 引擎的主要缺点是它们相对较重。因此,通常不会使用太多这类引擎。如果你需要很多小表,例如用于临时数据,可以考虑使用 Log engine family。
| 页面 | 描述 |
|---|---|
| MergeTree 表引擎 | MergeTree 家族表引擎专为高数据摄取速率和海量数据而设计。 |
| Replicated* 系列表引擎 | ClickHouse 中 Replicated* 系列表引擎的数据复制概览 |
| 自定义分区键 | 了解如何为 MergeTree 表添加自定义分区键。 |
| ReplacingMergeTree 表引擎 | 与 MergeTree 的不同之处在于,它会删除具有相同排序键值的重复行 (ORDER BY 子句,而不是 PRIMARY KEY) 。 |
| CoalescingMergeTree 表引擎 | CoalescingMergeTree 继承自 MergeTree 引擎。其关键特性是在数据分区片段合并期间,能够自动存储每一列最后一个非 NULL 值。 |
| SummingMergeTree 表引擎 | SummingMergeTree 继承自 MergeTree 引擎。其关键特性是在数据分区片段合并期间能够自动对数值数据求和。 |
| AggregatingMergeTree 表引擎 | 将所有具有相同主键的行 (更准确地说,具有相同排序键的行) 替换为单行 (在单个数据分区片段内) ,该行存储聚合函数状态的组合。 |
| CollapsingMergeTree 表引擎 | 继承自 MergeTree,但增加了在合并过程中折叠行的逻辑。 |
| VersionedCollapsingMergeTree 表引擎 | 支持快速写入持续变化的对象状态,并在后台删除旧的对象状态。 |
| GraphiteMergeTree 表引擎 | 专为 Graphite 数据的精简以及聚合/平均 (rollup) 而设计。 |
| 精确与近似向量搜索 | 精确与近似向量搜索文档 |
| 使用文本索引进行全文搜索 | 快速查找文本中的搜索词。 |