ClickHouse 系列表引擎
ClickHouse的表引擎种类丰富,主要包括Log系列和MergeTree系列,以及外部存储引擎和内部引擎。Log系列引擎适合快速写入小表并一次性读取,如TinyLog、StripeLog和Log。MergeTree系列引擎则提供了主键索引、分区、副本和数据采样等功能,支持ALTER操作,包括MergeTree、ReplacingMergeTree、CollapsingMergeTree、VersionedCollapsingMergeTree、SummingMergeTree和AggregatingMergeTree,每种都有其特定的适用场景和特性。
MergeTree引擎的核心是其存储结构,数据按照分区目录形式存储,包含数据表目录、分区目录和具体数据文件。如ReplacingMergeTree用于后台删除重复数据,通过order by键判断重复,仅在合并分区时删除;CollapsingMergeTree通过sign标记位管理行级数据的增删,VersionedCollapsingMergeTree解决了写入顺序问题。SummingMergeTree和AggregatingMergeTree分别针对汇总查询和聚合函数查询设计,不保存详细数据。
外部存储引擎如HDFS、mysql和File,允许ClickHouse直接从外部数据源读取,而不存储数据。内部引擎如Memory、Set和Buffer则用于内存操作和临时数据存储。
MergeTree引擎的核心是其存储结构,数据按照分区目录形式存储,包含数据表目录、分区目录和具体数据文件。如ReplacingMergeTree用于后台删除重复数据,通过order by键判断重复,仅在合并分区时删除;CollapsingMergeTree通过sign标记位管理行级数据的增删,VersionedCollapsingMergeTree解决了写入顺序问题。SummingMergeTree和AggregatingMergeTree分别针对汇总查询和聚合函数查询设计,不保存详细数据。
外部存储引擎如HDFS、mysql和File,允许ClickHouse直接从外部数据源读取,而不存储数据。内部引擎如Memory、Set和Buffer则用于内存操作和临时数据存储。