電商用戶行爲分析大數據平臺相關係列9-用戶訪問session的模塊介紹

1、Session介紹

用戶在電商網站上,通常會有很多的點擊行爲,首頁通常都是進入首頁;然後可能點擊首頁上的一些商品;點擊首頁上的一些品類;也可能隨時在搜索框裏面搜索關鍵詞;還可能將一些商品加入購物車;對購物車中的多個商品下訂單;最後對訂單中的多個商品進行支付。

用戶的每一次操作,其實可以理解爲一個action,比如點擊、搜索、下單、支付

用戶session,指的就是從用戶第一次進入首頁session就開始了。然後在一定時間範圍內,直到最後操作完(可能做了幾十次、甚至上百次操作)離開網站或者關閉瀏覽器,或者長時間沒有做操作,那麼session就結束了。

以上用戶在網站內的訪問過程,就稱之爲一次session。簡單理解,session就是某一天某一個時間段內,某個用戶對網站從打開/進入,到做了大量操作,到最後關閉瀏覽器的過程就叫做session。

2、項目目標(2.6-2.9應該是純粹講師個人工作經驗分享)

2.1、根據使用者提供某些條件,篩選出指定的一些用戶

搜索過某些關鍵詞的用戶、訪問時間在某個時間段內的用戶、年齡在某個範圍內的用戶、職業在某個範圍內的用戶、所在某個城市的用戶,發起的session。找到對應的這些用戶的session,也就是我們所說的第一步,按條件篩選session。

這個功能,就最大的作用就是靈活。也就是說,可以讓使用者,對感興趣的和關係的用戶羣體,進行後續各種複雜業務邏輯的統計和分析,那麼拿到的結果數據,就是隻是針對特殊用戶羣體的分析結果;而不是對所有用戶進行分析的泛泛的分析結果。比如說,現在某個企業高層,就是想看到用戶羣體中,28~35歲的,老師職業的羣體,對應的一些統計和分析的結果數據,從而輔助高管進行公司戰略上的決策制定。

2.2、對2.1篩選的用戶進行聚合統計,統計出訪問時長、步長所佔比例

訪問時長在1s~3s、4s~6s、7s~9s、10s~30s、30s~60s、1m~3m、3m~10m、10m~30m、30m以上各個範圍內的session佔比;訪問步長在1~3、4~6、7~9、10~30、30~60、60以上各個範圍內的session佔比

session訪問時長,也就是說一個session對應的開始的action,到結束的action,之間的時間範圍;還有,就是訪問步長,指的是,一個session執行期間內,依次點擊過多少個頁面,比如說,一次session,維持了1分鐘,那麼訪問時長就是1m,然後在這1分鐘內,點擊了10個頁面,那麼session的訪問步長,就是10.

這個功能的作用,其實就是,可以讓人從全局的角度看到,符合某些條件的用戶羣體,使用我們的產品的一些習慣。比如大多數人,到底是會在產品中停留多長時間,大多數人,會在一次使用產品的過程中,訪問多少個頁面。那麼對於使用者來說,有一個全局和清晰的認識。

2.3、按時間比例,隨機抽取1000個session

這個按照時間比例是什麼意思呢?隨機抽取本身是很簡單的,但是按照時間比例,就很複雜了。比如說,這一天總共有1000萬的session。那麼我現在總共要從這1000萬session中,隨機抽取出來1000個session。但是這個隨機不是那麼簡單的。需要做到如下幾點要求:首先,如果這一天的12:00~13:00的session數量是100萬,那麼這個小時的session佔比就是1/10,那麼這個小時中的100萬的session,我們就要抽取1/10 * 1000 = 100個。然後再從這個小時的100萬session中,隨機抽取出100個session。以此類推,其他小時的抽取也是這樣做。

這個功能的作用,是說,可以讓使用者,能夠對於符合條件的session,按照時間比例均勻的隨機採樣出1000個session,然後觀察每個session具體的點擊流/行爲,比如先進入了首頁、然後點擊了食品品類、然後點擊了雨潤火腿腸商品、然後搜索了火腿腸罐頭的關鍵詞、接着對王中王火腿腸下了訂單、最後對訂單做了支付。

2.4、獲取點擊量、下單量和支付量都在前10的商品種類

對於這些session,每個session可能都會對一些品類的商品進行點擊、下單和支付等等行爲。那麼現在就需要獲取這些session點擊、下單和支付數量排名前10的最熱門的品類。也就是說,要計算出所有這些session對各個品類的點擊、下單和支付的次數,然後按照這三個屬性進行排序,獲取前10個品類。

這個功能,很重要,就可以讓我們明白,就是符合條件的用戶,他最感興趣的商品是什麼種類。這個可以讓公司裏的人,清晰地瞭解到不同層次、不同類型的用戶的心理和喜好。

2.5、獲取top10的商品種類點擊量排名前10的session

這個就是說,對於top10的品類,每一個都要獲取對它點擊次數排名前10的session。

這個功能,可以讓我們看到,對某個用戶羣體最感興趣的品類,各個品類最感興趣最典型的用戶的session的行爲。

2.6、針對以上所有分析功能調優

2.7、十億級數據量的故障解決經驗分享

2.8、數據傾斜的解決方案

2.9、使用mock的數據,對模塊進行調試。

3、session分析工作流程

graph LR
網站/APP-->服務器
服務器-->spark-submit
spark-submit-->spark集羣
spark集羣-->Mysql
Mysql-->網站/APP

分析平臺大致工作流程如上圖:
1. 首先用戶有網站或者APP發起分析請求,提交各種分析任務。在我們現階段就是發起session分析的各種任務。
2. 用戶發起請求提交到服務器,服務器會調用底層的shell腳本,調用spark-submit將我們編寫的spark分析程序提交到spark集羣中。
3. Spark集羣執行分析任務(其實這一步還是與mysql有交互,需要查詢MySQL中保存的篩選參數,這部分途中沒有表現)
4. Spark分析結束後,將分析結果保存到Mysql表中,以供前臺應用使用。
5. 前臺應用查詢對應Mysql數據,生成表格、圖表等。

電商用戶行爲分析大數據平臺系列已發佈筆記列表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章