MergeTree

最近更新时间:2023-06-06 11:47:32

我的收藏
MergeTree 表引擎主要用于海量数据分析,支持数据分区、主键索引、稀疏索引和数据 TTL 等。
列式存储:只读取需要的列,节省 IO 和 CPU 资源。
数据分区:按照日期或其他条件将数据分割成多个部分,方便管理和查询。
稀疏主键索引:按照主键或排序键对数据进行排序和索引,加速范围查询。
次级跳过索引:根据列的最小值和最大值等统计信息跳过不符合条件的数据,进一步提高查询效率。
数据合并:后台定期将多个小的数据部分合并成一个大的数据部分,减少数据冗余和碎片。
MergeTree 引擎还有一些变种,如 ReplicatedMergeTree、AggregatingMergeTree 和 SummingMergeTree 等,它们在基本的 MergeTree 功能上增加了数据复制、数据聚合、数据求和等特性。MergeTree 表引擎支持 ClickHouse 的所有 SQL 语法,但是部分功能与标准 SQL 存在差异。
具体的 MergeTree 引擎及其变种的使用方式如下表所示:
系列
表引擎
简介
备注
MergeTree
MergeTree
用于插入极大量的数据到一张表中,数据以数据片段的形式一个接着一个地快速写入,数据片段按照一定的规则进行合并。
MergeTree 表引擎的详细使用说明请参见MergeTree
ReplacingMergeTree
可以替换掉具有相同主键的旧数据。
ReplacingMergeTree 表引擎的详细使用说明请参见ReplacingMergeTree
CollapsingMergeTree
CollapsingMergeTree 表引擎用于消除 ReplacingMergeTree 表引擎的功能限制。可以显著减少存储量并 SELECT,因此提高查询效率。
CollapsingMergeTree 表引擎的详细使用说明请参见CollapsingMergeTree
VersionedCollapsingMergeTree
类似于 CollapsingMergeTree,但是可以保留最新版本的数据。
VersionedCollapsingMergeTree 表引擎的详细使用说明请参见VersionedCollapsingMergeTree
SummingMergeTree
可以对具有相同主键的数据进行求和操作。
说明 SummingMergeTree 表引擎的详细使用说明请参见SummingMergeTree
AggregatingMergeTree
可以对具有相同主键的数据进行聚合操作。
AggregatingMergeTree 表引擎的详细使用说明请参见AggregatingMergeTree
说明:
生产环境中,通常前面还要增加一个 Replicated 前缀,表示多副本,详细使用说明请参见Data Replication
ReplicatedSummingMergeTree
ReplicatedReplacingMergeTree
ReplicatedAggregatingMergeTree
ReplicatedCollapsingMergeTree
ReplicatedVersionedCollapsingMergeTree
ReplicatedGraphiteMergeTree