|NO.Z.00018|——————————|BigDataEnd|——|Hadoop&OLAP_ClickHouse.V15|——|ClickHouse.v15|MergeTree家族表引擎|CollapsingMergeTree|

一、MergeTree家族表引擎:CollapsingMergeTree
### --- CollapsingMergeTree

~~~     # 以增代删:
~~~     说明: yandex官方给出的介绍是CollapsingMergeTree 会异步的删除(折叠)
~~~     这些除了特定列 Sign 有 1 和 -1 的值以外,其余所有字段的值都相等的成对的行。
~~~     没有成对的行会被保留。该引擎可以显著的降低存储量并提高 SELECT查询效率。
~~~     CollapsingMergeTree引擎有个状态列sign,这个值1为”状态”行,-1为”取消”行,
~~~     对于数据只关心状态列为状态的数据,不关心状态列为取消的数据
二、CollapsingMergeTree示例
### --- 创建CollapsingMergeTree表

~~~     # 创建表
hadoop01 :) CREATE TABLE cmt_tab ( `sign` Int8, `date` Date, `name` String, `point` String ) ENGINE = CollapsingMergeTree(sign) PARTITION BY date ORDER BY name SAMPLE BY name;

CREATE TABLE cmt_tab
(
    `sign` Int8,
    `date` Date,
    `name` String,
    `point` String
)
ENGINE = CollapsingMergeTree(sign)
PARTITION BY date
ORDER BY name
SAMPLE BY name

Ok.
### --- 插入数据:

hadoop01 :) insert into cmt_tab(sign,date,name,point) values (1,'2020-11-01','cctv','100000');
hadoop01 :) insert into cmt_tab(sign,date,name,point) values (-1,'2020-11-01','cctv','100000');
hadoop01 :) insert into cmt_tab(sign,date,name,point) values (1,'2020-11-01','hntv','10000');
hadoop01 :) insert into cmt_tab(sign,date,name,point) values (-1,'2020-11-01','hntv','10000');
hadoop01 :) insert into cmt_tab(sign,date,name,point) values (1,'2020-11-01','hbtv','11000');
hadoop01 :) insert into cmt_tab(sign,date,name,point) values (-1,'2020-11-01','hbtv','11000');
hadoop01 :) insert into cmt_tab(sign,date,name,point) values (1,'2020-11-02','cctv','200000');
hadoop01 :) insert into cmt_tab(sign,date,name,point) values (1,'2020-11-02','hntv','15000');
hadoop01 :) insert into cmt_tab(sign,date,name,point) values (1,'2020-11-02','hbtv','16000');
### --- 通过optimize table amt_tab_view命令手动Merge后查询

hadoop01 :) SELECT * FROM cmt_tab;

┌─sign─┬───────date─┬─name─┬─point──┐
│    12020-11-02 │ cctv │ 200000 │
└──────┴────────────┴──────┴────────┘
┌─sign─┬───────date─┬─name─┬─point─┐
│    12020-11-02 │ hntv │ 15000 │
└──────┴────────────┴──────┴───────┘
┌─sign─┬───────date─┬─name─┬─point─┐
│    12020-11-02 │ hbtv │ 16000 │
└──────┴────────────┴──────┴───────┘
### --- 使用场景

~~~     大数据中对于数据更新很难做到,比如统计一个网站或TV的在用户数,
~~~     更多场景都是选择用记录每个点的数据,再对数据进行一定聚合查询。
~~~     而clickhouse通过CollapsingMergeTree就可以实现,
~~~     所以使得CollapsingMergeTree大部分用于OLAP场景
三、VersionedCollapsingMergeTree
### --- VersionedCollapsingMergeTree

~~~     这个引擎和CollapsingMergeTree差不多,只是对CollapsingMergeTree引擎加了一个版本,
~~~     比如可以适用于非实时用户在线统计,统计每个节点用户在在线业务 a. 创表语法

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(49)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示