ClickHouse表引擎MergeTree

295 阅读1分钟

MergeTree

MergeTree是ClickHouse的核心引擎,适合于大量数据插入表中。MergeTree家族有以下8种: MergeTree Family.png create table table_name( id UInt32, sku_id String, total_amount Decimal(16,2) TTL create_time+interval 10 SECOND, create_time Datetime ) engine =MergeTree partition by toYYYYMM(create_time) primary key (id) order by (id,sku_id);

  • ORDER BY: 如果主键不是由primary key子句明确定义的,那么ClickHouse将使用排序键作为主键;

  • PARTITION BY(可选): 按月分区toYYYYMM(date_column);

  • PRIMARY KEY(可选):一般情况下,主键与排序键(ORDER By)相同。因此,在大多数情况下,没有必要指定单独的PRIMARY KEY子句;

  • TTL:可以管理数据表或者列的生命周期的功能。

ReplacingMergeTree

  1. 只有同一批插入(新版本)或合并分区时才会进行去重。合并会在未知的时间在后台进行,所以你无法预先作出计划。有一些数据可能仍未被处理;

  2. 如果表经过了分区,去重只会在分区内部进行去重,不能执行跨分区的去重。