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中;
/*
维度统计
*/
---利用多重插入语法--