clclickhouse与bitmap的结合

用途

  • AggregatingMergeTree用来做增量数据统计聚合
  • bitmap存储用户id,因为id数据量较大,用bitmap存储可以有效节约空间

案例

举个例子
clickhouse中建立表,引擎为AggregatingMergeTree,因为要做一些自定义聚合,所以选择这个引擎.

create table testbit(
    label String,
    name String,
    uv AggregateFunction(groupBitmap,UInt64) comment 'bitmap存储用户'
)engine=AggregatingMergeTree()
partition by label
order by (label,name);

向表中插入数据
对于AggregateFunction类型的列字段,在进行数据的写入和查询时与其他的表引擎有很大区别,在写入数据时,需要调用-State函数;而在查询数据时,则需要调用相应的-Merge函数。

insert into testbit
select `gender`,
        gender,
        groupBitmapState(toUInt64(uid))
from usertable
group by gender;

查询数据
比如,查询男女用户各自的总数

select label,bitmapCardinality(groupBitmapMergeState(uv)) as uv
from testbit
group by label;
+-----+----+
|label|uv  |
+-----+----+
||1146|
||1253|
+-----+----+

总结

参考

clickhouse Aggregatingmergetree表引擎_鸭梨的博客-CSDN博客

groupBitmap | ClickHouse Documentation

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值