ClickHouse之MergeTree引擎!

ClickHouse中最强大的表引擎当属MergeTree(合并树)引擎及该系列其他引擎,根 据业务场景选择合适的引擎。
下文时主要的mergeTree引擎

MergeTree ClickHouse中最重要的引擎,主要有如下特点: 基于分区键(partitioning key)的数据分区分块存储、前缀稀疏索 引(order by和primary key)。

ReplacingMergeTree 相对于MergeTree,它会用最新的数据覆盖具有相同主键的重复 项。删除老数据的操作是在分区异步merge的时候进行处理,只有 同一个分区的数据才会被去重,分区间及shard间重复数据不会被 去重,所以应用侧想要获取到最新数据,需要配合argMax函数一 起使用。

Summin gMergeTree 当合并SummingMergeTree表的数据片段时,ClickHouse会把所有 具有相同主键的行进行汇总,将同一主键的行替换为包含sum后的 一行记录。如果主键的组合方式使得单个键值对应于大量的行,则 可以显著的减少存储空间并加快数据查询的速度。

Aggregat ingMerge Tree 该引擎继承自MergeTree,并改变了数据片段的合并逻辑。 ClickHouse会将一个数据片段内所有具有相同主键(准确的说是排 序键)的行替换成一行,这一行会存储一系列聚合函数的状态。可 以使用AggregatingMergeTree表引擎来做增量数据的聚合统计, 包括物化视图的数据聚合。 Collapsin gMergeT ree 在创建时与MergeTree基本一样,除了最后多了一个参数,需要指 定Sign位(必须是Int8类型)。

CollapsingMergeTree 会异步地删除 (折叠)除了特定列Sign1和-1值以外的所有字段的值重复的行。

Versione dCollapsi ngMerge Tree 是CollapsingMergeTree的升级,使用不同的collapsing算法,该算 法允许使用多个线程以任何顺序插入数据。

Replicated*Merge Tree 只有Replicated*MergeTree系列引擎是上面介绍的引擎的多副本版 本,为了提升数据和服务的可靠性,建议使用副本引擎:

● ReplicatedMergeTree

● ReplicatedSummingMergeTree

● ReplicatedReplacingMergeTree

● ReplicatedAggregatingMergeTree

● ReplicatedCollapsingMergeTree

● ReplicatedVersionedCollapsingMergeTree

● ReplicatedGraphiteMergeTree

总结:

● 自助报表分析、行为数据分析,在不涉及重复数据聚合的情况下,建议使用 ReplicatedMergeTree表引擎。

● 涉及到物化视图等聚合函数的场景,建议使用ReplicatedAggregatingMergeTree 表引擎;

● 经常有数据去重或有update修改数据的场景下,建议使用ReplacingMergeTree表 引擎,配合使用argMax函数获取最新数据。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值