电商场景实战之漏斗模型

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 本文以某电商案例为例,通过案例为您介绍如何使用离线计算并制作漏斗图。

背景

漏斗模型其实是通过产品各项数据的转化率来判断产品运营情况的工具。转化漏斗则是通过各阶段数据的转化,来判断产品在哪一个环节出了问题,然后不断优化产品。电商漏斗模型,用户购买商品的路径,从浏览商品到支付订单的每一个环节的转化。本文将展示从用户「浏览-点击-购买」环节做漏斗分析及展示。


前提条件


案例

1.业务架构图


未命名绘图.png

大屏顺示

日志服务

Macongu

X60K

欧据集成迁移感据

感据读取

日志采

应用



2.业务流程


  • 通过阿里云日志服务采集日志数据。
  • 日志服务的数据同步至大数据计算服务MaxCompute。
  • MaxCompute做离线计算。
  • 通过阿里云Quick BI进行数据可视化展示。


3.准备工作


将日志服务采集的数据增量同步到MaxCompute分区表中(本文案例以时间天为单位,展示每个环节的转化率)。具体步骤请参见:日志服务迁移至MaxCompute。并通过Dataworks设置定时调度执行,每天凌晨定时取前一天的数据,计算以天为单位的转化率漏斗图。详情见参见:调度参数


表1.  日志源表:ods_user_trans_d

屏幕快照 2021-02-08 上午10.59.57.png

数据类型

字段

说明

用户uid的md5值前8位

STRING

md5

用户uid

STRING

uid

用户操作时间戳

BIGINT

STRING

ip地址

ip

BIGINT

服务器返回状态码

status

返回给客户端的字节数

BIGINT

bytes

STRING

终端型号

device

系统版本

STRING

system

自定义事件:登录/退出/购买/注册/点击/后合/切换用户/浏览/评论

STRING

customizeevent

APP单次使用时长,当事件为退出,后合,切换用户时有该项

BIGINT

usetime

用户关注内容信息,在customize-event为浏览和评论时,包含该列

STRING

customizeevent.content


表2. 创建ODS层表:ods_user_trace_data,相关数仓模型定义请参见:数据引入层(ODS)

CREATE TABLE IF NOT EXISTS ods_user_trace_data
(
    md5                     STRING COMMENT '用户uid的md5值前8位',
    uid                     STRING COMMENT '用户uid',
    ts                      BIGINT COMMENT '用户操作时间戳',
    ip                      STRING COMMENT 'ip地址',
    status                  BIGINT COMMENT '服务器返回状态码',
    bytes                   BIGINT COMMENT '返回给客户端的字节数',
    device_brand            STRING COMMENT '设备品牌',
    device                  STRING COMMENT '终端型号',
    system_type             STRING COMMENT '系统类型,Android、IOS、ipad、Windows_phone',
    customize_event         STRING COMMENT '自定义事件:登录/退出/购买/注册/点击/后台/切换用户/浏览/评论',
    use_time                BIGINT COMMENT 'APP单次使用时长,当事件为退出、后台、切换用户时有该项',
    customize_event_content STRING COMMENT '用户关注内容信息,在customize_event为浏览和评论时,包含该列'
) 
PARTITIONED BY
(
    dt STRING  --以dt作为时间分区,单位为天。
);


表3.  创建dw层表:dw_user_trace_data,相关数仓模型定义请参见:明细粒度事实层(DWD)

CREATE TABLE IF NOT EXISTS dw_user_trace_data
(
    uid                     STRING COMMENT '用户uid',
    device_brand            STRING COMMENT '设备品牌',
    device                  STRING COMMENT '终端型号',
    system_type             STRING COMMENT '系统类型,Android、IOS、ipad、Windows_phone',
    customize_event         STRING COMMENT '自定义事件:登录/退出/购买/注册/点击/后台/切换用户/浏览/评论',
    use_time                BIGINT COMMENT 'APP单次使用时长,当事件为退出、后台、切换用户时有该项',
    customize_event_content STRING COMMENT '用户关注内容信息,在customize_event为浏览和评论时,包含该列'
) 
PARTITIONED BY
(
    dt STRING  --以dt作为时间分区,单位为天。
);


表4. 创建ADS层结果表:rpt_user_trace_data,相关数仓模型定义请参见:数仓分层

CREATE TABLE IF NOT EXISTS rpt_user_trace_data
(
    browse      STRING COMMENT '浏览量',
    click       STRING COMMENT '点击量',
    purchase    STRING COMMENT '购买量',
    browse_rate STRING COMMENT '浏览转化率',
    click_rate  STRING COMMENT '点击转化量'
) 
PARTITIONED BY
(
    dt STRING  --以dt作为时间分区,单位为天。
);


4.编写业务逻辑

  用户路径:浏览->点击->购买,各个环节的转化率(转化率 = 从当一个页面进入下一页面的人数比率)。

insert OVERWRITE table rpt_user_trace_data PARTITION (dt=${bdp.system.bizdate})
SELECT browse as 浏览量
      ,click as 点击量
      ,purchase as 购买量
      ,concat(round((click/browse)*100,2),'%') as 点击转化率
      ,concat(round((purchase/click)*100,2),'%') as 购买转化率 
from
(SELECT dt,count(1) browse from dw_user_trace_data where customize_event='browse' 
 and dt = ${bdp.system.bizdate} group by dt) a
left JOIN
(select dt,count(1) click from dw_user_trace_data where customize_event='click' 
 and dt = ${bdp.system.bizdate} group by dt) b
on a.dt=b.dt
left JOIN
(select dt,count(1) purchase from dw_user_trace_data where customize_event='purchase' 
and dt = ${bdp.system.bizdate} group by dt)c 
on  a.dt=c.dt 
;

5.结果

屏幕快照 2021-02-08 上午11.06.26.png


6.数据可视化展示

通过Quick BI创建网站用户分析画像的仪表板,实现该数据表的可视化。详情请参见:Quick BI

屏幕快照 2021-02-08 下午12.00.51.png

漏斗图

浏览

100%

点击

12.63%

购买

7.68%

从上图中我们发现,浏览到点击中的业务量呈现了明显的缩减的趋势,转化率较低。分析到哪个环节是当前业务流程中的薄弱环节,可以帮助人们更加专注于薄弱环节提高整个流程的产出。进而提高整个流程的效率。


测试数据

根据上文介绍的漏斗模型的案例,阿里云为您提供了部分DEMO数据,您可以下载数据并根据上文示例完成整个案例的操作,从而得到您的漏斗模型图。数据如下:测试数据


以上是关于如何使用离线计算并制作漏斗图的介绍。

更多关于大数据计算、云数仓技术交流,可扫码加入 “MaxCompute开发者社区” 钉钉群

image.png

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
SQL 大数据 HIVE
电商项目之交易订单明细流水表 SQL 实现(上)|学习笔记
快速学习电商项目之交易订单明细流水表 SQL 实现(上)
电商项目之交易订单明细流水表 SQL 实现(上)|学习笔记
|
机器学习/深度学习 SQL 数据可视化
数据分享|数据探索电商平台用户行为流失可视化分析
数据分享|数据探索电商平台用户行为流失可视化分析
|
Linux 网络安全 数据安全/隐私保护
FileZilla 将本地文件上传到linux目录
FileZilla 将本地文件上传到linux目录
585 0
|
存储 算法
【堆】数据结构堆的实现(万字详解)
【堆】数据结构堆的实现(万字详解)
829 0
|
编译器 API 语音技术
SDK介绍
【10月更文挑战第21天】
|
搜索推荐 前端开发 API
构建智能导购助手:百炼大模型的实践与探索
智能导购助手利用百炼大模型的Multi-Agent架构,实现精准的商品推荐和主动式对话,解决购物时商品选择困难、需求沟通成本高、推荐缺乏个性化等问题。通过详细的部署实践和技术架构解析,本文带你深入了解如何打造一个高效、个性化的智能导购系统,提升购物体验与满意度。
1299 6
构建智能导购助手:百炼大模型的实践与探索
|
弹性计算 缓存 负载均衡
【阿里云弹性计算】游戏服务器部署实战:利用阿里云ECS打造低延迟游戏环境
【5月更文挑战第24天】使用阿里云ECS打造低延迟游戏环境的实战指南,包括选择高性能处理器和SSD存储的实例,规划架构,选择近玩家的地域和可用区,部署软件,优化性能及监控。通过负载均衡、自动扩展和数据缓存提升体验,同时关注数据安全与网络安全。
941 4
|
算法 机器人 Python
Python实现教程:平面最短路径算法
Python实现教程:平面最短路径算法
572 1
|
SQL 数据库
sql数据库学习多久
SQL数据库学习的时间长度因个人基础、学习目标和投入时间而异。一般来说,可以分为以下几个阶段: 1. **入门阶段**:如果每天能够投入1\\~2小时的时间去学习并动手练习,通常一周可以达到入门
2945 0
|
存储 NoSQL 分布式数据库
数据库的演进之路:从传统到现代,技术的飞跃与应用
一、引言 数据库作为数据存储和管理的核心工具,随着信息技术的快速发展,经历了从简单到复杂、从单机到分布式的演进过程