摘 要 運用數據倉庫技術分析Web日志是目前Web使用挖掘的研究熱點。本文從Web日志數據庫設計、數據預處理和邏輯建模三個階段闡述了Web日志數據倉庫系統的整體實現。文章詳細論述了將Web日志導入數據庫中的方法,給出了具體的預處理過程,在此基礎上實現了Web日志管理系統,最后提出Web日志數據倉庫的邏輯模型。
1、引言
目前已經有很多學者和研究機構意識到網站日志數據巨大的潛在價值,試圖通過對Web日志的研究來改善網站設計,理解用戶的興趣和真正動機等。多數現有的Web分析工具提供了用戶在服務器上的活動情況及各種形式的過濾數據,使用這類工具可以確定對某個服務器或單個文件的訪問次數、訪問時間以及用戶的域名和URL。但是對于Web日志數據倉庫系統進行總體設計上的研究并不多,而這項工作對于研究用戶訪問模式和提高挖掘的效率是很有意義的。本文以某網站Web日志文件為例,在JAVA平臺上對其數據倉庫的建構進行了研究。
2、Web日志數據采集
服務器日志的格式根據Web服務的應用及安裝時的選項而有所不同,一般用兩種格式存儲:一種是普通日志文件格式;另一種是擴展日志文件格式。普通日志文件存儲的是客戶端IP、用戶名、狀態、服務器名、協議版本等客戶連接的物理信息。擴展日志文件格式主要支持關于日志文件元信息的指令,如版本號、會話監控開始時間和瀏覽器類型等。下面是一條典型的日志及其各字段詳細解釋:
2004-12-13 0:00:45 172.16.96.22 - 211.66.184.35
80 GET /~janyst/chat/chatUsers.php - 200 Mozilla/4.0+ (compatible;+MSIE+6.0;+Windows+NT+5.1)
● Date and Time:請求的日期、時間;
● c_ip:訪問用戶的 IP 地址或者用戶使用的代理服務器 IP 地址;
● userName:用戶名,由于通常用戶沒有進行注冊,故一般都為占位符所替代;
● s_ip:客戶端訪問網站的IP 地址;
● s_port:客戶端訪問網站的端口號;
● cs_method:訪問者的請求命令,常見的方法有三種,分別是 GET、POST 和 HEAD;
● cs_uri_stem:訪問者請求的資源,即相對于服務器上根目錄的途徑,上例中為/~janyst/chat/chatUsers.php;
● query:協議類型,上例中為HTTP/1.1;
● Status:服務器返回的狀態代碼。一般而言,以2開頭的狀態代碼表示成功,以3開頭表示由于各種不同的原因用戶請求被重定向到了其他位置,以4開頭表示用戶端存在某種錯誤,以5開頭表示服務器遇到了某個錯誤;
● userAgent:附加信息,包括瀏覽器類型、操作系統等。
3、Web日志管理系統架構
Web日志管理系統功能是完成Web日志的預處理和存儲,主要由數據采集模塊、數據庫創建模塊、數據庫清除模塊和數據集生成模塊等組成,圖1為系統用戶界面。

圖1 Web日志管理系統用戶界面
該系統是在Eclipse環境下搭建的,主要由四個模塊組成,分別為數據庫建立模塊、數據采集模塊、數據庫清除模塊和數據集生成模塊組成。各模塊功能介紹如下:
● 數據庫生成模塊:在已創建的空數據庫里生成用于存儲Web日志數據的各個二維表;
● 數據采集模塊:功能主要是將Web日志導入已生成的數據庫的各個表中。首先解析Web日志,即將文本格式的日志依次讀入到數組中;其次對日志進行基本的預處理,具體的預處理過程會在下節中詳細介紹;最后將預處理后的數據存儲到數據庫中;
● 數據庫清除模塊:可以清除數據庫中已創建的各個表,數據庫仍然保留;
數據集生成模塊:可將Web日志以文本形式導出。
新聞熱點
疑難解答