clickhouse数据模型之留存分析
什么是留存,比如在20200701这天操作了“点击banner”的用户有100个,这部分用户在20200702这天操作了“点击app签到”的有20个,那么对于分析时间是20200701,且“点击banner”的用户在次日“点击app签到”的留存率是20%。
背景
关于用户留存模型是各大商业数据分析平台必不可少的功能,企业一般用该模型衡量用户的活跃情况,也是能直接反应产品功能价值的直接指标;如,boss想要了解商城改版后,对用户加购以及后续下单情况的影响等。如下图,这就是一个典型的留存分析功能:

image.png
问题
通常实现上述需求的传统做法是多表关联,了解clickhouse的攻城狮都清楚,多表关联简直就是clickhouse的天敌;如一张用户行为日志表中至少包含:用户id、行为事件、操作时间、地点属性等,想分析20200909日河南省注册用户次日的下单情况,那么SQL一般会这么写:
select count(distinct t1.uid) r1, count(distinct t2.uid) r2 from
(
select uid from action_log where day='20200909' and action='login' and province='河南省'
) as t1 left join
(
select uid from action

本文介绍了如何使用ClickHouse进行留存分析,对比了使用Roaringbitmap和retention函数的方法。Roaringbitmap通过压缩数据提高查询性能,适合大数据集,但操作复杂。而retention函数则简化了留存分析,但可能需要关联查询,性能受影响。文中通过实例展示了这两种方法在留存率计算中的应用。
最低0.47元/天 解锁文章
726

被折叠的 条评论
为什么被折叠?



