其他分享
首页 > 其他分享> > clclickhouse与bitmap的结合

clclickhouse与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

标签:clclickhouse,gender,+-----+----+,uv,label,testbit,结合,bitmap
来源: https://blog.csdn.net/u010711495/article/details/112747598