MergeTree 引擎家族
MergeTree 家族中的表引擎是 ClickHouse 数据存储能力的核心。它们提供了实现高可靠性和高性能数据检索的大部分特性:列式存储、自定义分区、稀疏主索引、二级数据跳过索引等。
基础的 MergeTree 表引擎可以视为单节点 ClickHouse 实例的默认表引擎,因为它用途广泛且适用于多种场景。
在生产环境中,更推荐使用 ReplicatedMergeTree,因为它在常规 MergeTree 引擎的所有特性之上增加了高可用性。一个额外的优势是在数据摄取时自动去重,因此在插入期间如果发生网络问题,软件可以安全地重试。
MergeTree 家族中的其他所有引擎都为某些特定用例增加了额外功能。通常,这是通过在后台执行附加的数据处理操作来实现的。
MergeTree 引擎的主要缺点是相对较为“重量级”。因此,典型的模式是不要创建太多这类表。如果需要大量小表,例如用于临时数据,可以考虑使用 Log 引擎家族。
| Page | Description |
|---|---|
| MergeTree table engine | MergeTree 系列表引擎专为高数据摄取速率和海量数据量而设计。 |
| Replicated* table engines | 介绍 ClickHouse 中 Replicated* 系列表引擎的数据复制机制概览。 |
| Custom Partitioning Key | 了解如何为 MergeTree 表添加自定义分区键。 |
| ReplacingMergeTree table engine | 与 MergeTree 的区别在于,它会删除具有相同排序键值(ORDER BY 表子句,而非 PRIMARY KEY)的重复记录。 |
| CoalescingMergeTree table engine | CoalescingMergeTree 继承自 MergeTree 引擎。其核心特性是在数据分片合并期间,能够自动存储每一列的最新非空值。 |
| SummingMergeTree table engine | SummingMergeTree 继承自 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 | 在文本中快速查找搜索词。 |