天天看點

基于阿裡雲大資料平台開發大資料應用(三):基于MaxCompute 的慕課網站資料倉庫

一、需求分析

網站通路日志是使用者在通路網站伺服器時産生的事件記錄(log),通常記載着時間、日期、使用者及動作等相關操作的描述。在大資料時代,我們應當抓取并利用這些日志中有價值的資訊,這樣我們才能更好的了解網站的運作情況并做出相應的優化,甚至為公司營銷政策提供依據。

在本項目中,我們提取了網站通路日志中有價值的資訊,如:使用者IP、通路時間、請求連結、請求狀态、來源連結、使用者作業系統、浏覽器等。對這些資料進行處理分析,得到網站的運作情況、安全情況、營運情況以及網站的使用者資訊等。最終通過資料分析,得出相應的結論或提出相應的優化政策。

二、資料集構成分析

1、 access.log

包含:IP位址,通路時間,請求連結,通路狀态,位元組數,通路來源,使用者資訊

2、 ip.txt

包含:IP位址起點,IP位址終點,地點,網絡營運商

三、資料處理分析:

基于阿裡雲大資料平台開發大資料應用(三):基于MaxCompute 的慕課網站資料倉庫

1、 預處理access.log(Python)

由于日志檔案中無法獲得獨立使用者(UV)的cookie id,實驗中判斷UV的方式是:IP和使用者資訊。在存儲時隻需要保留兩項資訊相同,且通路時間最早的log,即可獲得最終的UV。考慮到原資料集中的時間精度可能不滿足上述要求,無法找出“最早log”,是以在每一條log前添加了自增長的id。

基于阿裡雲大資料平台開發大資料應用(三):基于MaxCompute 的慕課網站資料倉庫

2、 建立原資料表導入資料

web_access_log_content:access.log

web_ip_content:ip.txt

3、 提取日志各個屬性

建立表 web_access_log_0 存儲access.log檔案中提取到的各項屬性資訊

基于阿裡雲大資料平台開發大資料應用(三):基于MaxCompute 的慕課網站資料倉庫

從web_access_log_content表中利用正則式提取各項屬性。

其中ip_1表示IP的第一個數,ip_num存儲IP的十進制數。這樣将IP轉為十進制數是為了在後續擷取相應地點和網絡營運商時友善關聯兩個表。

4、 提取IP屬性

建立web_ip_info存儲ip.txt中的各項屬性資訊,其中ip_start_1表示IP中的第一個數。

基于阿裡雲大資料平台開發大資料應用(三):基于MaxCompute 的慕課網站資料倉庫

同樣,在該表中IP起點和IP終點都是作為十進制數存儲的,地點和營運商也依據正規表達式進行提取。

5、 在log中增加地點、營運商和通路連結資訊

建立表web_access_log_1存儲關聯後的結果,新增屬性city,company

再将地名和網絡供應商的名稱規範後的表存為web_access_log_2,同時加入通路連結url資訊,其中網絡供應商隻分為四類:移動、聯通、電信、其他。

6、 提取通路時間和來源連結

建立表web_access_log_3,新添加屬性access_hour, ref_type

7、 處理使用者(用戶端)資訊

建立表web_access_log_4,新添加屬性client_browser, client_type

client_browser:使用者使用的浏覽器;

client_type:使用者使用的作業系統;

至此,所有的資訊已合并完全。

8、 擷取UV表(即:使用者第一次通路)

通過自關聯,判斷IP、使用者資訊和自增id來确定UV,同時建立web_access_log_first表來存儲UV。

9、 擷取最熱通路連結

記錄通路連結的前10名為最熱通路連結,存在web_access_log_url_top表中。

基于阿裡雲大資料平台開發大資料應用(三):基于MaxCompute 的慕課網站資料倉庫

10、 擷取IP黑名單

建立表web_access_log_ip_black存儲IP黑名單;

黑名單條件:無效通路次數>50。

基于阿裡雲大資料平台開發大資料應用(三):基于MaxCompute 的慕課網站資料倉庫