没错,我的工种就是属于那种史上被人吐槽为最没技术含量、最打杂的工种——数据仓库开发工程师。
即使这样,我们也没有放弃理想啊,每天都在思考怎么把工作做的更好,即使打杂,也要打的优雅~~
今天分享一个用户留存模型的设计
1、抛出问题
用户留存是用户分析中最常用到的指标之一。
我们常常接到这样的需求:
~我们要看1天、2天、3天、4天 … 7天的留存~
~我们要看1天、2天、3天、4天 … 28天的留存~
还有一些不按套路出牌的:
~我们要看第33天的留存~
~我们要看第56天的留存~
…
让你在代码里写连着7天的留存,就已经写到手抽筋了,恨不得写个代码生成器来生成代码。
后面再来个连着28天的留存… 本来以为这就是终结了,谁知后面还有33天、49天、56天…
2、设计方案
可以这么来设计
CREATE EXTERNAL TABLE IF NOT EXISTS GDM_USER_LEFT_INFO_DAY(
uuid string COMMENT '用户id'
liucun_map map<string,string> COMMENT '用户90天留存情况 map(lc1:1,lc2:1...lc90:1)'
) COMMENT '日活跃1~90天用户留存信息'
PARTITIONE