摘 要: 通过在Web日志分析系统中引入Microsoft SQL Server的DTS技术,解决了日志系统运行效率与数据结构化存储之间的瓶颈问题。文中介绍了一种实际系统的架构设计方案,并给出了实现方法及应用效果。
关键词: Web日志 离散 数据转换服务 数据挖掘 Java
随着Web站点规模的增大,所涉及的应用服务种类越来越多。因此需要有效地对各站点的访问情况和服务性能进行监控和分析,包括访问量的统计、流量的监控、资源利用的监测以及服务性能的评估等,从而为决策者和网站建设者提供管理和决策依据。站点的监控和统计分析已成为站点建设的一项重要内容。Web服务器的访问日志文件记录了客户端每次请求的细节,如请求资源、请求时间、客户IP、服务器IP、发送字节数和接收字节数等,因此,对Web站点访问日志进行分析,已成为评估网站运行质量的一种常用方法。
大型Web站点的日志文件的重要特征是数据量巨大,每日几百兆甚至上千兆,并且随着时间推移不断增加。因此很多站点对日志文件进行按日分割(即每天产生1个文件),而这样就带来日志文件的离散性。传统日志分析系统过多关注日志分析的效率问题,而忽略了对离散文件进行连续分析的研究及对每次分析结果的结构化保存问题。随着数据挖掘技术逐渐由理论到实践以及人们对海量数据的利用越来越关注,进行持续分析以及对分析结果进行结构化存储甚至比效率显得更加重要。近来的系统虽然重视了这方面的研究,在分析过程中引入了数据库系统,但由于大数据量导入数据库耗费了大量时间,因此系统并不实用。
现代关系数据库很重视原始数据的导入,一般都提供数据导入工具,如SQL-SERVER的数据转换服务(Data Transformation Services,DTS),ORACLE的SQL?鄢LOADER等。本文就是通过在日志分析系统中嵌入SQL-SERVER的DTS,从而使系统既有较高的执行效率,又很好地解决了离散文件的连续性分析与存储问题。
1 DTS介绍
将不同数据源中的数据加以整合是进行数据分析和数据挖掘的前提和基础。DTS是一组图形化工具和可编程对象,可以将来自不同数据源的数据析取、转换、合并到 DTS所支持的单个或多个数据载体中,以便做进一步的处理。Microsoft从SQL-SERVER 7.0开始提供该项服务,到了SQL-SERVER 2000 DTS得到了重大的发展,成为SQL-SERVER主要功能之一。
要利用SQL-SERVER的这一强大功能,首先要建立DTS包。DTS包是数据转换服务的可执行单元,每个包都包含1个或多个顺序或并行执行的程序步骤。当包执行时,首先连接到正确的数据源,然后复制数据和数据库对象,最后完成数据转换工作。用户可以对包进行编辑、密码保护、调度以及按版本检索等操作。SQL-SERVER提供了多种方式创建DTS包,如DTS导入/导出向导、DTS设计器等可视化工具。
创建好DTS包后,便可在客户端通过DTS执行实用工具(如dtsrun)进行调用,这样就可将特定格式的数据从不同的数据源导入目的数据库中。本文所讨论的日志分析系统便是建立在这种方案之上的。由于DTS是系统提供的一种多线程数据迁移工具,因此具有很高的转换效率。详细的关于如何创建DTS包和dtsrun的调用方法请参考相关专著和SQL-SERVER联机帮助。
2 系统设计
通过上面的分析,本文认为运用DTS技术能够很好地解决日志系统运行效率与数据结构化存储之间的瓶颈问题。整个系统的架构设计如图1所示。本设计基本实现了以下目标。
(1)适合日志文件的多样性
现有多种流行的Web服务器,如Apache、IIS等。不同服务器的访问日志文件所记录的内容大同小异,如请求资源、请求时间、客户IP、服务器IP、发送字节数和接收字节数等,然而记录格式却不尽相同。Apache和IIS的Web日志格式如表1所示。格式具体含义请参考联机帮助。
由此可见,日志文件属于半结构化的文本文件。对于这样的文件DTS是不能够直接导入到数据库中的。因此,在原始日志文件下载到本地后,应该对文件进行规范化处理,这里称为日志文件的归一化处理,即将不同的日志格式转换成一种DTS可以直接操作的文件格式。这实际上是一种文本过滤技术,很多编程语言都能方便实现。
(2)离散非结构数据的结构化存储
日志文件在进行归一化处理后,便可使用DTS服务了。首先通过向导(Wizard)或数据转换服务中的工具定义一个DTS包,其中数据源是经过归一化处理的日志文件,导入目的库是系统使用的数据库。一切定义好之后,便可以将数据导入到数据库表中。可以发现导入效率非常高,通常在2~5分钟能完成100万条记录。
(3)进行远程离线统计
分析系统应该尽量做到对Web服务器的无干扰操作,否则会影响Web服务器的正常工作。为此,分析系统应该在物理上与Web服务器隔离,使之位于另一台服务器上,甚至另一个网络中。这样,系统应采用一定的技术手段将Web日志文件下载到本地。本系统采用FTP进行文件下载。
(4)分析功能的定制性
功能定制也称为基于组件的软插拔技术,是现代软件所倡导的核心技术之一。因此,本系统的分析功能采用基于软组件的方法,实现了系统功能的配置与定制。数据在导入数据库系统之后,便可以利用关系数据库和编程语言的强大功能进行数据挖掘和分析处理。
(5)功能丰富的报表输出B/S方式
B/S方式已成为人机交互和信息表现的主流方式。本系统也是通过该方式显示分析结果,通过丰富的报表、统计图等直观的手段,为网站管理者和决策者提供有价值的信息。
3 系统实现
本系统由2部分组成,即后台服务程序和前台显示程序。其中后台服务程序负责完成日志文件下载、归一化处理、DTS入库、分析等功能,根据需要可以设置为自动运行和手动运行。现已实现了访问统计功能、频道统计功能、热门页面(HotPage)排行和用户地域分析等功能。前台显示程序是基于B/S结构,通过统计表和统计图方式直观地展示分析结果。本系统采用Java语言开发,为系统移植和扩展提供了方便。利用本系统对某大型新闻类网站进行的一个月度访问走势对比分析如图2所示。
4 结束语
本文介绍了Web日志分析系统的特点和目前研究重点,并概要介绍了Microsoft SQL Server的DTS技术。在此基础上开发的Web日志分析系统,较好地解决了日志系统运行效率与数据结构化存储之间的瓶颈问题。该系统采用了主流的软件技术,架构清晰,可扩展性较好。该系统操作简单,功能实用,目前已在多个大型Web站点获得了成功的应用,为网站管理者和决策者提供了大量有价值的信息。
参考文献
1 张川.具有访问时间完整性的Web日志方法.计算机应用与软件,2004;21(2)
2 赵伟.Web日志挖掘中的数据预处理技术研究.计算机应用,2003;23(5)
3 张静,田忠和.基于IIS和Web日志的关联关系的挖掘.华中科技大学学报(自然科学版),2002;30(7)
4 章立民.SQL Server 2000完全实战-数据转换服务(DTS). 北京:中国铁道出版社,2002
5 Bartolini C,Redpath R.Web Usage Mining and Discovery of Association Rules from Http Servers Logs.http://www.prato.linux.it/~gbartolini/en/view-a/2/pdf/wum.pdf,2001