摘 要: 通過在Web日志分析系統(tǒng)中引入Microsoft SQL Server的DTS技術(shù),解決了日志系統(tǒng)運行效率與數(shù)據(jù)結(jié)構(gòu)化存儲之間的瓶頸問題。文中介紹了一種實際系統(tǒng)的架構(gòu)設(shè)計方案,并給出了實現(xiàn)方法及應用效果。
關(guān)鍵詞: Web日志 離散 數(shù)據(jù)轉(zhuǎn)換服務 數(shù)據(jù)挖掘 Java
隨著Web站點規(guī)模的增大,所涉及的應用服務種類越來越多。因此需要有效地對各站點的訪問情況和服務性能進行監(jiān)控和分析,包括訪問量的統(tǒng)計、流量的監(jiān)控、資源利用的監(jiān)測以及服務性能的評估等,從而為決策者和網(wǎng)站建設(shè)者提供管理和決策依據(jù)。站點的監(jiān)控和統(tǒng)計分析已成為站點建設(shè)的一項重要內(nèi)容。Web服務器的訪問日志文件記錄了客戶端每次請求的細節(jié),如請求資源、請求時間、客戶IP、服務器IP、發(fā)送字節(jié)數(shù)和接收字節(jié)數(shù)等,因此,對Web站點訪問日志進行分析,已成為評估網(wǎng)站運行質(zhì)量的一種常用方法。
大型Web站點的日志文件的重要特征是數(shù)據(jù)量巨大,每日幾百兆甚至上千兆,并且隨著時間推移不斷增加。因此很多站點對日志文件進行按日分割(即每天產(chǎn)生1個文件),而這樣就帶來日志文件的離散性。傳統(tǒng)日志分析系統(tǒng)過多關(guān)注日志分析的效率問題,而忽略了對離散文件進行連續(xù)分析的研究及對每次分析結(jié)果的結(jié)構(gòu)化保存問題。隨著數(shù)據(jù)挖掘技術(shù)逐漸由理論到實踐以及人們對海量數(shù)據(jù)的利用越來越關(guān)注,進行持續(xù)分析以及對分析結(jié)果進行結(jié)構(gòu)化存儲甚至比效率顯得更加重要。近來的系統(tǒng)雖然重視了這方面的研究,在分析過程中引入了數(shù)據(jù)庫系統(tǒng),但由于大數(shù)據(jù)量導入數(shù)據(jù)庫耗費了大量時間,因此系統(tǒng)并不實用。
現(xiàn)代關(guān)系數(shù)據(jù)庫很重視原始數(shù)據(jù)的導入,一般都提供數(shù)據(jù)導入工具,如SQL-SERVER的數(shù)據(jù)轉(zhuǎn)換服務(Data Transformation Services,DTS),ORACLE的SQL?鄢LOADER等。本文就是通過在日志分析系統(tǒng)中嵌入SQL-SERVER的DTS,從而使系統(tǒng)既有較高的執(zhí)行效率,又很好地解決了離散文件的連續(xù)性分析與存儲問題。
1 DTS介紹
將不同數(shù)據(jù)源中的數(shù)據(jù)加以整合是進行數(shù)據(jù)分析和數(shù)據(jù)挖掘的前提和基礎(chǔ)。DTS是一組圖形化工具和可編程對象,可以將來自不同數(shù)據(jù)源的數(shù)據(jù)析取、轉(zhuǎn)換、合并到 DTS所支持的單個或多個數(shù)據(jù)載體中,以便做進一步的處理。Microsoft從SQL-SERVER 7.0開始提供該項服務,到了SQL-SERVER 2000 DTS得到了重大的發(fā)展,成為SQL-SERVER主要功能之一。
要利用SQL-SERVER的這一強大功能,首先要建立DTS包。DTS包是數(shù)據(jù)轉(zhuǎn)換服務的可執(zhí)行單元,每個包都包含1個或多個順序或并行執(zhí)行的程序步驟。當包執(zhí)行時,首先連接到正確的數(shù)據(jù)源,然后復制數(shù)據(jù)和數(shù)據(jù)庫對象,最后完成數(shù)據(jù)轉(zhuǎn)換工作。用戶可以對包進行編輯、密碼保護、調(diào)度以及按版本檢索等操作。SQL-SERVER提供了多種方式創(chuàng)建DTS包,如DTS導入/導出向?qū)?、DTS設(shè)計器等可視化工具。
創(chuàng)建好DTS包后,便可在客戶端通過DTS執(zhí)行實用工具(如dtsrun)進行調(diào)用,這樣就可將特定格式的數(shù)據(jù)從不同的數(shù)據(jù)源導入目的數(shù)據(jù)庫中。本文所討論的日志分析系統(tǒng)便是建立在這種方案之上的。由于DTS是系統(tǒng)提供的一種多線程數(shù)據(jù)遷移工具,因此具有很高的轉(zhuǎn)換效率。詳細的關(guān)于如何創(chuàng)建DTS包和dtsrun的調(diào)用方法請參考相關(guān)專著和SQL-SERVER聯(lián)機幫助。
2 系統(tǒng)設(shè)計
通過上面的分析,本文認為運用DTS技術(shù)能夠很好地解決日志系統(tǒng)運行效率與數(shù)據(jù)結(jié)構(gòu)化存儲之間的瓶頸問題。整個系統(tǒng)的架構(gòu)設(shè)計如圖1所示。本設(shè)計基本實現(xiàn)了以下目標。
(1)適合日志文件的多樣性
現(xiàn)有多種流行的Web服務器,如Apache、IIS等。不同服務器的訪問日志文件所記錄的內(nèi)容大同小異,如請求資源、請求時間、客戶IP、服務器IP、發(fā)送字節(jié)數(shù)和接收字節(jié)數(shù)等,然而記錄格式卻不盡相同。Apache和IIS的Web日志格式如表1所示。格式具體含義請參考聯(lián)機幫助。
由此可見,日志文件屬于半結(jié)構(gòu)化的文本文件。對于這樣的文件DTS是不能夠直接導入到數(shù)據(jù)庫中的。因此,在原始日志文件下載到本地后,應該對文件進行規(guī)范化處理,這里稱為日志文件的歸一化處理,即將不同的日志格式轉(zhuǎn)換成一種DTS可以直接操作的文件格式。這實際上是一種文本過濾技術(shù),很多編程語言都能方便實現(xiàn)。
(2)離散非結(jié)構(gòu)數(shù)據(jù)的結(jié)構(gòu)化存儲
日志文件在進行歸一化處理后,便可使用DTS服務了。首先通過向?qū)?Wizard)或數(shù)據(jù)轉(zhuǎn)換服務中的工具定義一個DTS包,其中數(shù)據(jù)源是經(jīng)過歸一化處理的日志文件,導入目的庫是系統(tǒng)使用的數(shù)據(jù)庫。一切定義好之后,便可以將數(shù)據(jù)導入到數(shù)據(jù)庫表中??梢园l(fā)現(xiàn)導入效率非常高,通常在2~5分鐘能完成100萬條記錄。
(3)進行遠程離線統(tǒng)計
分析系統(tǒng)應該盡量做到對Web服務器的無干擾操作,否則會影響Web服務器的正常工作。為此,分析系統(tǒng)應該在物理上與Web服務器隔離,使之位于另一臺服務器上,甚至另一個網(wǎng)絡(luò)中。這樣,系統(tǒng)應采用一定的技術(shù)手段將Web日志文件下載到本地。本系統(tǒng)采用FTP進行文件下載。
(4)分析功能的定制性
功能定制也稱為基于組件的軟插拔技術(shù),是現(xiàn)代軟件所倡導的核心技術(shù)之一。因此,本系統(tǒng)的分析功能采用基于軟組件的方法,實現(xiàn)了系統(tǒng)功能的配置與定制。數(shù)據(jù)在導入數(shù)據(jù)庫系統(tǒng)之后,便可以利用關(guān)系數(shù)據(jù)庫和編程語言的強大功能進行數(shù)據(jù)挖掘和分析處理。
(5)功能豐富的報表輸出B/S方式
B/S方式已成為人機交互和信息表現(xiàn)的主流方式。本系統(tǒng)也是通過該方式顯示分析結(jié)果,通過豐富的報表、統(tǒng)計圖等直觀的手段,為網(wǎng)站管理者和決策者提供有價值的信息。
3 系統(tǒng)實現(xiàn)
本系統(tǒng)由2部分組成,即后臺服務程序和前臺顯示程序。其中后臺服務程序負責完成日志文件下載、歸一化處理、DTS入庫、分析等功能,根據(jù)需要可以設(shè)置為自動運行和手動運行?,F(xiàn)已實現(xiàn)了訪問統(tǒng)計功能、頻道統(tǒng)計功能、熱門頁面(HotPage)排行和用戶地域分析等功能。前臺顯示程序是基于B/S結(jié)構(gòu),通過統(tǒng)計表和統(tǒng)計圖方式直觀地展示分析結(jié)果。本系統(tǒng)采用Java語言開發(fā),為系統(tǒng)移植和擴展提供了方便。利用本系統(tǒng)對某大型新聞類網(wǎng)站進行的一個月度訪問走勢對比分析如圖2所示。
4 結(jié)束語
本文介紹了Web日志分析系統(tǒng)的特點和目前研究重點,并概要介紹了Microsoft SQL Server的DTS技術(shù)。在此基礎(chǔ)上開發(fā)的Web日志分析系統(tǒng),較好地解決了日志系統(tǒng)運行效率與數(shù)據(jù)結(jié)構(gòu)化存儲之間的瓶頸問題。該系統(tǒng)采用了主流的軟件技術(shù),架構(gòu)清晰,可擴展性較好。該系統(tǒng)操作簡單,功能實用,目前已在多個大型Web站點獲得了成功的應用,為網(wǎng)站管理者和決策者提供了大量有價值的信息。
參考文獻
1 張川.具有訪問時間完整性的Web日志方法.計算機應用與軟件,2004;21(2)
2 趙偉.Web日志挖掘中的數(shù)據(jù)預處理技術(shù)研究.計算機應用,2003;23(5)
3 張靜,田忠和.基于IIS和Web日志的關(guān)聯(lián)關(guān)系的挖掘.華中科技大學學報(自然科學版),2002;30(7)
4 章立民.SQL Server 2000完全實戰(zhàn)-數(shù)據(jù)轉(zhuǎn)換服務(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