电商场景实战之漏斗模型

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
智能商业分析 Quick BI,专业版 50license 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本文以某电商案例为例,通过案例为您介绍如何使用离线计算并制作漏斗图。

背景

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


前提条件


案例

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 关系型数据库 MySQL
因为一条SQL慢查询的思考
本文探讨了MySQL中的慢查询问题,包括定义(执行时间过长的SQL语句)、如何查看慢查询(通过`long_query_time`配置)以及其对系统性能的影响。慢查询可能由缺乏索引、大数据量、网络延迟等因素引起。解决和避免慢查询的方法包括优化配置、添加索引、调整查询语句、批量处理数据、分库分表等。文章还强调了索引在提升查询性能中的作用,解释了B+树索引的工作原理,并列举了可能导致索引失效的场景。
823 0
|
存储 Web App开发 前端开发
Sentry For React 完整接入详解(2021 Sentry v21.8.x)前方高能预警!三万字,慎入!(二)
Sentry For React 完整接入详解(2021 Sentry v21.8.x)前方高能预警!三万字,慎入!(二)
921 0
|
Kubernetes Ubuntu Linux
Kubernetes(K8S)集群管理Docker容器(部署篇)
Kubernetes(K8S)集群管理Docker容器(部署篇)
2788 1
|
JavaScript 前端开发 算法
|
弹性计算 缓存 负载均衡
【阿里云弹性计算】游戏服务器部署实战:利用阿里云ECS打造低延迟游戏环境
【5月更文挑战第24天】使用阿里云ECS打造低延迟游戏环境的实战指南,包括选择高性能处理器和SSD存储的实例,规划架构,选择近玩家的地域和可用区,部署软件,优化性能及监控。通过负载均衡、自动扩展和数据缓存提升体验,同时关注数据安全与网络安全。
743 4
|
算法 机器人 Python
Python实现教程:平面最短路径算法
Python实现教程:平面最短路径算法
393 1
|
SQL 数据库
sql数据库学习多久
SQL数据库学习的时间长度因个人基础、学习目标和投入时间而异。一般来说,可以分为以下几个阶段: 1. **入门阶段**:如果每天能够投入1\\~2小时的时间去学习并动手练习,通常一周可以达到入门
2388 0
|
存储 关系型数据库 MySQL
linux环境安装8.0以上版本的MySQL详细教程(亲测好用)
linux环境安装8.0以上版本的MySQL详细教程(亲测好用)
1995 0
|
SQL 监控 关系型数据库
rds跨区迁移验证与切换
rds跨区迁移验证与切换
304 4
|
SQL Serverless 数据库
深入理解 SQL 聚合函数
在 SQL 数据库中,聚合函数是一组强大的工具,用于处理和分析数据。它们可以帮助您对数据进行统计、计算总和、平均值、最大值、最小值等操作。无论您是数据库开发者、数据分析师还是希望更好地了解 SQL 数据库的用户,了解聚合函数都是非常重要的。 本文将深入探讨 SQL 中的聚合函数,包括其基本语法、常见的聚合函数类型、使用示例以及一些高级用法。
1622 0