|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──┐
│    1 │ 2020-11-02 │ cctv │ 200000 │
└──────┴────────────┴──────┴────────┘
┌─sign─┬───────date─┬─name─┬─point─┐
│    1 │ 2020-11-02 │ hntv │ 15000 │
└──────┴────────────┴──────┴───────┘
┌─sign─┬───────date─┬─name─┬─point─┐
│    1 │ 2020-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 2022-04-13 15:40  yanqi_vip  阅读(53)  评论(0)    收藏  举报

导航