大数据实战(三十七):电商数仓(三十)之用户行为数据仓库(十六)流失用户数
作者:互联网
流失用户:最近7天未登录我们称之为流失用户
1 DWS层
使用日活明细表dws_uv_detail_day作为DWS层数据
2 ADS层
1)建表语句
hive (gmall)> drop table if exists ads_wastage_count; create external table ads_wastage_count( `dt` string COMMENT '统计日期', `wastage_count` bigint COMMENT '流失设备数' ) row format delimited fields terminated by '\t' location '/warehouse/gmall/ads/ads_wastage_count';View Code
2)
=============================主题 流失用户数=========================
流失用户: 最近7天未登录我们称之为流失用户
如果一个用户,登录了,产生日活信息!
如果一个用户在日活表中,最后一次登录的日期,距离当前已经间隔了7天,这个用户属于流失用户!
-----------------------------需求-----------------------
-----------------------------相关表---------------------
日活表dws_uv_detail_daily
-----------------------------思路-----------------------
统计日活表中,所有用户,最后一次登录的日期!
判断日期是否距离当前小于7天
-----------------------------SQL------------------------
insert into table ads_wastage_count
select
'2020-02-18',
COUNT(*)
from
(select
mid_id
from dws_uv_detail_day
where dt<='2020-02-18'
group by mid_id
having max(dt) < date_sub('2020-02-18',7)) tmp
3 编写脚本
#!/bin/bash if [ -n "$1" ] then do_date=$1 else do_date=$(date -d yesterday +%F) fi echo ===日志日期为$do_date=== sql=" use gmall; insert into table ads_wastage_count select '$do_date', COUNT(*) from (select mid_id from dws_uv_detail_day where dt<='$do_date' group by mid_id having max(dt) < date_sub('$do_date',7)) tmp " hive -e "$sql"
标签:商数,count,ads,数据仓库,用户,三十七,流失,date,wastage 来源: https://www.cnblogs.com/qiu-hua/p/13542938.html