现在需要做一个给自己公司用的,移动应用运营数据分析的后台,至于说为什么不直接用友盟?其实我们也在用,但公司有些特殊需求,就决定自己也做一个。
具体需求就不展开了,我想以用户留存率为例,向大家求教一些设计思路。
可查的数据(MYSQL中)有:每日的新增用户,每日的登录用户,以及它们具体的UID,渠道ID和版本ID。需要计算出每日的新增用户在1~7日,14日,30日的留存率,并且要细分到某个渠道或者版本。
我们定义 次日留存率=(第一天新增的用户中,在第2天还登录的用户数)/ 第一天新增的用户数;
以此类推。
我目前的想法就是(首先每日新增和登录都会被单独提取到一张表中),例如计算昨天用户的次日留存,就是先得到昨日新增用户,然后从今日登录用户中,查找出存在于昨日新增用户中的数量,然后再除以昨日新增用户数,计算出次日留存,并在MySQL中持久化这个数据。
此外还需要计算各个渠道和版本的留存。渠道可达数十个,版本可达上百个,目前的想法就是依次单独计算,效率低还可以接受,可这查出来的数据如果放在一张表里,这表的结构怎么设计我并没有好的想法。
问题就是这样了,我想请教大家还有没有好一些的处理办法,或者是否可以利用NoSQL的特性来做这件事。
具体需求就不展开了,我想以用户留存率为例,向大家求教一些设计思路。
可查的数据(MYSQL中)有:每日的新增用户,每日的登录用户,以及它们具体的UID,渠道ID和版本ID。需要计算出每日的新增用户在1~7日,14日,30日的留存率,并且要细分到某个渠道或者版本。
我们定义 次日留存率=(第一天新增的用户中,在第2天还登录的用户数)/ 第一天新增的用户数;
以此类推。
我目前的想法就是(首先每日新增和登录都会被单独提取到一张表中),例如计算昨天用户的次日留存,就是先得到昨日新增用户,然后从今日登录用户中,查找出存在于昨日新增用户中的数量,然后再除以昨日新增用户数,计算出次日留存,并在MySQL中持久化这个数据。
此外还需要计算各个渠道和版本的留存。渠道可达数十个,版本可达上百个,目前的想法就是依次单独计算,效率低还可以接受,可这查出来的数据如果放在一张表里,这表的结构怎么设计我并没有好的想法。
问题就是这样了,我想请教大家还有没有好一些的处理办法,或者是否可以利用NoSQL的特性来做这件事。