GitHub
https://github.com/SmallScorpion/UserBehaviorAnalysis.git
批處理
批處理主要操作大容量靜態數據集,並在計算過程完成後返回結果。可以認爲,處理的是用一個固定時間間隔分組的數據點集合。批處理模式中使用的數據集通常符合下列特徵:
有界:批處理數據集代表數據的有限集合
持久:數據通常始終存儲在某種類型的持久存儲位置中
大量:批處理操作通常是處理極爲海量數據集的唯一方法
流處理
流處理可以對隨時進入系統的數據進行計算。流處理方式無需針對整個數據集執行操作,而是對通過系統傳輸的每個數據項執行操作。流處理中的數據集是“無邊界”的,這就產生了幾個重要的影響:
- 可以處理幾乎無限量的數據,但同一時間只能處理一條數據,不同記錄間只維持最少量的狀 態
- 處理工作是基於事件的,除非明確停止否則沒有“盡頭”
- 處理結果立刻可用,並會隨着新數據的抵達繼續更新。
電商用戶行爲
電商平臺中的用戶行爲頻繁且較複雜,系統上線運行一段時間後,可以收集到大量的用戶行爲數據,進而利用大數據技術進行深入挖掘和分析,得到感興趣的商業指標並增強對風險的控制。
電商用戶行爲數據多樣,整體可以分爲用戶行爲習慣數據和業務行爲數據兩大類。用戶的行爲習慣數據包括了用戶的登錄方式、上線的時間點及時長、點擊和瀏覽頁面、頁面停留時間以及頁面跳轉等等,我們可以從中進行流量統計和熱門商品的統計,也可以深入挖掘用戶的特徵;這些數據往往可以從web服務器日誌中直接讀取到。而業務行爲數據就是用戶在電商平臺中針對每個業務(通常是某個具體商品)所作的操作,我們一般會在業務系統中相應的位置埋點,然後收集日誌進行分析。業務行爲數據又可以簡單分爲兩類:一類是能夠明顯地表現出用戶興趣的行爲,比如對商品的收藏、喜歡、評分和評價,我們可以從中對數據進行深入分析,得到用戶畫像,進而對用戶給出個性化的推薦商品列表,這個過程往往會用到機器學習相關的算法;另一類則是常規的業務操作,但需要着重關注一些異常狀況以做好風控,比如登錄和訂單支付。
行爲分析
電商用戶行爲分析——項目模塊設計
- 熱門統計
利用用戶的點擊瀏覽行爲,進行流量統計、近期熱門商品統計等。 - 偏好統計
利用用戶的偏好行爲,比如收藏、喜歡、評分等,進行用戶畫像分析,給出個性化的商品推薦列表。 - 風險控制
利用用戶的常規業務行爲,比如登錄、下單、支付等,分析數據,對異常情況進行報警提示。
本項目限於數據,我們只實現熱門統計和風險控制中的部分內容,將包括以下五大模塊:實時熱門商品統計、實時流量統計、市場營銷商業指標統計、惡意登錄監控和訂單支付失效監控,其中細分爲以下9個具體指標:
數據源解析
數據結構
一份淘寶用戶行爲數據集,保存爲csv文件。本數據集包含了淘寶上某一天隨機一百萬用戶的所有行爲(包括點擊、購買、收藏、喜歡)。數據集的每一行表示一條用戶行爲,由用戶ID、商品ID、商品類目ID、行爲類型和時間戳組成,並以逗號分隔。關於數據集中每一列的詳細描述如下:
UserBehavior
以apache服務器的一份log爲例,每一行日誌記錄了訪問者的IP、userId、訪問時間、訪問方法以及訪問的url,具體描述如下
ApacheLogEvent
項目模塊
熱門實時商品統計
圖解析
大體流程:
1. 按照商品Id進行分區
2. 設置時間窗口
3. 時間窗口(timeWindow)區間爲左閉右開,同一份數據會被分發到不同的窗口
4. 窗口聚合
5. 窗口聚合示例
6. 進行統計整理 —— keyBy(“windowEnd”)
7. 狀態編程
8. 排序輸出