用于挖掘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为系统用户界面。
Web日志管理系统用户界面
该系统是在Eclipse环境下搭建的,主要由四个模块组成,分别为数据库建立模块、数据采集模块、数据库清除模块和数据集生成模块组成。各模块功能介绍如下:
● 数据库生成模块:在已创建的空数据库里生成用于存储Web日志数据的各个二维表;
● 数据采集模块:功能主要是将Web日志导入已生成的数据库的各个表中。首先解析Web日志,即将文本格式的日志依次读入到数组中;其次对日志进行基本的预处理,具体的预处理过程会在下节中详细介绍;最后将预处理后的数据存储到数据库中;
● 数据库清除模块:可以清除数据库中已创建的各个表,数据库仍然保留;
数据集生成模块:可将Web日志以文本形式导出。
4、Web日志数据库
4.1 Web日志数据库介绍
Web日志数据仓库是基于Web日志数据库。根据分析需求,将数据库分为5个表,图2为其ER图,各表功能分别为:(1)IDTbl存储解析后日志的各个属性的 ID号;(2)UserTbl存储访问者的基本信息;(3)PathTbl存储访问路径的相关信息;(4)TimeTbl存储访问时间的相关信息;(5) ProtocolTbl:存储日志其它信息;