簡介: 本文以某電商案例為例,透過案例為您介紹如何使用離線計算並製作漏斗圖。
背景漏斗模型其實是透過產品各項資料的轉化率來判斷產品運營情況的工具。轉化漏斗則是透過各階段資料的轉化,來判斷產品在哪一個環節出了問題,然後不斷最佳化產品。電商漏斗模型,使用者購買商品的路徑,從瀏覽商品到支付訂單的每一個環節的轉化。本文將展示從使用者「瀏覽-點選-購買」環節做漏斗分析及展示。
前提條件開通日誌服務開通MaxCompute開通Dataworks開通Quick BI案例1.業務架構圖
2.業務流程
透過阿里雲日誌服務採集日誌資料。日誌服務的資料同步至大資料計算服務MaxCompute。MaxCompute做離線計算。透過阿里雲Quick BI進行資料視覺化展示。3.準備工作
將日誌服務採集的資料增量同步到MaxCompute分割槽表中(本文案例以時間天為單位,展示每個環節的轉化率)。具體步驟請參見:日誌服務遷移至MaxCompute。並透過Dataworks設定定時排程執行,每天凌晨定時取前一天的資料,計算以天為單位的轉化率漏斗圖。詳情見參見:排程引數
表1. 日誌源表:ods_user_trans_d
表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作為時間分割槽,單位為天。);
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.結果
6.資料視覺化展示
透過Quick BI建立網站使用者分析畫像的儀表板,實現該資料表的視覺化。詳情請參見:Quick BI
測試資料根據上文介紹的漏斗模型的案例,阿里云為您提供了部分DEMO資料,您可以下載資料並根據上文示例完成整個案例的操作,從而得到您的漏斗模型圖。資料如下:測試資料
以上是關於如何使用MaxCompute並製作漏斗圖的介紹。
最新評論