MaxCompute在电商场景中如何进行漏斗模型分析
簡介: 本文以某電商案例為例,通過案例為您介紹如何使用離線計算并制作漏斗圖。
背景
漏斗模型其實是通過產品各項數據的轉化率來判斷產品運營情況的工具。轉化漏斗則是通過各階段數據的轉化,來判斷產品在哪一個環節出了問題,然后不斷優化產品。電商漏斗模型,用戶購買商品的路徑,從瀏覽商品到支付訂單的每一個環節的轉化。本文將展示從用戶「瀏覽-點擊-購買」環節做漏斗分析及展示。
前提條件
- 開通日志服務
- 開通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并制作漏斗圖的介紹。
?
作者:張雅靜
原文鏈接
本文為阿里云原創內容,未經允許不得轉載
總結
以上是生活随笔為你收集整理的MaxCompute在电商场景中如何进行漏斗模型分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Saas发展的黄金时代里带你理解Saa
- 下一篇: 微服务+异步工作流+ Serverles