数据仓库_LT,留存,回访的设计思路

今天面试问到了一个问题,假设我们的用户信息是天级别统计的,那么如果计算多天的留存与回访就需要扫描多个分区,这样计算资源比较多,如何进行优化。

首先要介绍一下,留存,回访,lt 这3个基本概念

基本概念

n日留存 :n日后是否访问app

n日回访 :n日活是否访问某个业务模块(app中的某一板块,当这个板块为app时,留存==回访),类似于留存

lt : 用户的生命周期,相当于整体的活跃天数。 详细参考 :用户全生命周期价值(LTV)指标如何计算 - 传播蛙

思路

我们需要构建map存储用户的历史活跃天数,然后利用日期作为key进行快速索引

构建历史全量活跃天数表

复制代码
with all_act_tmp as (
	select 
		device_id,
		map('${date}',1) as act_date_map
	from test_dwd.dwd_user_device_active_di
	where date = '${date}'
	
	union all
	select 
		device_id,
		act_date_map
	from test_dwd.user_dwd_device_active_df
	where date = '${date-1}'
)


insert overwrite table test_dwd.user_dwd_device_active_df partition(date='${date}')
select 
	device_id,
	union_map(act_date_map) 
from 	
	all_act_tmp
group by device_id 

计算相关指标

复制代码
select 
	device_id,
	map_keys(act_date_map) as act_date_list
	size(act_date_map) as all_lt_cnt,
	if(act_date_map['${date}']=1,1,0) as is_act,
	if(act_date_map['${date-1}'=1,1,0]) as is_act_1d,
	if(act_date_map['${date-3}'=1,1,0]) as is_act_3d,
	if(act_date_map['${date-7}'=1,1,0]) as is_act_7d,
	...
	size(sub_map(act_date_map,'${date-2}','${date}')) as lt_3d,
	size(sub_map(act_date_map,'${date-6}','${date}')) as lt_7d,
	size(sub_map(act_date_map,'${date-14}','${date}')) as lt_15d
	...	
from 
	test_dwd.user_dwd_device_active_df 

相关功能函数

sub_map 函数 UDF

sub_map(map,start,end,byKey)

  • Returns a sub map from mao, in which key(or value) is between start and end
相关推荐
汽车仪器仪表相关领域24 分钟前
工业商业安全 “哨兵”:GT-NHVR-20-A1 点型可燃气体探测器实操解析与场景适配
大数据·人工智能·功能测试·安全·安全性测试
ctrigger1 小时前
电子信息三胞胎:电子信息工程、电子科学技术、电子信息科学技术
大数据·注册电气工程师
得物技术1 小时前
告别数据无序:得物数据研发与管理平台的破局之路
大数据·数据库·数据分析
武子康1 小时前
大数据-137 ClickHouse MergeTree 实战指南|分区、稀疏索引与合并机制 存储结构 一级索引 跳数索引
大数据·后端·nosql
TDengine (老段)2 小时前
TDengine 数学函数 SIGN 用户手册
大数据·数据库·sql·时序数据库·iot·tdengine·涛思数据
Elastic 中国社区官方博客3 小时前
在 Elastic Observability 中,启用 TSDS 集成可节省高达 70% 的指标存储
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·时序数据库
链上日记4 小时前
AIOT进军纳斯达克,推动Web3健康金融迈向全球资本市场
大数据·金融·web3
quintin20254 小时前
2025全面评测:企业培训课件制作软件哪个好一点呢
大数据·人工智能
北邮-吴怀玉4 小时前
2.2.1.2 大数据方法论与实践指南-基于飞书项目的项目管理规范
大数据·飞书·数据治理
KANGBboy4 小时前
大数据组件关系
大数据