本文以电商场景为例,为您介绍如何使用MaxCompute进行离线计算以及漏斗模型展示。

背景信息

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

前提条件

操作步骤

  1. 通过日志服务采集日志数据。
    日志服务采集日志数据,详情请参见数据采集概述。本文以测试数据为例演示,如需下载测试数据,请您单击测试数据下载。
  2. 将采集的日志数据迁移至MaxCompute。
    采集的日志数据迁移至MaxCompute,详情请参见日志数据迁移至MaxCompute
  3. 使用MaxCompute构建离线计算数据模型。
    1. 按照如下建表语句,在DataWorks数据开发界面创建数据引入层(ODS)表ods_user_trace_data。
      --以dt作为时间分区,单位为天。
      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 '设备品牌',
          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  
      );
      说明
    2. 按照如下建表语句,在DataWorks数据开发界面创建明细粒度事实层(DWD)表dw_user_trace_data。
      --以dt作为时间分区,单位为天。
      CREATE TABLE IF NOT EXISTS dw_user_trace_data
      (
          uid                     STRING COMMENT '用户uid',
          device_brand            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 
      );
      说明 更多DWD说明,请参见明细粒度事实层(DWD)
    3. 按照如下建表语句,在DataWorks数据开发界面创建数据应用层(ADS)表rpt_user_trace_data。
       --以dt作为时间分区,单位为天。
      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 
      );
      说明 更多ADS说明,请参见数仓分层
    4. 按照如下SQL语句,在DataWorks数据开发界面编写业务代码逻辑。
      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 
      ;
      说明 用户路径是从浏览到点击再到购买。各个环节的转化率为从当一个页面进入下一页面的人数比率,例如点击转换率=进入点击页面的人数/浏览页面人数。
  4. 数据可视化展示。
    通过Quick BI创建网站用户分析画像的仪表板,实现该数据表的可视化,详情请参见云数据源MaxCompute漏斗图可视化展示