《手摸手带你学ClickHouse》之SummingMergeTree表引擎
前文回顾:
《手摸手带你学ClickHouse》之安装部署
《手摸手带你学ClickHouse》之访问接口
《手摸手带你学ClickHouse》之导入导出数据
《手摸手带你学ClickHouse》之MergeTree系列表引擎
《手摸手带你学ClickHouse》之ReplacingMergeTree表引擎
《手摸手带你学ClickHouse》之CollapsingMergeTree表引擎
《手摸手带你学ClickHouse》之VersionedCollapsingMergeTree表引擎
废话不多说,这篇文章讲ClickHouse的SummingMergeTree表引擎。
SummingMergeTree 表引擎可在分区合并时对数据进行聚合汇总。将同一分组下多行数据合并成一行,减少数据存储量,这样在查询时就能降低性能消耗,提高效率。
这种场景适用于:
- 只需要汇总数据,不关注明细。
- 汇总条件必须预先明确(GROUP BY条件明确)。
创建表:
CREATE TABLE tb_summing(
id Int8,
city String,
v1 UInt32,
v2 Float64,
create_time DateTime
)ENGINE = SummingMergeTree()
PARTITION BY toYYYYMM(create_time)
PRIMARY KEY id
ORDER BY (id,city);
插入数据:
insert into tb_summing
values
(1,'km',80,100,now()),
(1,'km',30,90,now()),
(3,'km',50,60,'2021-07-02 17:02:12'),
(3,'bj',200,70.99,'2021-07-02 17:02:12');
合并分区:
optimize table tb_summing final;
合并分区时,分区内数据自动根据ORDER BY条件取值进行聚合操作,如下。
需要注意的是,在声明引擎时,可以传入参数
ENGINE= SummingMergeTree(col1,col2…)
这是选填参数,用于指定除主键外需要汇总的字段,如果没有参数则默认汇总非主键的其余所有数值型字段。
后续将继续更新该系列,大佬超手摸手带你学ClickHouse,敬请关注!!!
觉得有帮助点个赞吧!!!
原创不易,转载请注明出处。
还没有评论,来说两句吧...