用户行为数仓需求
通常情况下,数据仓库的前两层(也就是ODS层
和DWD层
)和业务需求没什么关系,它们纯粹就是为完成数据的ETL工作而存在的。
但从DWS层
开始,就需要根据业务需求来构建数据库和表了。
在用户行为数仓的建设中,需要满足下面这么几项需求。
每日新增用户
相关指标。每日新增用户数
:也就是第一次安装并且使用APP的用户,这个指标使用设备did
来统计,因为通过用户ID计算会出现偏差。但如果卸载之后再安装使用就不算新用户了。每日新增用户数的日环比和周同比
:环比
一般是将本次统计数据和上一次的统计数据作比较,而同比
则是指将本次统计数据和往年的同时期的统计数据进行比较。
环比与同比的区别 日活用户(Daily Active User,DAU)
相关指标。日活用户数
:也就是每天主动打开APP的用户。日活用户数日环比和周同比
:同每日新增用户数的日环比和周同比
类似。
每七天流失的用户数
,也就是七天未使用APP的用户数量。每日应用启动
的相关指标。每日人均启动APP数
:指的是当日所有用户启动APP的总数
/当日总人数
。每日APP启动数分布
:包括启动1次、启动2次、启动3次及以上。
设备平台
相关指标。设备平台活跃用户分布
。Android系统活跃用户分布
。IOS系统活跃用户分布
。设备品牌活跃用户分布
。设备型号活跃用户分布
。网络类型活跃用户分布
。
应用闪退
相关指标,是指发生闪退时的设备平台、品牌、版本、机型、操作系统版本等数据。每日设备平台闪退总计
,包括Android和IOS。每日Android系统不同APP版本闪退数
。每日IOS系统不同APP版本闪退数
。
为了便于后续的功能调试,需要先创建测试数据集(事先已经通过代码生成了2024-01-01
~2024-01-31
这一个月的用户行为日志,且已经上传到了HDFS中)。
如果使用ods_shopmall_add_partition.sh ${dt}
命令,那么需要调用它31
次才能在ODS层
中造出一个月的数据,所以用代码循环来实现更省事。
通过代码加载已经生成的ODS层
数据。
> cd /home/work/warehouse_user_action
> vi load_data_to_ods_shopmall.sh
#!/bin/bash
# 加载ods层的数据
for((i=1;i<=31;i++))
do
if [ $i -lt 10 ]
then
dt="2024010"$i
else
dt="202401"$i
fi
echo "ods_shopmall_add_partition.sh" ${dt}
sh ods_shopmall_add_partition.sh ${dt}
done
然后,再往DWD层
中填充数据。
> cd /home/work/warehouse_user_action
> vi load_data_to_dwd_shopmall.sh
#!/bin/bash
# 往dwd层填充数据
for((i=1;i<=31;i++))
do
if [ $i -lt 10 ]
then
dt="2024010"$i
else
dt="202401"$i
fi
echo "dwd_shopmall_add_partition.sh" ${dt}
sh dwd_shopmall_add_partition.sh ${dt}
done
最后,执行这两个数据加载脚本。
> cd /home/work/warehouse_user_action
# ods层的数据加载要先执行
> sh load_data_to_ods_shopmall.sh
> sh load_data_to_dwd_shopmall.sh
感谢支持
更多内容,请移步《超级个体》。