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

下載本文檔

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

文檔簡介

1、文檔修訂說明:1.2.3.4.按修改時間先后倒序排列,修改的排在第一行。版本欄中填入版本或者更改。狀態(tài)分為三種狀態(tài):A增加;M修改;D刪除。在簡明欄中填寫變更的內(nèi)容和變更的范圍。 表中所有日期格式為:YYYYMMDD。文件狀態(tài): 草稿正式發(fā)布當(dāng)前版本:V1.1作者:審 核 人:發(fā)布日期:20170518編制日期版本狀態(tài)簡明作者審核者審核日期20170518V1.1A目錄第1 章項目概述11.11.21.3項目簡介項目目標(biāo)業(yè)務(wù)需求簡介11222221.3.11.3.21.3.31.3.4用戶ses頁面單跳轉(zhuǎn)化率統(tǒng)計 熱門商品離線統(tǒng)計 流量實時統(tǒng)計 第2 章項目主體架構(gòu)32.12.22.33 章項

2、目架構(gòu)345離線日志實時流程(參考) 流程(參考) 第模擬業(yè)務(wù)數(shù)據(jù)源53.1離線數(shù)據(jù)5566667773.1.13.1.2數(shù)據(jù)模型 數(shù)據(jù)說明 3.2實時數(shù)據(jù)3.2.13.2.2數(shù)據(jù)模型 數(shù)據(jù)說明 3.3查詢條件3.3.13.3.2用戶數(shù)據(jù)模型數(shù)據(jù)說明Ses第4 章分析84.14.2模塊概述8889需求一:Ses聚合統(tǒng)計 4.2.14.2.24.2.3要做什么? 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)處理流程 10111111124.3需求二:Ses隨機抽取 4.3.14.3.24.3.3要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程 4.4需求三:Top10 熱門品類 13131315151516164.4.14.4.24.4.

3、3要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程 4.5需求四:Top10 活躍 Ses4.5.14.5.24.5.3要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程 第5 章頁面單跳轉(zhuǎn)化率分析17 5.15.2模塊概述需求一:頁面單跳轉(zhuǎn)化率171717185.2.15.2.2數(shù)據(jù)模型 數(shù)據(jù)處理流程 第6 章各區(qū)域熱門商品統(tǒng)計分析18 6.16.2模塊概述需求一:各區(qū)域 Top3 商品統(tǒng)計181919206.2.16.2.2數(shù)據(jù)模型 數(shù)據(jù)處理流程 第7 章點擊流量實時統(tǒng)計分析20 7.17.2模塊概述202222222323232324242424252525需求一:統(tǒng)計用戶7.2.17.2.27.2.3要做什么? 數(shù)

4、據(jù)模型 數(shù)據(jù)處理流程 7.3需求二:點擊實時統(tǒng)計7.3.17.3.27.3.3要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程 7.4需求三:實時統(tǒng)計最熱7.4.17.4.27.4.3要做什么? 數(shù)據(jù)模型 數(shù)據(jù)處理流程 7.5需求四:最近一小時點擊趨勢統(tǒng)計7.5.1要做什么? 7.5.27.5.3數(shù)據(jù)模型25數(shù)據(jù)處理流程26第 8 章大數(shù)據(jù)部署建設(shè)(選做)26 8.18.2通過 azkaban 將業(yè)務(wù)進(jìn)行部署26通過 Zeppelin 將中的數(shù)據(jù)進(jìn)行圖表輸出26第1章 項目概述1.1 項目簡介本項目主要講解一個大型的企業(yè)級大數(shù)據(jù)統(tǒng)計分析,該以 Spark 為主,對該大數(shù)據(jù)分析的流量進(jìn)行離線和實時的分析。對的

5、各種用戶行為(行為、購物行為、廣告點擊行為等)進(jìn)行復(fù)雜的分析。用統(tǒng)計分析出來的數(shù)據(jù), 輔助公司中的 PM( 產(chǎn)品經(jīng)理)、數(shù)據(jù)分析師以及管理分析現(xiàn)有產(chǎn)品的情況, 并根據(jù)用戶行為分析結(jié)果持續(xù)改進(jìn)產(chǎn)品的設(shè)計,以及調(diào)整公司的和業(yè)務(wù)。最終達(dá)到用大數(shù)據(jù)技術(shù)來幫助公司的業(yè)績、營業(yè)額以及市場占有率的目標(biāo)。項目主要使用了Spark 技術(shù)生態(tài)棧中最常用的三個技術(shù)框架,Spark Core、Spark SQL 和 Spark Streaming,進(jìn)行離線計算和實時計算業(yè)務(wù)模塊的開發(fā)。實ses現(xiàn)了包括用戶分析、頁面單跳轉(zhuǎn)化率統(tǒng)計、熱門商品離線統(tǒng)計、廣告流量實時統(tǒng)計 4 個業(yè)務(wù)模塊。項目中所有的業(yè)務(wù)功能模塊都是直接從實

6、際企業(yè)項目中抽取出來的,業(yè)務(wù)復(fù)雜度沒有任何縮水,通過合理的將實際業(yè)務(wù)模塊進(jìn)行技術(shù)整合與改造,該項目幾乎完全涵蓋了 Spark Core、Spark SQL 和 Spark Streaming 這三個技術(shù)框架中大部分的功能點、知識點。1.2 項目目標(biāo)1、掌握系統(tǒng)中 Spark 的主要使用場景以及建設(shè)流程。2、掌握企業(yè)級的 Spark 項目的復(fù)雜性能調(diào)優(yōu)、線上故障解決經(jīng)驗、數(shù)據(jù)傾斜處理方案。3、通過項目實戰(zhàn),完全將 Spark 所有和知識點都應(yīng)用在項目中,掌握如何靈活應(yīng)用 Spark 各項技術(shù)來實現(xiàn)各種復(fù)雜業(yè)務(wù)需求。1.3業(yè)務(wù)需求簡介1.3.1用戶sesses進(jìn)行統(tǒng)計分析,包括 ses、獲取每天點

7、擊、下單和該模塊主要是對用戶的聚合指標(biāo)計算、按時間比例隨機抽取 ses品類、并獲取 top10 品類的點擊量前 10 的前 10 的 ses。該模塊可以讓產(chǎn)品經(jīng)理、數(shù)據(jù)分析師以及企業(yè)管理層形象地看到各種條件下的具體用戶行為以及統(tǒng)做出調(diào)整。主要使用 Spark計指標(biāo),從而對公司的產(chǎn)品設(shè)計以及業(yè)務(wù)發(fā)展Core 實現(xiàn)。1.3.2頁面單跳轉(zhuǎn)化率統(tǒng)計該模塊主要是計算關(guān)鍵頁面之間的單步跳轉(zhuǎn)轉(zhuǎn)化率,涉及到頁面切片算法以及頁面流匹配算法。該模塊可以讓產(chǎn)品經(jīng)理、數(shù)據(jù)分析師以及企業(yè)管理層看到各個關(guān)鍵頁面之間的轉(zhuǎn)化率,從而對網(wǎng)頁布局,進(jìn)行更好的優(yōu)化設(shè)計。主要使用 Spark Core 實現(xiàn)。1.3.3熱門商品離線統(tǒng)

8、計該模塊主要實現(xiàn)每天統(tǒng)計出各個區(qū)域的 top3 熱門商品。該模塊可以讓企業(yè)管理層看到公司售賣的商品的整體情況,從而對公司的商品相關(guān)的進(jìn)行調(diào)整。主要使用 Spark SQL 實現(xiàn)。1.3.4流量實時統(tǒng)計該模塊負(fù)責(zé)實時統(tǒng)計公司的流量,包括展現(xiàn)流量和點擊流量。實現(xiàn)動態(tài)機制,以及過濾;實現(xiàn)滑動窗口內(nèi)的各城市的展現(xiàn)流量和點擊流量的統(tǒng)計;實現(xiàn)每個區(qū)域每個的點擊流量實時統(tǒng)計;實現(xiàn)每個區(qū)域 top3 點擊量的的統(tǒng)計。主要使用 Spark Streaming 實現(xiàn)。第2章 項目主體架構(gòu)2.1項目架構(gòu)用戶行為數(shù)據(jù)在產(chǎn)生大量的原始日志上最簡單的存在形式就是日志。在運行過程中會RAW LOG,將其在文件系統(tǒng)中,企業(yè)會

9、將多種原始LOG,每一個會話日志表示用戶日志按照用戶行為匯總成會話日志 SES的一種反饋。2.2 離線日志流程(參考)2.3實時流程(參考)第3章 模擬業(yè)務(wù)數(shù)據(jù)源3.1 離線數(shù)據(jù)3.1.1數(shù)據(jù)模型3.1.2數(shù)據(jù)說明3.2 實時數(shù)據(jù)3.2.1數(shù)據(jù)模型程序每 秒向 .DIND 集群寫入數(shù)據(jù),格式如下:3.2.2數(shù)據(jù)說明* 某個時間點 某個省份 某個城市 某個用戶 某個*/省份的 , 和城市的 , 相同* 格式 :timestprovince city userid adid/* 模擬的數(shù)據(jù)* 時間點: 當(dāng)前時間毫秒* userId: 0 - 99* 省份、城市 ID 相同 : 1 - 9* adi

10、d: 0 - 19* (0L,),(1L,),(2L,江蘇省),(3L,廣州,省),(4L,三亞,海南省),(5L,省),(6L,長沙,湖南省),(7L,西安,陜西省),(8L,省),(9L,哈爾濱,東北省)格式 :timestprovince city userid adid生成的數(shù)據(jù)利用 Spark SQL 保存在 Hive 表中。/* 模擬的數(shù)據(jù)* date:是當(dāng)前日期* age: 0 - 59* profesals: profesal0 - 59* cities: 0 - 9* sex: 0 - 1* keywords: (火鍋, 蛋糕, 重慶辣子雞, 重慶小面, 呷哺呷哺, 新辣道魚

11、火鍋, 國貿(mào), 太古商場, 料理, 溫泉)* categoryIds: 0 - 99* ProductId: 0 - 99*/3.3 查詢條件3.3.1數(shù)據(jù)模型數(shù)據(jù)庫,采用了配置文件,在 Commons 項目中。格查詢對象沒有使用式如下:3.3.2數(shù)據(jù)說明# 可以使用的屬性如下:#startDate: 格式: yyyy-MM-DD必選#endDate:格式: yyyy-MM-DD必選#startAge:范圍: 0 - 59#endAge:范圍: 0 - 59#profesals: 范圍:profesals0 - 59#cities:0 - 9 (0,華北),(1,華東),(2,華東),(3,廣

12、州,華南),(4,三亞,華南),(5,華中),(6,長沙,華中),(7,西安,西北),(8,西南),(9,哈爾濱,東北)#sex:范圍: 0 - 1#keywords:范圍: (火鍋, 蛋糕, 重慶辣子雞, 重慶小面, 呷哺呷哺, 新辣道魚火鍋, 國貿(mào), 太古商場, 料理, 溫泉) #categoryIds:0 - 99,以逗號分隔#PageFlow: 0 - 99, 以逗號分隔task.params.json=startDate:2017-10-20, endDate:2017-10-31, startAge: 20, endAge: 50, profesals: , cities: , s

13、ex:, keywords:, categoryIds:, PageFlow:1,2,3,4,5,6,7第4章 用戶Ses分析4.1 模塊概述用戶在上,通常會有很多的點擊行為,首先通常都是進(jìn)入首頁;然后可能點擊首頁上的一些商品;點擊首頁上的一些品類;也可能隨時在搜索框里面搜索;還可能將一些商品加入購物車;對購物車中的多個商品下訂單;最后對訂單中的多個商品進(jìn)行支付。用戶的每一次操作,其實可以理解為一個 action,比如點擊、搜索、下單、支付,用戶 ses,指的就是,從用戶第一次進(jìn)入首頁,ses就開始了。然后在一定時間范圍內(nèi),直到最后操作完(可能做了幾十次、甚至上百次操作)。離開,關(guān)閉瀏覽器,或

14、者長時間沒有作;那么 ses就結(jié)束了。以上用戶在內(nèi)的過程,就稱之為一次 ses。簡單理解,ses就是某一天某一個時間段內(nèi),某個用戶對到最后關(guān)閉瀏覽器。的過程。就叫做 ses從打開/進(jìn)入,到做了大量操作,。ses實際上就是一個中最基本的數(shù)據(jù)和大數(shù)據(jù)。那么大數(shù)據(jù),面向消費者, 那么對于最基本的分析莫過于是面向用戶行為/用戶ses的分析。1、可以根據(jù)使用者指定的某些條件,篩選出指定的一些用戶(有特定職業(yè)、城市);、2、對這些用戶在指定日期范圍內(nèi)發(fā)起的 ses,進(jìn)行聚合統(tǒng)計,比如,統(tǒng)計出時長在 03s 的 ses占總 ses數(shù)量的比例;3、按時間比例,比如一天有 24 個小時,其中 12:0013:0

15、0 的 ses數(shù)量占當(dāng)天總 ses數(shù)量的 50%,當(dāng)天總 ses數(shù)量是 10000 個,那么當(dāng)天總共要抽取 1000 個 ses,ok,12:0013:00 的用戶,就得抽取 1000*50%=500。而且這 500 個需要隨機抽取。4、獲取點擊量、下單量和支付量都5、獲取 top10 的商品種類的點擊數(shù)量10 的商品種類前 10 的 ses4.2 需求一:Ses聚合統(tǒng)計4.2.1要做什么?統(tǒng)計出符合條件的 ses時長在 1s3s、4s6s、7s9s、10s30s、中30s60s、1m3m、3m10m、10m30m、30m 以上各個范圍內(nèi)的 ses占比;步長在 13、46、79、1030、30

16、60、60 以上各個范圍內(nèi)的 ses占比,并將結(jié)果保存到數(shù)據(jù)庫中。注意在計算之前需要根據(jù)查詢條件篩選 ses的用戶、,查詢條件比如搜索過某些的用戶、時間在某個時間段內(nèi)在某個范圍內(nèi)的用戶、職業(yè)在某個范圍內(nèi)的用戶、所在某個城市的用戶,發(fā)起的 ses。找到對應(yīng)的這些用戶的 ses,并進(jìn)行統(tǒng)計,之所以需要有篩選主要是可以讓使用者,對感的和關(guān)系的用戶群體,進(jìn)行后續(xù)各種復(fù)雜業(yè)務(wù)邏輯的統(tǒng)計和分析,那么拿到的結(jié)果數(shù)據(jù),就是只是針對特殊用戶群體的分析結(jié)果;而不是對所有用戶進(jìn)行分析的泛泛的分析結(jié)果。比如說,現(xiàn),就是想看到用戶群體中,2835 歲的,老師職業(yè)的群體,對在某個企業(yè)應(yīng)的一些統(tǒng)計和分析的結(jié)果數(shù)據(jù), 從而輔

17、助高管進(jìn)行上的。ses時長,也就是說一個 sesaction,到結(jié)束的對應(yīng)的開始的action,之間的時間范圍;還有,就是步長,指的是,一個 ses執(zhí)行期間內(nèi),依次點擊過多少個頁面,比如說,一次 ses,維持了 1 分鐘,那么訪問時長就是 1m,然后在這 1 分鐘內(nèi),點擊了 10 個頁面,那么 ses步長,就是 10.的比如說,符合第一步篩選出來的 ses的數(shù)量大概是有 1000 萬個。那么要計算出,時長在 1s3s 內(nèi)的 ses里面,的總 ses的數(shù)量,并除以符合條件數(shù)量(比如 1000 萬),比如是 100 萬/1000 萬,那么 1s3s 內(nèi)的ses占比就是 10%。依次類推,這里說的統(tǒng)

18、計,就是這個意思。這個功能的作用,其實就是,可以讓人從全局的角度看到,符合某些條件的用戶群體,使用的產(chǎn)品的一些。比如大多數(shù)人,到底是會在產(chǎn)品中停留多長時間,大多數(shù)人,會在一次使用產(chǎn)品的過程中,么對于使用者來說,有一個全局和清晰的認(rèn)識。多少個頁面。那4.2.2數(shù)據(jù)結(jié)構(gòu)- Table structure for ses_aggr_sDROP TABLE IF EXISTS ses_aggr_s;CREATE TABLE ses_aggr_s (taskid varchar(255) DEFAULT NULL,ses_count(11) DEFAULT NULL,visit_length_1s_3s

19、_ratio double DEFAULT NULL,visit_length_4s_6s_ratio double DEFAULT NULL,visit_length_7s_9s_ratio double DEFAULT NULL,visit_length_10s_30s_ratio double DEFAULT NULL,4.2.3數(shù)據(jù)處理流程visit_length_30s_60s_ratio double DEFAULT NULL,visit_length_1m_3m_ratio double DEFAULT NULL,visit_length_3m_10m_ratio double

20、DEFAULT NULL,visit_length_10m_30m_ratio double DEFAULT NULL,visit_length_30m_ratio double DEFAULT NULL,step_length_1_3_ratio double DEFAULT NULL,step_length_4_6_ratio double DEFAULT NULL,step_length_7_9_ratio double DEFAULT NULL,step_length_10_30_ratio double DEFAULT NULL,step_length_30_60_ratio dou

21、ble DEFAULT NULL,step_length_60_ratio double DEFAULT NULL,KEY idx_task_id (taskid) ENGINE=InnoDB DEFAULT CHARSET=utf8;4.3 需求二:Ses隨機抽取4.3.1要做什么?在符合條件的 ses中,按照時間比例隨機抽取 1000 個 ses這個按照時間比例是什么意思呢?隨機抽取本身是很簡單的,但是按照時間比例,就很復(fù)雜了。比如說,這一天總共有 1000 萬的 ses。那么我現(xiàn)在總共要從這 1000 萬 ses中,隨機抽取出來 1000 個 ses。但是這個隨機不是那么簡單的。需要做到

22、如下幾點要求:首先,如果這一天的 12:0013:00 的ses數(shù)量是 100 萬,那么這個小時的 ses占比就是 1/10,那么這個小時中的 100 萬的 ses的 100 萬 ses也是這樣做。,就要抽取 1/10 * 1000 = 100 個。然后再從這個小時中,隨機抽取出 100 個 ses。以此類推,其他小時的抽取這個功能的作用,是說,可以讓使用者,能夠?qū)τ诜蠗l件的 ses,按照時間比例均勻的隨機采樣出 1000 個 ses,然后觀察每個 ses具體的點擊流/行為,比如先進(jìn)入了首頁、然后點擊了食品品類、然后點擊了雨潤火腿腸商品、然后搜索了火腿腸罐頭的對訂單做了支付。、接著對火腿腸下

23、了訂單、最后之所以要做到按時間比例隨機采用抽取,就是要做到,觀察樣本的公平性。抽取完畢之后,需要將 Ses庫中。的相關(guān)信息和詳細(xì)信息保存到數(shù)據(jù)4.3.2數(shù)據(jù)模型- Table structure for ses_detailDROP TABLE IF EXISTS ses_detail;CREATE TABLE ses_detail (taskid varchar(255) DEFAULT NULL,userid(11) DEFAULT NULL,sesid varchar(255) DEFAULT NULL,pageid(11) DEFAULT NULL,actionTime varchar

24、(255) DEFAULT NULL,searchKeyword varchar(255) DEFAULT NULL,clickCategoryId(11) DEFAULT NULL,clickProductId(11) DEFAULT NULL,orderCategoryIds varchar(255) DEFAULT NULL,ordroductIds varchar(255) DEFAULT NULL,4.3.3數(shù)據(jù)處理流程payCategoryIds varchar(255) DEFAULT NULL,payProductIds varchar(255) DEFAULT NULL,KE

25、Y idx_task_id (taskid),KEY idx_ses_id (sesid) ENGINE=InnoDB DEFAULT CHARSET=utf8;- Table structure for ses_random_extractDROP TABLE IF EXISTS ses_random_extract;CREATE TABLE ses_random_extract (taskid varchar(255) DEFAULT NULL,sesid varchar(255) DEFAULT NULL,startTime varchar(50) DEFAULT NULL,search

26、Keywords varchar(255) DEFAULT NULL,clickCategoryIds varchar(255) DEFAULT NULL,KEY idx_task_id (taskid) ENGINE=InnoDB DEFAULT CHARSET=utf8;4.4 需求三:Top10 熱門品類4.4.1要做什么?在符合條件的 ses前 10 的品類中,獲取點擊、下單和支付數(shù)量什么意思呢,對于這些 ses,每個 ses可能都會對一些品類的商品進(jìn)行點擊、下單和支付等等行為。那么現(xiàn)在就需要獲取這些 ses點擊、下單和前 10 的最熱門的品類。也就是說,要計算出所有這些 ses支付數(shù)

27、量對各個品類的點擊、下單和支付的次數(shù),然后按照這三個屬性進(jìn)行排序,獲取前10 個品類。這個功能,很重要,就可以讓明白,就是符合條件的用戶,他最感興趣的商品是什么種類。這個可以讓公司里的人,清晰地了解到不同層次、不同類型的用戶的心理和喜好。計算完成之后,將數(shù)據(jù)保存到數(shù)據(jù)庫中。4.4.2數(shù)據(jù)模型- Table structure for top10_categoryDROP TABLE IF EXISTS top10_category;CREATE TABLE top10_category (taskid varchar(255) DEFAULT NULL,categoryid(11) DEFAU

28、LT NULL,clickCount(11) DEFAULT NULL,orderCount(11) DEFAULT NULL,payCount(11) DEFAULT NULL,KEY idx_task_id (taskid) ENGINE=InnoDB DEFAULT CHARSET=utf8;4.4.3數(shù)據(jù)處理流程4.5 需求四:Top10 活躍 Ses4.5.1 要做什么?對于前 10 的品類,分別獲取其點擊次數(shù)前 10 的 ses這個就是說,對于 top10 的品類,每一個都要獲取對它點擊次數(shù)前 10的 ses。這個功能,可以讓看到,對某個用戶群體最感的品類,各個品類最感最典型的用戶

29、的 ses的行為。計算完成之后,將數(shù)據(jù)保存到數(shù)據(jù)庫中。4.5.2數(shù)據(jù)模型4.5.3數(shù)據(jù)處理流程- Table structure for top10_sesDROP TABLE IF EXISTS top10_ses;CREATE TABLE top10_ses (taskid varchar(255) DEFAULT NULL,categoryid(11) DEFAULT NULL,sesid varchar(255) DEFAULT NULL,clickCount(11) DEFAULT NULL,KEY idx_task_id (taskid) ENGINE=InnoDB DEFAULT

30、 CHARSET=utf8;第5章 頁面單跳轉(zhuǎn)化率分析5.1 模塊概述計算頁面單跳轉(zhuǎn)化率, 頁面單跳轉(zhuǎn)換率,比如一個用戶在一次Ses過程中的頁面路徑 3,5,7,9,10,21,那么頁面 3 調(diào)到頁面 5 叫一次單跳,7-9 也叫一次單跳,那么單跳轉(zhuǎn)化率就是要統(tǒng)計頁面點擊的概率,比如:計算 3-5 的單跳轉(zhuǎn)化率,先獲取符合條件的 Ses對于頁面 3 的了頁面 3 又緊接著次數(shù)了頁(PV)為 A,然后獲取符合條件的 Ses中面 5 的次數(shù)為 B,那么 B/A 就是 3-5 的頁面單跳轉(zhuǎn)化率,面 5-7 的轉(zhuǎn)化率怎么求呢?先需要求出符合條件的 Ses記為 C;那么頁了頁面 3 又中緊接著了頁面 5

31、 又緊接著了頁面 7 的次數(shù)為 D,那么 D/C 即為 5-7 的單跳轉(zhuǎn)化率。產(chǎn)品經(jīng)理,可以根據(jù)這個指標(biāo),去嘗試分析,整個,產(chǎn)品,各個頁面的表現(xiàn)怎么樣,是不是需要去優(yōu)化產(chǎn)品的布局;吸付頁面;戶最終可以進(jìn)入最后的支數(shù)據(jù)分析師,可以基于咱們的這個數(shù)據(jù),做更深一步的計算和分析企業(yè)管理層,可以看到整個公司的何?心里有數(shù),可以適當(dāng)調(diào)整公司的經(jīng)營,各個頁面的之間的跳轉(zhuǎn)的表現(xiàn)如或策略在該模塊中,需要根據(jù)查詢對象中設(shè)置的 Ses過濾條件,先將對應(yīng)得Ses過濾出來, 然后根據(jù)查詢對象中設(shè)置的頁面路徑, 計算頁面單跳轉(zhuǎn)化率,比如查詢的頁面路徑為:3、5、7、8,那么就要計算 3-5、5-7、7-8 的頁面單跳轉(zhuǎn)化

32、率。需要注意的一點是, 頁面的時有先后的。5.2 需求一:頁面單跳轉(zhuǎn)化率5.2.1數(shù)據(jù)模型- Table structure for page_split_convert_rateDROP TABLE IF EXISTS page_split_convert_rate;5.2.2數(shù)據(jù)處理流程第6章 各區(qū)域熱門商品統(tǒng)計分析6.1 模塊概述根據(jù)用戶指定的日期查詢條件范圍,統(tǒng)計各個區(qū)域下的最熱門的 top3 商品,區(qū)域信息、各個城市的信息在項目中用固定值進(jìn)行配置, 因為不怎么變動。技術(shù)方案設(shè)計:1、查詢 task, 獲取日期范圍,通過 Spark SQL, 查詢 user_visit_action

33、表中的指定日期范 圍 內(nèi)的數(shù)據(jù), 過濾 出,商品點 擊 行 為 , click_product_id is not null ;click_product_id != NULL; click_product_id != null; city_id, click_product_id2、使用 Spark SQL 從中查詢出來城市信息( city_id、city_name、area),用CREATE TABLE page_split_convert_rate (taskid varchar(255) DEFAULT NULL,convertRate varchar(255) DEFAULT NUL

34、L) ENGINE=InnoDB DEFAULT CHARSET=utf8;戶行為數(shù)據(jù)要跟城市信息進(jìn)行 join, city_id、city_name、area、product_id, RDD,轉(zhuǎn)換成 DataFrame,成一個臨時表3、Spark SQL 內(nèi)置函數(shù)( case when),對 area 打標(biāo)記( 華東大區(qū),A 級,華中大區(qū),B 級, 東區(qū), C 級, 西區(qū), D 級), area_level4、計算出來每個區(qū)域下每個商品的點擊次數(shù),group by area, product_id;保留每個區(qū)域的城市名稱列表; 自定義 UDAF , group_concat_distinct

35、() 函數(shù), 聚合出來一個city_names 字段, area、product_id、city_names、click_count5、join 商品明細(xì)表,hive( product_id、product_name、extend_info),extend_info是 json 類型,自定義 UDF,get_json_object()函數(shù),取出其中的 product_sus 字段,if()函數(shù)( Spark SQL 內(nèi)置函數(shù)),判斷,0 自營,1 第;( area、product_id、city_names、click_count、product_name、product_sus)6、開窗函數(shù)

36、,根據(jù) area 來聚合,獲取每個 area 下,click_count前 3 的 product信息; area 、 area_level 、 product_id 、 city_names 、 click_count 、 product_name 、product_sus7、結(jié)果寫入表中6.2 需求一:各區(qū)域 Top3 商品統(tǒng)計6.2.1數(shù)據(jù)模型- Table structure for area_top3_productDROP TABLE IF EXISTS area_top3_product;CREATE TABLE area_top3_product (taskid varchar

37、(255) DEFAULT NULL,area varchar(255) DEFAULT NULL,areaLevel varchar(255) DEFAULT NULL,productid(11) DEFAULT NULL,cityInfos varchar(255) DEFAULT NULL,clickCount(11) DEFAULT NULL,productName varchar(255) DEFAULT NULL,productSus varchar(255) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;6.2.2數(shù)據(jù)處理流程第

38、7章點擊流量實時統(tǒng)計分析7.1 模塊概述/app, 通常會給一些第的客戶,打一些;也是一些互聯(lián)網(wǎng)公位打出去, 在用戶來使用司的收入來源;在/app 某個/app 的時候,會顯示出來;此時,有些用戶可能就會去點擊那個。被點擊以后,實際上就是要針對這種用戶行為(點擊行為),實時數(shù)據(jù),進(jìn)行實時的大數(shù)據(jù)計算和統(tǒng)計。每次點擊一個以后,通常來說,/app 中都會有埋點(前端的應(yīng)用中,比如 JavaScript Ajax;app 中的 socket 網(wǎng)絡(luò)請求,往發(fā)送一條日志數(shù)據(jù));日志數(shù)據(jù)而言,通常,如果要做實時統(tǒng)計的話,那么就會通過某些方式將數(shù)據(jù)寫入到分布式消息隊列中(Kafka);web 服務(wù)器(ngi

39、nx),nginx 產(chǎn)生的實時的不斷增加 / 更日志寫入到客戶端(比如 flume agent),寫入到消息新的本地日志文件,就會被日志隊列中(kafka),要負(fù)責(zé)編寫實時計算程序,去從消息隊列中(kafka)去實時地拉取數(shù)據(jù),然后對數(shù)據(jù)進(jìn)行實時的計算和統(tǒng)計。這個模塊的意義在于, 讓產(chǎn)品經(jīng)理、高管可以實時地掌握到公司打的各種的投放效果。以便于后期持續(xù)地對公司的和策略,進(jìn)投放相關(guān)的行調(diào)整和優(yōu)化;以期望獲得最好的需要實現(xiàn)以下幾個需求:收益。1、實現(xiàn)實時的動態(tài)拉黑機制:將每天對某個點擊超過 100 次的用戶點擊流量過濾機制的點擊流量實時統(tǒng)計2、基于3、每天4、統(tǒng)計每天5、統(tǒng)計各點擊量的各城市各top

40、3 熱門最近 1 小時內(nèi)的點擊量趨勢:各最近 1 小時內(nèi)各分鐘的6、使用高性能方式將實時統(tǒng)計結(jié)果寫入流式數(shù)據(jù)的格式為:timesttimest1450702800province Jiangsuprovince cityuserid adidcity useridadidNanjing1000011000017.2 需求一:統(tǒng)計用戶7.2.1要做什么?實現(xiàn)實時的動態(tài)機制:將每天對某個點擊超過 100 次的用戶拉黑7.2.2數(shù)據(jù)模型- Table structure for ad_user_click_countDROP TABLE IF EXISTS ad_user_click_count;CREATE TABLE ad_user_click_count (date varchar(30) D

溫馨提示

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

評論

0/150

提交評論