電商數(shù)據(jù)分析平臺(tái)項(xiàng)目_第1頁(yè)
電商數(shù)據(jù)分析平臺(tái)項(xiàng)目_第2頁(yè)
電商數(shù)據(jù)分析平臺(tái)項(xiàng)目_第3頁(yè)
電商數(shù)據(jù)分析平臺(tái)項(xiàng)目_第4頁(yè)
電商數(shù)據(jù)分析平臺(tái)項(xiàng)目_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

文檔修訂記[√] ]當(dāng)前版本 者發(fā)布日期編制日版狀簡(jiǎn)要說(shuō)作審核日A按修改時(shí)間先后倒序排列,修改的排在第一行版本欄中填入版本或者更改記錄目錄第1項(xiàng)目概述1項(xiàng)目簡(jiǎn)介1項(xiàng)目目標(biāo)1業(yè)務(wù)需求簡(jiǎn)介2 用戶session2 頁(yè)面單跳轉(zhuǎn)化率統(tǒng)計(jì)2 2 流量實(shí)時(shí)統(tǒng)計(jì)2第2項(xiàng)目主體架構(gòu)3項(xiàng)目架構(gòu)3離線日志流程(參考)4實(shí)時(shí)流程(參考)5第3模擬業(yè)務(wù)數(shù)據(jù)源5離線數(shù)據(jù)5 數(shù)據(jù)模型5 數(shù)據(jù)說(shuō)明6實(shí)時(shí)數(shù)據(jù)6 數(shù)據(jù)模型6 數(shù)據(jù)說(shuō)明6查詢條件7 數(shù)據(jù)模型7 數(shù)據(jù)說(shuō)明7第4用戶Session分析8模塊概述8需求一:Session聚合統(tǒng)計(jì)8 要做什么?8 數(shù)據(jù)結(jié)構(gòu)9 數(shù)據(jù)處理流程需求二:Session隨機(jī)抽取 要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程需求三:Top10熱門品類 要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程需求四:Top10活躍Session 要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程第5頁(yè)面單跳轉(zhuǎn)化率分析17模塊概述需求一:頁(yè)面單跳轉(zhuǎn)化率 數(shù)據(jù)模型 數(shù)據(jù)處理流程第6各區(qū)域熱門商品統(tǒng)計(jì)分析18模塊概述需求一:各區(qū)域Top3商品統(tǒng)計(jì) 數(shù)據(jù)模型 數(shù)據(jù)處理流程第7點(diǎn)擊流量實(shí)時(shí)統(tǒng)計(jì)分析20模塊概述需求一:統(tǒng)計(jì)用戶 要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程需求二:點(diǎn)擊實(shí)時(shí)統(tǒng)計(jì) 要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程需求三:實(shí)時(shí)統(tǒng)計(jì)最熱 要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程需求四:最近一小時(shí)點(diǎn)擊趨勢(shì)統(tǒng)計(jì) 要做什么?數(shù)據(jù)模型 數(shù)據(jù)處理流程 第8 大數(shù)據(jù)部署建設(shè)(選做 26通過(guò)azkaban將業(yè)務(wù)進(jìn)行部署 通過(guò)Zeppelin將MySQL中的數(shù)據(jù)進(jìn)行圖表輸出 第1章項(xiàng)目概述本項(xiàng)目主要講解一個(gè)大 的企業(yè)級(jí)大數(shù)據(jù)統(tǒng)計(jì)分析平臺(tái)平臺(tái)以Spark為主,對(duì)的流量進(jìn)行離線和實(shí)時(shí)的分析。該大數(shù)據(jù)分析平臺(tái)對(duì)的各種用戶行為(行為、購(gòu)物行為、廣告點(diǎn)擊行為等)進(jìn)行復(fù)雜的分析。用統(tǒng)計(jì)分析出來(lái)的數(shù)據(jù),輔助公司中的PM(產(chǎn)品經(jīng)理、數(shù)據(jù)分析師以及管理分析現(xiàn)有產(chǎn)品的情況,并根據(jù)用戶行為分析結(jié)果持續(xù)改進(jìn)產(chǎn)品的設(shè)計(jì)以及調(diào)整公司的和業(yè)務(wù)最終達(dá)到用大數(shù)據(jù)技術(shù)來(lái)幫助提升公司的業(yè)績(jī)、營(yíng)業(yè)額以及市場(chǎng)占有率的目標(biāo)。項(xiàng)目主要使用了Spark技術(shù)生態(tài)棧中最常用的三個(gè)技術(shù)SparkCore、SparkSQLSparkStreaming,進(jìn)行離線計(jì)算和實(shí)時(shí)計(jì)算業(yè)務(wù)模塊的開(kāi)發(fā)。實(shí)現(xiàn)了包括用戶session分析、頁(yè)面單跳轉(zhuǎn)化率統(tǒng)計(jì)、熱門商品離線統(tǒng)計(jì)、廣告流量實(shí)時(shí)統(tǒng)計(jì)4個(gè)業(yè)務(wù)模塊。項(xiàng)目中所有的業(yè)務(wù)功能模塊都是直接從實(shí)際企業(yè)項(xiàng)目中抽取出來(lái)的,業(yè)務(wù)復(fù)雜度沒(méi)有任何縮水,通過(guò)合理的將實(shí)際業(yè)務(wù)模塊進(jìn)行技術(shù)整合與改造,該項(xiàng)目幾乎完全涵蓋了SparkCore、SparkSQLSparkStreaming這三個(gè)技術(shù)框架中大部分的功能點(diǎn)、知識(shí)點(diǎn)。1、掌握系統(tǒng)中Spark的主要使用場(chǎng)景以及建設(shè)流程。2、掌握企業(yè)級(jí)的Spark項(xiàng)目的復(fù)雜性能調(diào)優(yōu)、線上故障解決經(jīng)驗(yàn)、數(shù)據(jù)傾斜處理方案。3、通過(guò)項(xiàng)目實(shí)戰(zhàn),完全將Spark所有和知識(shí)點(diǎn)都應(yīng)用在項(xiàng)目中,掌握如何靈活應(yīng)用Spark各項(xiàng)技術(shù)來(lái)實(shí)現(xiàn)各種復(fù)雜業(yè)務(wù)需求。用戶該模塊主要是對(duì)用戶session進(jìn)行統(tǒng)計(jì)分析,包括session的聚合指標(biāo)計(jì)算、按時(shí)間比例隨機(jī)抽取session、獲取每天點(diǎn)擊、下單和10的品類、并獲取top10品類的點(diǎn)擊量前10的session。該模塊可以讓產(chǎn)品經(jīng)理、數(shù)據(jù)分析師以及企業(yè)管理層形象地看到各種條件下的具體用戶行為以及統(tǒng)計(jì)指標(biāo),從而對(duì)公司的產(chǎn)品設(shè)計(jì)以及業(yè)務(wù)發(fā)展做出調(diào)整。主要使用SparkCore實(shí)現(xiàn)。頁(yè)面單跳轉(zhuǎn)化率統(tǒng)計(jì)該模塊主要是計(jì)算關(guān)鍵頁(yè)面之間的單步跳轉(zhuǎn)轉(zhuǎn)化率,涉及到頁(yè)面切片算法以及頁(yè)面流匹配算法。該模塊可以讓產(chǎn)品經(jīng)理、數(shù)據(jù)分析師以及企業(yè)管理層看到各個(gè)關(guān)鍵頁(yè)面之間的轉(zhuǎn)化率,從而對(duì)網(wǎng)頁(yè)布局,進(jìn)行更好的優(yōu)化設(shè)計(jì)。主要使用SparkCore實(shí)現(xiàn)。熱門商品離線統(tǒng)計(jì)該模塊主要實(shí)現(xiàn)每天統(tǒng)計(jì)出各個(gè)區(qū)域的top3熱門商品。該模塊可以讓企業(yè)管理層看到公司售賣的商品的整體情況從而對(duì)公司的商品相關(guān)的進(jìn)行調(diào)整。主要使用SparkSQL實(shí)現(xiàn)。流量實(shí)時(shí)統(tǒng)計(jì)該模塊負(fù)責(zé)實(shí)時(shí)統(tǒng)計(jì)公司的流量包括展現(xiàn)流量和點(diǎn)擊流量。實(shí)現(xiàn)動(dòng)態(tài)機(jī)制,以及過(guò)濾;實(shí)現(xiàn)滑動(dòng)窗口內(nèi)的各城市的展現(xiàn)流量和點(diǎn)擊流量的統(tǒng)計(jì);實(shí)現(xiàn)每個(gè)區(qū)域每個(gè)的點(diǎn)擊流量實(shí)時(shí)統(tǒng)計(jì);實(shí)現(xiàn)每個(gè)區(qū)域top3點(diǎn)擊量的的統(tǒng)計(jì)。主要使用SparkStreaming實(shí)現(xiàn)。第2章項(xiàng)目主體架構(gòu)用戶行為數(shù)據(jù)在上最簡(jiǎn)單的存在形式就是日志。在運(yùn)行過(guò)程中會(huì)產(chǎn)生大量的原始日志RAWLOG,將其在文件系統(tǒng)中,企業(yè)會(huì)將多種原始日志按照用戶行為匯總成會(huì)話日志SESSIONLOG,每一個(gè)會(huì)話日志表示用戶的一種反饋。離線日志流程(參考實(shí)時(shí)流程(參考第3章模擬業(yè)務(wù)數(shù)據(jù)源數(shù)據(jù)模型數(shù)據(jù)說(shuō)明模擬的數(shù)date:是當(dāng)前日age:0-professionals:professional[0-cities:0-sex:0-keywords:("火鍋","蛋糕","重慶辣子雞","重慶小面","呷哺呷哺","新辣道魚(yú)火","國(guó)貿(mào)","太古商場(chǎng)", 料理","溫泉categoryIds:0-ProductId:0-生成的數(shù)據(jù)利用SparkSQLHive表中數(shù)據(jù)模型5Kafka格式timestampprovincecityuserid數(shù)據(jù)說(shuō)明模擬的數(shù)時(shí)間點(diǎn):當(dāng)前時(shí)間毫userId:0-省份、城市ID相同1adid:0- 省"),(4L,"三亞","海南省 ","江蘇省"),(3L,"廣州 省"),(6L,"長(zhǎng)沙","湖南省"),(7L,"西安陜西省 省"),(9L,"哈爾濱","東北省格式timestampprovincecityuserid某個(gè)時(shí)間某個(gè)省份某個(gè)城市某個(gè)用戶IDID###professionals圍:professionals[00-9 ","華北","華東","華"),(3,"廣州","華南"),(4,"三亞","華南 ","華中"),(6,"長(zhǎng)沙","華中西安","西北##","西南"),(9,"哈爾濱","東北范圍0 范圍:("火鍋","蛋糕","重慶辣子雞","重慶小面","呷哺呷哺",新辣道魚(yú)火鍋","國(guó) ","太古商場(chǎng)", 料理","溫泉 PageFlow099逗號(hào)數(shù)據(jù)模型查詢對(duì)象沒(méi)有使用MySQL數(shù)據(jù)庫(kù),采用了配置文件,在Commons項(xiàng)目中。格task.params.jsontask.params.json={startDate:"2017-10-20",\endDate:"2017-10-31",\startAge:20,endAge:50,\professionals:"",\cities:"",\sex:"",keywords:"",\categoryIds:"",\3.3.2數(shù)據(jù)說(shuō)明#可以使用的屬性如#[必選# 格式:yyyy-MM-[必選# 范圍0# 范圍0第4章用戶Session分析用戶在上,通常會(huì)有很多的點(diǎn)擊行為,首先通常都是進(jìn)入首頁(yè);然后可能點(diǎn)擊首頁(yè)上的一些商品;點(diǎn)擊首頁(yè)上的一些品類;也可能隨時(shí)在搜索框里面搜索;還可能將一些商品加入購(gòu)物車;對(duì)購(gòu)物車中的多個(gè)商品下訂單;最后對(duì)訂單中的多個(gè)商品進(jìn)行支付。用戶的每一次操作,其實(shí)可以理解為一個(gè)action,比如點(diǎn)擊、搜索、下單、支付,用戶session,指的就是,從用戶第一次進(jìn)入首頁(yè),session就開(kāi)始了。然后在一定時(shí)間范圍內(nèi),直到最后操作完(可能做了幾十次、甚至上百次操作。離開(kāi),關(guān)閉瀏覽器,或者長(zhǎng)時(shí)間沒(méi)有作;那么session就結(jié)束了。以上用戶在內(nèi)的過(guò)程,就稱之為一次session。簡(jiǎn)單理解,session就是某一天某一個(gè)時(shí)間段內(nèi),某個(gè)用戶對(duì)從打開(kāi)/進(jìn)入,到做了大量操作,到最后關(guān)閉瀏覽器的過(guò)程就叫做session。session實(shí)際上就是一個(gè) 中最基本的數(shù)據(jù)和大數(shù)據(jù)。那么大數(shù)據(jù),面向消費(fèi)者,那么對(duì)于 最基本的分析莫過(guò)于是面向用戶行為/用戶session的分析。1可以根據(jù)使用者指定的某些條件篩選出指定的一些用(有特定、職業(yè)、城市;2、對(duì)這些用戶在指定日期范圍內(nèi)發(fā)起的session,進(jìn)行聚合統(tǒng)計(jì),比如,統(tǒng)計(jì)出時(shí)長(zhǎng)在0~3s的session占總session數(shù)量的比例;3、按時(shí)間比例,比如一天有24個(gè)小時(shí),其中12:00~13:00session數(shù)量占當(dāng)天總session數(shù)量的50%,當(dāng)天總session數(shù)量是10000個(gè),那么當(dāng)天總共要抽取1000session,ok,12:00~13:00的用戶,就得抽取1000*50%=500。而且這500個(gè)需要隨機(jī)抽取。4、獲取點(diǎn)擊量、下單量和支付量都10的商品種5、獲取top10的商品種類的點(diǎn)擊數(shù)量前10的需求一:Session要做什么?統(tǒng)計(jì)出符合條件的session中時(shí)長(zhǎng)在1s~3s4s~6s7s~9s10s~30s、30s~60s、1m~3m、3m~10m、10m~30m、30m以上各個(gè)范圍session占比;、步長(zhǎng)在1~3、4~6、7~9、10~30、30~60、60以上各個(gè)范圍內(nèi)的session占比,并將結(jié)果保存到MySQL數(shù)據(jù)庫(kù)中。注意在計(jì)算之前需要根據(jù)查詢條件篩選session,查詢條件比如搜索過(guò)某些的用戶時(shí)間在某個(gè)時(shí)間段內(nèi)的用戶、在某個(gè)范圍內(nèi)的用戶、職業(yè)在某個(gè)范圍內(nèi)的用戶、所在某個(gè)城市的用戶,發(fā)起的session。找到對(duì)應(yīng)的這些用戶的session,并進(jìn)行統(tǒng)計(jì),之所以需要有篩選主要是可以讓使用者,對(duì)感的和關(guān)系的用戶群體,進(jìn)行后續(xù)各種復(fù)雜業(yè)務(wù)邏輯的統(tǒng)計(jì)和分析,那么拿到的結(jié)果數(shù)據(jù),就是只是針對(duì)特殊用戶群體的分析結(jié)果;而不是對(duì)所有用戶進(jìn)行分析的泛泛的分析結(jié)果。比如說(shuō),現(xiàn)在某個(gè)企業(yè),就是想看到用戶群體中,28~35歲的,老師職業(yè)的群體,對(duì)應(yīng)的一些統(tǒng)計(jì)和分析的結(jié)果數(shù)據(jù),從而輔助高管進(jìn)行上的、session時(shí)長(zhǎng),也就是說(shuō)一個(gè)session對(duì)應(yīng)的開(kāi)始的action,到結(jié)束的action,之間的時(shí)間范圍;還有,就是步長(zhǎng),指的是,一個(gè)session執(zhí)行期間內(nèi),依次點(diǎn)擊過(guò)多少個(gè)頁(yè)面,比如說(shuō),一次session,維持了1分鐘,那么訪問(wèn)時(shí)長(zhǎng)就是1m,然后在這1分鐘內(nèi),點(diǎn)擊了10個(gè)頁(yè)面,那么session的步長(zhǎng),就是10.,比如說(shuō),符合第一步篩選出來(lái)的session的數(shù)量大概是有1000萬(wàn)個(gè)。那么里面,要計(jì)算出時(shí)長(zhǎng)在1s~3s內(nèi)的session的數(shù)量,并除以符合條件的總session數(shù)量(比如1000萬(wàn),比如是100萬(wàn)/1000萬(wàn),那么1s~3s內(nèi)的session占比就是10%。依次類推,這里說(shuō)的統(tǒng)計(jì),就是這個(gè)意思。,這個(gè)功能的作用,其實(shí)就是,可以讓人從全局的角度看到,符合某些條件的用戶群體,使用的產(chǎn)品的一些。比如大多數(shù)人,到底是會(huì)在產(chǎn)品中停留多長(zhǎng)時(shí)間,大多數(shù)人,會(huì)在一次使用產(chǎn)品的過(guò)程中,多少個(gè)頁(yè)面。那么對(duì)于使用者來(lái)說(shuō),有一個(gè)全局和清晰的認(rèn)識(shí)。數(shù)據(jù)結(jié)構(gòu)TablestructureforDROPTABLEIFEXISTSCREATETABLE`session_aggr_stat``taskid`varchar(255)DEFAULT`session_count`int(11)DEFAULT`visit_length_1s_3s_ratio`doubleDEFAULT`visit_length_4s_6s_ratio`doubleDEFAULT`visit_length_7s_9s_ratio`doubleDEFAULT`visit_length_10s_30s_ratio`doubleDEFAULT`visit_length_30s_60s_ratio``visit_length_30s_60s_ratio`doubleDEFAULT`visit_length_1m_3m_ratio`doubleDEFAULT`visit_length_3m_10m_ratio`doubleDEFAULT`visit_length_10m_30m_ratio`doubleDEFAULT`visit_length_30m_ratio`doubleDEFAULT`step_length_1_3_ratio`doubleDEFAULT`step_length_4_6_ratio`doubleDEFAULT`step_length_7_9_ratio`doubleDEFAULT`step_length_10_30_ratio`doubleDEFAULT`step_length_30_60_ratio`doubleDEFAULT`step_length_60_ratio`doubleDEFAULTNULL,KEY`idx_task_id`(`taskid`))ENGINE=InnoDBDEFAULT數(shù)據(jù)處理流程需求二:Session要做什么?在符合條件的session中,按照時(shí)間比例隨機(jī)抽取1000這個(gè)按照時(shí)間比例是什么意思呢?隨機(jī)抽取本身是很簡(jiǎn)單的,但是按照時(shí)間比例,就很復(fù)雜了。比如說(shuō),這一天總共有1000萬(wàn)的session。那么我現(xiàn)在總共要從這1000session中,隨機(jī)抽取出來(lái)1000session。但是這個(gè)隨機(jī)不是那么簡(jiǎn)單的。需要做到如下幾點(diǎn)要求:首先,如果這一天的12:00~13:00的session數(shù)量是100萬(wàn),那么這個(gè)小時(shí)的session占比就是1/10,那么這個(gè)小時(shí)中的100萬(wàn)的session,就要抽取1/10*1000=100個(gè)。然后再?gòu)倪@個(gè)小時(shí)100session中,隨機(jī)抽取出100session。以此類推,其他小時(shí)的抽取也是這樣做。這個(gè)功能的作用,是說(shuō),可以讓使用者,能夠?qū)τ诜蠗l件的session,按照時(shí)間比例均勻的隨機(jī)采樣出1000session,然后觀察每個(gè)session具體的點(diǎn)擊流/行為,比如先進(jìn)入了首頁(yè)、然后點(diǎn)擊了食品品類、然后點(diǎn)擊了雨潤(rùn)火腿腸商品、然后搜索了火腿腸罐頭的、接著對(duì)火腿腸下了訂單、最后對(duì)訂單做了支付。之所以要做到按時(shí)間比例隨機(jī)采用抽取,就是要做到,觀察樣本的公平性。抽取完畢之后,需要將Session的相關(guān)信息和詳細(xì)信息保存到MySQL數(shù)據(jù)庫(kù)中。數(shù)據(jù)模型TablestructureforDROPTABLEIFEXISTSCREATETABLE`session_detail``taskid`varchar(255)DEFAULT`userid`int(11)DEFAULT`sessionid`varchar(255)DEFAULT`pageid`int(11)DEFAULT`actionTime`varchar(255)DEFAULT`searchKeyword`varchar(255)DEFAULT`clickCategoryId`int(11)DEFAULT`clickProductId`int(11)DEFAULT`orderCategoryIds`varchar(255)DEFAULT`orderProductIds`varchar(255)DEFAULT`payCategoryIds``payCategoryIds`varchar(255)DEFAULT`payProductIds`varchar(255)DEFAULTNULL,KEY`idx_task_id`(`taskid`),KEY`idx_session_id`)ENGINE=InnoDBDEFAULT--TablestructureforDROPTABLEIFEXISTSCREATETABLE`session_random_extract``taskid`varchar(255)DEFAULT`sessionid`varchar(255)DEFAULT`startTime`varchar(50)DEFAULT`searchKeywords`varchar(255)DEFAULT`clickCategoryIds`varchar(255)DEFAULTNULL,KEY`idx_task_id`(`taskid`))ENGINE=InnoDBDEFAULT數(shù)據(jù)處理流程要做什么?在符合條件的session中,獲取點(diǎn)擊、下單和支付數(shù)量前10的品類什么意思呢,對(duì)于這些session,每個(gè)session可能都會(huì)對(duì)一些品類的商品進(jìn)行點(diǎn)擊、下單和支付等等行為。那么現(xiàn)在就需要獲取這些session點(diǎn)擊、下單和支付數(shù)量前10的最熱門的品類。也就是說(shuō),要計(jì)算出所有這些session對(duì)各個(gè)品類的點(diǎn)擊、下單和支付的次數(shù),然后按照這三個(gè)屬性進(jìn)行排序,獲取前10個(gè)品類。這個(gè)功能,很重要,就可以讓明白,就是符合條件的用戶,他最感興趣的商品是什么種類。這個(gè)可以讓公司里的人,清晰地了解到不同層次、不同類型的用戶的心理和喜好。計(jì)算完成之后,將數(shù)據(jù)保存到MySQL數(shù)據(jù)庫(kù)中。數(shù)據(jù)模型TablestructureforDROPDROPTABLEIFEXISTSCREATETABLE`top10_category``taskid`varchar(255)DEFAULT`categoryid`int(11)DEFAULT`clickCount`int(11)DEFAULT`orderCount`int(11)DEFAULT`payCount`int(11)DEFAULTNULL,KEY`idx_task_id`(`taskid`))ENGINE=InnoDBDEFAULT數(shù)據(jù)處理流程要做什么?對(duì)于前10的品類,分別獲取其點(diǎn)擊次數(shù)前10的這個(gè)就是說(shuō),對(duì)于top10的品類,每一個(gè)都要獲取對(duì)它點(diǎn)擊次數(shù)前的session這個(gè)功能,可以讓看到,對(duì)某個(gè)用戶群體最感的品類,各個(gè)品類最感最典型的用戶的session的行為。計(jì)算完成之后,將數(shù)據(jù)保存到MySQL數(shù)據(jù)庫(kù)中數(shù)據(jù)模型TablestructureforDROPTABLEIFEXISTSCREATETABLE`top10_session``taskid`varchar(255)DEFAULT`categoryid`int(11)DEFAULT`sessionid`varchar(255)DEFAULT`clickCount`int(11)DEFAULTNULL,KEY`idx_task_id`(`taskid`))ENGINE=InnoDBDEFAULT數(shù)據(jù)處理流程第5章頁(yè)面單跳轉(zhuǎn)化率分析計(jì)算頁(yè)面單跳轉(zhuǎn)化率,頁(yè)面單跳轉(zhuǎn)換率,比如一個(gè)用戶在一次Session過(guò)程中的頁(yè)面路徑3,5,7,9,10,21,那么頁(yè)面3調(diào)到頁(yè)面5叫一次單跳,7-9也叫一次單跳,那么單跳轉(zhuǎn)化率就是要統(tǒng)計(jì)頁(yè)面點(diǎn)擊的概率,比如:計(jì)算3-5的單跳轉(zhuǎn)化率,先獲取符合條件的Session對(duì)于頁(yè)面3的次數(shù)(PV)為A,然后獲取符合條件的Session中了頁(yè)面3又緊接著了頁(yè)面5的次數(shù)為B,那么B/A就是3-5的頁(yè)面單跳轉(zhuǎn)化率,記為C;那么頁(yè)面5-7的轉(zhuǎn)化率怎么求呢?先需要求出符合條件的Session中了頁(yè)面3又緊接著了頁(yè)面5又緊接著了頁(yè)面7的次數(shù)為D,那么D/C即為5-7的單跳轉(zhuǎn)化率。產(chǎn)品經(jīng)理,可以根據(jù)這個(gè)指標(biāo),去嘗試分析,整個(gè),產(chǎn)品,各個(gè)頁(yè)面的表現(xiàn)怎么樣,是不是需要去優(yōu)化產(chǎn)品的布局;吸戶最終可以進(jìn)入最后的支付頁(yè)面;數(shù)據(jù)分析師,可以基于咱們的這個(gè)數(shù)據(jù),做更深一步的計(jì)算和分析企業(yè)管理層,可以看到整個(gè)公司的,各個(gè)頁(yè)面的之間的跳轉(zhuǎn)的表現(xiàn)如何?心里有數(shù),可以適當(dāng)調(diào)整公司的經(jīng)營(yíng)或策略在該模塊中,需要根據(jù)查詢對(duì)象中設(shè)置的Session過(guò)濾條件,先將對(duì)應(yīng)得Session過(guò)濾出來(lái),然后根據(jù)查詢對(duì)象中設(shè)置的頁(yè)面路徑,計(jì)算頁(yè)面單跳轉(zhuǎn)化率,比如查詢的頁(yè)面路徑為:3、5、7、8,那么就要計(jì)3-5、5-7、7-8的頁(yè)面單跳轉(zhuǎn)化率。需要注意的一點(diǎn)是,頁(yè)面的時(shí)有先后的。數(shù)據(jù)模型TablestructureforDROPTABLEIFEXISTSCREATECREATETABLE`page_split_convert_rate``taskid`varchar(255)DEFAULT`convertRate`varchar(255)DEFAULT)ENGINE=InnoDBDEFAULT數(shù)據(jù)處理流程第6章各區(qū)域熱門商品統(tǒng)計(jì)分析根據(jù)用戶指定的日期查詢條件范圍,統(tǒng)計(jì)各個(gè)區(qū)域下的最熱門的top3商品,區(qū)域信息、各個(gè)城市的信息在項(xiàng)目中用固定值進(jìn)為不怎么變動(dòng)。技術(shù)方案設(shè)計(jì)1、task獲取日期范圍,通SparkSQL查詢user_visit_action表中的指定過(guò)濾click_product_idisnotnull;click_product_id!='NULL'click_product_id!='null'city_idclick_product_id2、使用SparkSQL從MySQL中查詢出來(lái)城市信息(city_id、city_name、area,用戶行為數(shù)據(jù)要跟城市信息進(jìn)行join,city_id、city_name、area、product_id,轉(zhuǎn)換成DataFrame,成一個(gè)臨時(shí)3、SparkSQL內(nèi)置函數(shù)(casewhenarea打標(biāo)記(華東大區(qū),A級(jí),華中大區(qū),B級(jí),東區(qū),C級(jí),西區(qū),D級(jí)),4、計(jì)算出來(lái)每個(gè)區(qū)域下每個(gè)商品的點(diǎn)擊次數(shù),groupbyarea,product_id;保留每個(gè)區(qū)域的城市名稱列表;自定義UDAFgroup_concat_distinct()函數(shù),聚合出來(lái)一個(gè)city_namesarea、product_id、city_names、click_count5、join商品明細(xì)表,hive(product_id、product_name、extend_info,extend_info是json類型,自定義UDFget_json_object()函數(shù),取出其中的product_status字段,if()函(SparkSQL內(nèi)置函數(shù)判斷0自營(yíng)1第(areaproduct_idcity_names、click_count、product_name、product_status)6、開(kāi)窗函數(shù),根據(jù)area來(lái)聚合,獲取每個(gè)area下,click_count前3的product信息;areaarea_level、product_idcity_namesclick_count、product_name、7、結(jié)果寫(xiě)入MySQL表中數(shù)據(jù)模型TablestructureforDROPTABLEIFEXISTSCREATETABLE`area_top3_product``taskid`varchar(255)DEFAULT`area`varchar(255)DEFAULT`areaLevel`varchar(255)DEFAULT`productid`int(11)DEFAULT`cityInfos`varchar(255)DEFAULT`clickCount`int(11)DEFAULT`productName`varchar(255)DEFAULT`productStatus`varchar(255)DEFAULT)ENGINE=InnoDBDEFAULT數(shù)據(jù)處理流程第7章點(diǎn)擊流量實(shí)時(shí)統(tǒng)計(jì)分/app,通常會(huì)給一些第 的客戶,打一些;也是一些互聯(lián)網(wǎng)公司的 收入來(lái)源;在/app某個(gè)位打出去,在用戶來(lái)使用/app的時(shí)候,會(huì)顯示出來(lái);此時(shí),有些用戶可能就會(huì)去點(diǎn)擊那個(gè)。被點(diǎn)擊以后實(shí)際上就是要針對(duì)這種用戶行(點(diǎn)擊行為實(shí)時(shí)數(shù)據(jù),進(jìn)行實(shí)時(shí)的大數(shù)據(jù)計(jì)算和統(tǒng)計(jì)每次點(diǎn)擊一個(gè)以后,通常來(lái)說(shuō),/app中都會(huì)有埋點(diǎn)(前端的應(yīng)用中,比如JavaScriptAjax;appsocket絡(luò)請(qǐng)求,往發(fā)送一條日志數(shù)據(jù);日志數(shù)據(jù)而言,通常,如果要做實(shí)時(shí)統(tǒng)計(jì)的話,那么就會(huì)通過(guò)某些方式將數(shù)據(jù)寫(xiě)入到分布式消息隊(duì)列中(Kafka日志寫(xiě)入到web服務(wù)器(nginx,nginx產(chǎn)生的實(shí)時(shí)的不斷增加/更新的本地日志文件,就會(huì)被日志客戶端(比如flumeagent,寫(xiě)入到消息隊(duì)列中(kafka要負(fù)責(zé)編寫(xiě)實(shí)時(shí)計(jì)算程序,去從消息隊(duì)列中(kafka)去實(shí)時(shí)地拉取數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)的計(jì)算和統(tǒng)計(jì)。這個(gè)模塊的意義在于,讓產(chǎn)品經(jīng)理、高管可以實(shí)時(shí)地掌握到公司打的各種的投放效果。以便于后期持續(xù)地對(duì)公司的投放相關(guān)的和策略,進(jìn)行調(diào)整和優(yōu)化;以期望獲得最好的收益。需要實(shí)現(xiàn)以下幾個(gè)需求:1、實(shí)現(xiàn)實(shí)時(shí)的動(dòng)態(tài)機(jī)制:將每天對(duì)某個(gè)點(diǎn)擊超過(guò)100次的用戶拉黑2、基于 點(diǎn)擊流量過(guò)濾機(jī)制3、每天各城市各的點(diǎn)擊流量實(shí)時(shí)統(tǒng)4、統(tǒng)計(jì)每天top3熱門5、統(tǒng)計(jì)各最近1小時(shí)內(nèi)的點(diǎn)擊量趨勢(shì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論