ReplacingMergeTree
ReplacingMergeTree是MergeTree子集,是MergeTree的一个变种,与MergeTree几乎无差别,仅仅比MergeTree多了一个去重的功能
需要注意的是:
- 数据去重的时间是未知且无法把控的
- 数据的去重是在合并过程中操作的
- 数据的去重只能在分区内,无法跨分区
- ReplacingMergeTree无法保证数据完全没有重复
举个例子:
以创建时间为去重依据(如果不指定去重依据,那么就按照插入顺序保留最后一条,如果去重依据相等,还是按照插入顺序来判断)
SummingMergeTree
SummingMergeTree又叫预聚合引擎
SummingMergeTree会依据指定的字段做聚合操作,聚合的依据就是order by中的字段 可以理解为内部做了对order by中字段的gourp by+聚合操作
- 如果有指定的列,那么这一列即为聚合列,如果没有指定的列,那么表中所有非维度的列且是数值类型的列都会进行聚合(非维度指的就是除order by以外的)
- 无法进行跨分区聚合,只能在一个分区内聚合
- 可以指定多个聚合列