1 電商的用戶行為
電商平台中的用戶行為頻繁且較復雜,系統上線運行一段時間后,可以收集到大量的用戶行為數據,進而利用大數據技術進行深入挖掘和分析,得到感興趣的商
業指標並增強對風險的控制。
電商用戶行為數據多樣,整體可以分為用戶行為習慣數據和業務行為數據兩大類。用戶的行為習慣數據包括了用戶的登錄方式、上線的時間點及時長、點擊和瀏覽頁面、頁面停留時間以及頁面跳轉等等,我們可以從中進行流量統計和熱門商品的統計,也可以深入挖掘用戶的特征;這些數據往往可以從 web 服務器日志中直接讀取到。而業務行為數據就是用戶在電商平台中針對每個業務(通常是某個具體商品)所作的操作,我們一般會在業務系統中相應的位置埋點,然后收集日志進行分析。業務行為數據又可以簡單分為兩類:一類是能夠明顯地表現出用戶興趣的行為,比如對商品的收藏、喜歡、評分和評價,我們可以從中對數據進行深入分析,得到
用戶畫像,進而對用戶給出個性化的推薦商品列表,這個過程往往會用到機器學習相關的算法;另一類則是常規的業務操作,但需要着重關注一些異常狀況以做好風控,比如登錄和訂單支付。

2 項目主要模塊
基於對電商用戶行為數據的基本分類,我們可以發現主要有以下三個分析方向:
1. 熱門統計
利用用戶的點擊瀏覽行為,進行流量統計、近期熱門商品統計等。
2. 偏好統計
利用用戶的偏好行為,比如收藏、喜歡、評分等,進行用戶畫像分析,給出個性化的商品推薦列表。
3. 風險控制
利用用戶的常規業務行為,比如登錄、下單、支付等,分析數據,對異常情況進行報警提示。
本項目限於數據,我們只實現熱門統計和風險控制中的部分內容,將包括以下四大模塊:實時熱門商品統計、實時流量統計、惡意登錄監控和訂單支付失效監控。

由於對實時性要求較高,我們會用 flink 作為數據處理的框架。在項目中,我們將綜合運用 flink 的各種 API,基於 EventTime 去處理基本的業務需求,並且靈活地使用底層的 processFunction,基於狀態編程和 CEP 去處理更加復雜的情形。
3 數據源解析
我們准備了一份淘寶用戶行為數據集,保存為 csv 文件。本數據集包含了淘寶上某一天隨機一百萬用戶的所有行為(包括點擊、購買、收藏、喜歡)。數據集的每一行表示一條用戶行為,由用戶 ID、商品 ID、商品類目 ID、行為類型和時間戳組成,並以逗號分隔。關於數據集中每一列的詳細描述如下:

另外,我們還可以拿到 web 服務器的日志數據,這里以 apache 服務器的一份 log為例,每一行日志記錄了訪問者的 IP、userId、訪問時間、訪問方法以及訪問的 url,
具體描述如下:

由於行為數據有限,在實時熱門商品統計模塊中可以使用 UserBehavior 數據集,而對於惡意登錄監控和訂單支付失效監控,我們只以示例數據來做演示。