|NO.Z.00031|——————————|BigDataEnd|——|Hadoop&PB级数仓.V15|——|PB数仓.v15|会员活跃度分析|Hive on Tez&活跃&新增&留存|

一、计算2020-07-22这一天的会员活跃度
### --- 计算2020-07-22这一天的会员活跃度

~~~     Hive on Tez测试数据说明:07-22(新增5000条) / 0723(新增4000条):18999条左右,执行脚本
### --- Hive on Tez语法
SCRIPT_HOME=/data/yanqidw/script/member_active

~~~     # 加载 ODS 层数据(文件与表建立关联)
sh $SCRIPT_HOME/ods_load_startlog.sh 2020-07-22
~~~     # 加载 ODS 层数据(解析json数据)
sh $SCRIPT_HOME/dwd_load_startlog.sh 2020-07-22
~~~     # 活跃会员

sh $SCRIPT_HOME/dws_load_member_start.sh 2020-07-22
sh $SCRIPT_HOME/ads_load_member_active.sh 2020-07-22
~~~     # 新增会员

sh $SCRIPT_HOME/dws_load_member_add_day.sh 2020-07-22
sh $SCRIPT_HOME/ads_load_member_add.sh 2020-07-22
~~~     # 会员留存

sh $SCRIPT_HOME/dws_load_member_retention_day.sh 2020-07-22
sh $SCRIPT_HOME/ads_load_member_retention.sh 2020-07-22
二、Hive on Tez计算2020-07-22会员活跃度
### --- 加载数据到ODS层及DWD层

[root@hadoop02 ~]# SCRIPT_HOME=/data/yanqidw/script/member_active
~~~     # 加载 ODS 层数据(文件与表建立关联)

[root@hadoop02 ~]# sh $SCRIPT_HOME/ods_load_startlog.sh 2020-07-22
~~~     # 查看hdfs文件与ods层是否建立关联

hive (default)> show partitions ods.ods_start_log;
partition
dt=2020-07-21
dt=2020-07-22
hive (default)> select count(*) from ods.ods_start_log where dt='2020-07-22' limit 10;
9000
### --- 把ODS层数据加载DWD层
~~~     # 加载 ODS 层数据(解析json数据)

[root@hadoop02 ~]# sh $SCRIPT_HOME/dwd_load_startlog.sh 2020-07-22
~~~     # 查看ODS层数据是否解析到DWD层

hive (default)> show partitions dwd.dwd_start_log;
partition
dt=2020-07-21
dt=2020-07-22
hive (default)> select count(*) from dwd.dwd_start_log where dt='2020-07-22';
9000
### --- 计算活跃会员
~~~     # 解析活跃会员数据到DWS层

[root@hadoop02 ~]# sh $SCRIPT_HOME/dws_load_member_start.sh 2020-07-22
~~~     # 查看活跃会员是否加载到DWS层

hive (default)> show partitions dws.dws_member_start_day;
partition
dt=2020-07-21
dt=2020-07-22
hive (default)> select count(*) from dws.dws_member_start_day where dt='2020-07-22';
9000

hive (default)> show partitions dws.dws_member_start_week;
partition
dt=2020-07-21
dt=2020-07-22
hive (default)> select count(*) from dws.dws_member_start_week where dt='2020-07-22';
14999

hive (default)> show partitions dws.dws_member_start_month;
partition
dt=2020-07-21
dt=2020-07-22
hive (default)> select count(*) from dws.dws_member_start_month where dt='2020-07-22';
14999
~~~     # 计算活跃会员

[root@hadoop02 ~]# sh $SCRIPT_HOME/ads_load_member_active.sh 2020-07-22
~~~     # 查看计算结果
hive (default)> show partitions ads.ads_member_active_count;
partition
dt=2020-07-21
dt=2020-07-22

hive (default)> select * from ads.ads_member_active_count;
9999    9999    9999    2020-07-21
9000    14999   14999   2020-07-22
### --- 计算新增会员
~~~     # 加载新增会员到dws层

[root@hadoop02 ~]# sh $SCRIPT_HOME/dws_load_member_add_day.sh 2020-07-22
~~~     # 查看新增会员是否加载到dws层
hive (default)> select count(*) from dws.dws_member_add_day where dt='2020-07-22';
5000
~~~     # 计算新增会员

[root@hadoop02 ~]# sh $SCRIPT_HOME/ads_load_member_add.sh 2020-07-22
hive (default)> show partitions ads.ads_new_member_cnt;
partition
dt=2020-07-21
dt=2020-07-22

hive (default)> select * from ads.ads_new_member_cnt;
9999    2020-07-21
5000    2020-07-22
### --- 计算会员留存

~~~     # 把留存会员加载到dws层
[root@hadoop02 ~]# sh $SCRIPT_HOME/dws_load_member_retention_day.sh 2020-07-22
~~~     # 查看留存会员是否加载到dws层

hive (default)> show partitions dws.dws_member_retention_day;
partition
dt=2020-07-21
dt=2020-07-22

hive (default)> select count(*) from dws.dws_member_retention_day where dt='2020-07-22';
4000                //今天是第二天采集数据,留存下来的会员是4000条
~~~     # 计算留存会员
[root@hadoop02 ~]# sh $SCRIPT_HOME/ads_load_member_retention.sh 2020-07-22
hive (default)> show partitions ads.ads_member_retention_count;
partition
dt=2020-07-21
dt=2020-07-22

~~~     # 留存会员计算的值为4000;
hive (default)> select * from ads.ads_member_retention_count;
OK
2020-07-21  1   4000    2020-07-22

一、计算2020-07-23这一天的会员活跃度
### --- Hive on Tez语法
SCRIPT_HOME=/data/yanqidw/script/member_active

~~~     # 加载 ODS 层数据(文件与表建立关联)
sh $SCRIPT_HOME/ods_load_startlog.sh 2020-07-23
~~~     # 加载 ODS 层数据(解析json数据)
sh $SCRIPT_HOME/dwd_load_startlog.sh 2020-07-23
~~~     # 活跃会员

sh $SCRIPT_HOME/dws_load_member_start.sh 2020-07-23
sh $SCRIPT_HOME/ads_load_member_active.sh 2020-07-23
~~~     # 新增会员

sh $SCRIPT_HOME/dws_load_member_add_day.sh 2020-07-23
sh $SCRIPT_HOME/ads_load_member_add.sh 2020-07-23
~~~     # 会员留存

sh $SCRIPT_HOME/dws_load_member_retention_day.sh 2020-07-23
sh $SCRIPT_HOME/ads_load_member_retention.sh 2020-07-23
二、Hive on Tez计算2020-07-23会员活跃度
### --- 加载数据到ODS层及DWD层
[root@hadoop02 ~]# SCRIPT_HOME=/data/yanqidw/script/member_active
 
~~~     # 加载 ODS 层数据(文件与表建立关联)
[root@hadoop02 ~]# sh $SCRIPT_HOME/ods_load_startlog.sh 2020-07-23
~~~     # 查看hdfs文件与ods层是否建立关联

hive (default)> show partitions ods.ods_start_log;
partition
dt=2020-07-21
dt=2020-07-22
dt=2020-07-23
hive (default)> select count(*) from ods.ods_start_log where dt='2020-07-23' limit 10;
11000
### --- 把ODS层数据加载DWD层

~~~     # 加载 ODS 层数据(解析json数据)
[root@hadoop02 ~]# sh $SCRIPT_HOME/dwd_load_startlog.sh 2020-07-23
~~~     # 查看ODS层数据是否解析到DWD层

hive (default)> show partitions dwd.dwd_start_log;
partition
dt=2020-07-21
dt=2020-07-22
dt=2020-07-23
hive (default)> select count(*) from dwd.dwd_start_log where dt='2020-07-23';
11000
### --- 计算活跃会员

~~~     # 解析活跃会员数据到DWS层
[root@hadoop02 ~]# sh $SCRIPT_HOME/dws_load_member_start.sh 2020-07-23
~~~     # 查看活跃会员是否加载到DWS层

hive (default)> show partitions dws.dws_member_start_day;
partition
dt=2020-07-21
dt=2020-07-22
dt=2020-07-23
hive (default)> select count(*) from dws.dws_member_start_day where dt='2020-07-23';
11000

hive (default)> show partitions dws.dws_member_start_week;
partition
dt=2020-07-21
dt=2020-07-22
dt=2020-07-23
hive (default)> select count(*) from dws.dws_member_start_week where dt='2020-07-23';
18999

hive (default)> show partitions dws.dws_member_start_month;
partition
dt=2020-07-21
dt=2020-07-22
dt=2020-07-23
hive (default)> select count(*) from dws.dws_member_start_month where dt='2020-07-23';
18999
### --- 计算活跃会员

[root@hadoop02 ~]# sh $SCRIPT_HOME/ads_load_member_active.sh 2020-07-23
~~~     # 查看计算结果

hive (default)> show partitions ads.ads_member_active_count;
partition
dt=2020-07-21
dt=2020-07-22
dt=2020-07-23

hive (default)> select * from ads.ads_member_active_count;
9999    9999    9999    2020-07-21
9000    14999   14999   2020-07-22
11000   18999   18999   2020-07-23
### --- 计算新增会员

~~~     # 加载新增会员到dws层
[root@hadoop02 ~]# sh $SCRIPT_HOME/dws_load_member_add_day.sh 2020-07-23
~~~     # 查看新增会员是否加载到dws层

hive (default)> select count(*) from dws.dws_member_add_day where dt='2020-07-22';
5000
hive (default)> select count(*) from dws.dws_member_add_day where dt='2020-07-23';
4000                             
### --- 计算新增会员

[root@hadoop02 ~]# sh $SCRIPT_HOME/ads_load_member_add.sh 2020-07-23
hive (default)> show partitions ads.ads_new_member_cnt;
partition
dt=2020-07-21
dt=2020-07-22
dt=2020-07-23

hive (default)> select * from ads.ads_new_member_cnt;
9999    2020-07-21
5000    2020-07-22
4000    2020-07-23
### --- 计算会员留存

~~~     # 把留存会员加载到dws层
[root@hadoop02 ~]# sh $SCRIPT_HOME/dws_load_member_retention_day.sh 2020-07-23
~~~     # 查看留存会员是否加载到dws层

hive (default)> show partitions dws.dws_member_retention_day;
partition
dt=2020-07-21
dt=2020-07-22
dt=2020-07-23

hive (default)> select count(*) from dws.dws_member_retention_day where dt='2020-07-22';
4000
hive (default)> select count(*) from dws.dws_member_retention_day where dt='2020-07-23';
7000
~~~     # 计算留存会员

[root@hadoop02 ~]# sh $SCRIPT_HOME/ads_load_member_retention.sh 2020-07-23
hive (default)> show partitions ads.ads_member_retention_count;
partition
dt=2020-07-21
dt=2020-07-22
dt=2020-07-23

hive (default)> select * from ads.ads_member_retention_count;
2020-07-21  1   4000    2020-07-22
2020-07-21  2   2000    2020-07-23
2020-07-22  1   5000    2020-07-23

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(16)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示