APP数据模拟处理流程—[次日留存用户]

本文介绍了一种处理APP次日留存用户数据的方法,包括数据建模、ETL开发等步骤,通过SQL语句实现了从新增用户到次日活跃用户的匹配过程。

APP数据模拟处理流程—[次日留存用户]


/*
留存用户分析
概念:昨日新增,今天还活跃

逻辑思路:昨天在新用户表,今天在活跃用户表之中 ---->今日的次日留存用户
                昨天在新用户表的人,今天还在活跃用户表中
*/

--数据建模 -->> 纪录跟活跃用户表相同的字段
--建次日留存etl信息表:纪录跟活跃用户表相同的字段

create table etl_user_keepalive_nextday like etl_user_active_day;

--etl开发


insert into table etl_user_keepalive_nextday partition(day = '2018-05-20')
select
    actuser.sdk_ver
    ,actuser.time_zone
    ,actuser.commit_id
    ,actuser.commit_time
    ,actuser.pid
    ,actuser.app_token
    ,actuser.app_id
    ,actuser.device_id
    ,actuser.device_id_type
    ,actuser.release_channel
    ,actuser.app_ver_name
    ,actuser.app_ver_code
    ,actuser.os_name
    ,actuser.os_ver
    ,actuser.LANGUAGE
    ,actuser.country
    ,actuser.manufacture
    ,actuser.device_model
    ,actuser.resolution
    ,actuser.net_type
    ,actuser.account
    ,actuser.app_device_id
    ,actuser.mac string
    ,actuser.android_id
    ,actuser.imei
    ,actuser.cid_sn
    ,actuser.build_num
    ,actuser.mobile_data_type
    ,actuser.promotion_channel
    ,actuser.carrier
    ,actuser.city
    ,actuser.user_id
from etl_user_new_day newuser join etl_user_active_day actuser 
on newuser.user_id = actuser.user_id
where newuser.day = '2018-05-19' and actuser.day = '2018-05-20';


-------------------------------用左半连接效率略高---------------------------------------------------

insert into table etl_user_keepalive_nextday partition(day = '2018-05-20')
select
     newuser.sdk_ver
    ,newuser.time_zone
    ,newuser.commit_id
    ,newuser.commit_time
    ,newuser.pid
    ,newuser.app_token
    ,newuser.app_id
    ,newuser.device_id
    ,newuser.device_id_type
    ,newuser.release_channel
    ,newuser.app_ver_name
    ,newuser.app_ver_code
    ,newuser.os_name
    ,newuser.os_ver
    ,newuser.LANGUAGE
    ,newuser.country
    ,newuser.manufacture
    ,newuser.device_model
    ,newuser.resolution
    ,newuser.net_type
    ,newuser.account
    ,newuser.app_device_id
    ,newuser.mac string
    ,newuser.android_id
    ,newuser.imei
    ,newuser.cid_sn
    ,newuser.build_num
    ,newuser.mobile_data_type
    ,newuser.promotion_channel
    ,newuser.carrier
    ,newuser.city
    ,newuser.user_id


from etl_user_new_day newuser left semi join etl_user_active_day actuser
on newuser.user_id = actuser.use_id and newuser.day = '2018-05-19' and actuser.day = '2018-05-20';
--注意semi left join 中,右表的引用不能在WHERE中;



/*
维度统计
*/


---利用多重插入语法--















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值