clickhouse 关联查询_clickhouse数据模型之留存分析

本文探讨了在Clickhouse中实现留存分析的两种方法:使用Roaringbitmap和retention函数。Roaringbitmap通过位图压缩提高查询性能,但操作复杂,不支持实时数据。而retention函数则提供更简单的留存模型实现,但当需要关联用户属性时,查询性能可能下降。
摘要由CSDN通过智能技术生成

本文经作者授权,独家转载:

作者主页:https://www.jianshu.com/u/8f36a5e63d18

什么是留存,比如在20200701这天操作了“点击banner”的用户有100个,这部分用户在20200702这天操作了“点击app签到”的有20个,那么对于分析时间是20200701,且“点击banner”的用户在次日“点击app签到”的留存率是20%。

背景

关于用户留存模型是各大商业数据分析平台必不可少的功能,企业一般用该模型衡量用户的活跃情况,也是能直接反应产品功能价值的直接指标;如,boss想要了解商城改版后,对用户加购以及后续下单情况的影响等。如下图,这就是一个典型的留存分析功能:

9334f64449f3e0b60103c95c7e47ff5a.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_log where day='20200910' and action='order' and  province='河南省') 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值