MaxCompute在电商场景中如何进行漏斗模型分析
簡介: 本文以某電商案例為例,通過案例為您介紹如何使用離線計(jì)算并制作漏斗圖。
背景
漏斗模型其實(shí)是通過產(chǎn)品各項(xiàng)數(shù)據(jù)的轉(zhuǎn)化率來判斷產(chǎn)品運(yùn)營情況的工具。轉(zhuǎn)化漏斗則是通過各階段數(shù)據(jù)的轉(zhuǎn)化,來判斷產(chǎn)品在哪一個環(huán)節(jié)出了問題,然后不斷優(yōu)化產(chǎn)品。電商漏斗模型,用戶購買商品的路徑,從瀏覽商品到支付訂單的每一個環(huán)節(jié)的轉(zhuǎn)化。本文將展示從用戶「瀏覽-點(diǎn)擊-購買」環(huán)節(jié)做漏斗分析及展示。
前提條件
- 開通日志服務(wù)
- 開通MaxCompute
- 開通Dataworks
- 開通Quick BI
?
案例
1.業(yè)務(wù)架構(gòu)圖
?
2.業(yè)務(wù)流程
?
- 通過阿里云日志服務(wù)采集日志數(shù)據(jù)。
- 日志服務(wù)的數(shù)據(jù)同步至大數(shù)據(jù)計(jì)算服務(wù)MaxCompute。
- MaxCompute做離線計(jì)算。
- 通過阿里云Quick BI進(jìn)行數(shù)據(jù)可視化展示。
?
3.準(zhǔn)備工作
?
將日志服務(wù)采集的數(shù)據(jù)增量同步到MaxCompute分區(qū)表中(本文案例以時間天為單位,展示每個環(huán)節(jié)的轉(zhuǎn)化率)。具體步驟請參見:日志服務(wù)遷移至MaxCompute。并通過Dataworks設(shè)置定時調(diào)度執(zhí)行,每天凌晨定時取前一天的數(shù)據(jù),計(jì)算以天為單位的轉(zhuǎn)化率漏斗圖。詳情見參見:調(diào)度參數(shù)
?
表1. 日志源表:ods_user_trans_d
?
表2. 創(chuàng)建ODS層表:ods_user_trace_data,相關(guān)數(shù)倉模型定義請參見:數(shù)據(jù)引入層(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 '服務(wù)器返回狀態(tài)碼',bytes BIGINT COMMENT '返回給客戶端的字節(jié)數(shù)',device_brand STRING COMMENT '設(shè)備品牌',device STRING COMMENT '終端型號',system_type STRING COMMENT '系統(tǒng)類型,Android、IOS、ipad、Windows_phone',customize_event STRING COMMENT '自定義事件:登錄/退出/購買/注冊/點(diǎn)擊/后臺/切換用戶/瀏覽/評論',use_time BIGINT COMMENT 'APP單次使用時長,當(dāng)事件為退出、后臺、切換用戶時有該項(xiàng)',customize_event_content STRING COMMENT '用戶關(guān)注內(nèi)容信息,在customize_event為瀏覽和評論時,包含該列' ) PARTITIONED BY (dt STRING --以dt作為時間分區(qū),單位為天。 ); 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 '服務(wù)器返回狀態(tài)碼', bytes BIGINT COMMENT '返回給客戶端的字節(jié)數(shù)', device_brand STRING COMMENT '設(shè)備品牌', device STRING COMMENT '終端型號', system_type STRING COMMENT '系統(tǒng)類型,Android、IOS、ipad、Windows_phone', customize_event STRING COMMENT '自定義事件:登錄/退出/購買/注冊/點(diǎn)擊/后臺/切換用戶/瀏覽/評論', use_time BIGINT COMMENT 'APP單次使用時長,當(dāng)事件為退出、后臺、切換用戶時有該項(xiàng)', customize_event_content STRING COMMENT '用戶關(guān)注內(nèi)容信息,在customize_event為瀏覽和評論時,包含該列' ) PARTITIONED BY ( dt STRING --以dt作為時間分區(qū),單位為天。 );?
表3. 創(chuàng)建dw層表:dw_user_trace_data,相關(guān)數(shù)倉模型定義請參見:明細(xì)粒度事實(shí)層(DWD)
CREATE TABLE IF NOT EXISTS dw_user_trace_data ( uid STRING COMMENT '用戶uid', device_brand STRING COMMENT '設(shè)備品牌', device STRING COMMENT '終端型號', system_type STRING COMMENT '系統(tǒng)類型,Android、IOS、ipad、Windows_phone', customize_event STRING COMMENT '自定義事件:登錄/退出/購買/注冊/點(diǎn)擊/后臺/切換用戶/瀏覽/評論', use_time BIGINT COMMENT 'APP單次使用時長,當(dāng)事件為退出、后臺、切換用戶時有該項(xiàng)', customize_event_content STRING COMMENT '用戶關(guān)注內(nèi)容信息,在customize_event為瀏覽和評論時,包含該列' ) PARTITIONED BY ( dt STRING --以dt作為時間分區(qū),單位為天。 );?
表4. 創(chuàng)建ADS層結(jié)果表:rpt_user_trace_data,相關(guān)數(shù)倉模型定義請參見:數(shù)倉分層
CREATE TABLE IF NOT EXISTS rpt_user_trace_data ( browse STRING COMMENT '瀏覽量', click STRING COMMENT '點(diǎn)擊量', purchase STRING COMMENT '購買量', browse_rate STRING COMMENT '瀏覽轉(zhuǎn)化率', click_rate STRING COMMENT '點(diǎn)擊轉(zhuǎn)化量' ) PARTITIONED BY ( dt STRING --以dt作為時間分區(qū),單位為天。 );?
4.編寫業(yè)務(wù)邏輯
用戶路徑:瀏覽->點(diǎn)擊->購買,各個環(huán)節(jié)的轉(zhuǎn)化率(轉(zhuǎn)化率 =?從當(dāng)一個頁面進(jìn)入下一頁面的人數(shù)比率)。
insert OVERWRITE table rpt_user_trace_data PARTITION (dt=${bdp.system.bizdate}) SELECT browse as 瀏覽量 ,click as 點(diǎn)擊量 ,purchase as 購買量 ,concat(round((click/browse)*100,2),'%') as 點(diǎn)擊轉(zhuǎn)化率 ,concat(round((purchase/click)*100,2),'%') as 購買轉(zhuǎn)化率 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.結(jié)果
?
6.數(shù)據(jù)可視化展示
通過Quick BI創(chuàng)建網(wǎng)站用戶分析畫像的儀表板,實(shí)現(xiàn)該數(shù)據(jù)表的可視化。詳情請參見:Quick BI
?
從上圖中我們發(fā)現(xiàn),瀏覽到點(diǎn)擊中的業(yè)務(wù)量呈現(xiàn)了明顯的縮減的趨勢,轉(zhuǎn)化率較低。分析到哪個環(huán)節(jié)是當(dāng)前業(yè)務(wù)流程中的薄弱環(huán)節(jié),可以幫助人們更加專注于薄弱環(huán)節(jié)提高整個流程的產(chǎn)出。進(jìn)而提高整個流程的效率。
?
測試數(shù)據(jù)
根據(jù)上文介紹的漏斗模型的案例,阿里云為您提供了部分DEMO數(shù)據(jù),您可以下載數(shù)據(jù)并根據(jù)上文示例完成整個案例的操作,從而得到您的漏斗模型圖。數(shù)據(jù)如下:測試數(shù)據(jù)
?
以上是關(guān)于如何使用MaxCompute并制作漏斗圖的介紹。
?
作者:張雅靜
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載
總結(jié)
以上是生活随笔為你收集整理的MaxCompute在电商场景中如何进行漏斗模型分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Saas发展的黄金时代里带你理解Saa
- 下一篇: 微服务+异步工作流+ Serverles