Clickhouse从入门到入坑(16)

51 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 17 天,点击查看活动详情

生命不息,学习不止

题外话

周六了,愉快的双休周末开始了,作为3202年的新青年,周六周日我当然是选择宅在家里,打打游戏,打打猫,打打人是不是,嘿嘿嘿

废话不多说,上货

在这里插入图片描述

表引擎

继续表引擎的介绍

  • AggregatingMergeTree

AggregatingMergeTree的主要特点是可以按照某些维度进行聚合,并且支持多种聚合函数。下面是 AggregatingMergeTree 表引擎的工作原理:

  1. 数据存储

AggregatingMergeTree 表引擎中的数据以列簇的形式存储,每一列簇包含了一定数量的行数据。每个列簇都包含一个 key 列,表示该列簇所代表的数据的维度信息。例如,如果按照时间维度聚合,那么 key 列就是时间戳,每个列簇代表一个时间段内的数据。

  1. 数据合并

当新增数据到来时,AggregatingMergeTree 表引擎会先根据 key 列信息找到对应的列簇,然后将新数据添加到该列簇的最后一行。当某个列簇的行数达到一定阈值时,该列簇会被合并成一个新的列簇,合并时会按照 key 列的值进行排序,然后对相邻的行数据进行聚合,得到新的聚合结果。例如,可以对每个列簇内的数据按照时间戳进行聚合,得到每个时间段的最大值、最小值、平均值等信息。

  1. 数据查询

当进行数据查询时,AggregatingMergeTree 表引擎会先根据查询条件找到相应的列簇,然后按照 key 列的值进行排序。如果查询条件中包含聚合函数,那么 AggregatingMergeTree 表引擎会在该列簇内对相应的数据进行聚合,得到聚合结果。如果查询条件中包含多个列簇,那么 AggregatingMergeTree 表引擎会在每个列簇内进行聚合,并将聚合结果合并起来返回。

总的来说,AggregatingMergeTree 表引擎通过将数据按照 key 列分成多个列簇,然后对每个列簇内的数据进行聚合,以实现高效的数据存储和查询。同时,AggregatingMergeTree 表引擎还支持自动删除过期数据,可以使用 TTL 属性指定数据的保留时间。

你以为结束了

下一篇我们继续挖坑,演示一下AggregatingMergeTree的原理

在这里插入图片描述

大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划! 在这里插入图片描述