《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于DTS的Web日志分析系統(tǒng)
基于DTS的Web日志分析系統(tǒng)
焦文彬 及俊川 叢培民
北京中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心(100864)
摘要: 通過(guò)在Web日志分析系統(tǒng)中引入Microsoft SQL Server的DTS技術(shù),解決了日志系統(tǒng)運(yùn)行效率與數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)之間的瓶頸問(wèn)題。文中介紹了一種實(shí)際系統(tǒng)的架構(gòu)設(shè)計(jì)方案,并給出了實(shí)現(xiàn)方法及應(yīng)用效果。
Abstract:
Key words :

摘  要: 通過(guò)在Web日志分析系統(tǒng)中引入Microsoft SQL Server的DTS技術(shù),解決了日志系統(tǒng)運(yùn)行效率與數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)之間的瓶頸問(wèn)題。文中介紹了一種實(shí)際系統(tǒng)的架構(gòu)設(shè)計(jì)方案,并給出了實(shí)現(xiàn)方法及應(yīng)用效果。
關(guān)鍵詞:  Web日志  離散  數(shù)據(jù)轉(zhuǎn)換服務(wù)  數(shù)據(jù)挖掘  Java

  隨著Web站點(diǎn)規(guī)模的增大,所涉及的應(yīng)用服務(wù)種類越來(lái)越多。因此需要有效地對(duì)各站點(diǎn)的訪問(wèn)情況和服務(wù)性能進(jìn)行監(jiān)控和分析,包括訪問(wèn)量的統(tǒng)計(jì)、流量的監(jiān)控、資源利用的監(jiān)測(cè)以及服務(wù)性能的評(píng)估等,從而為決策者和網(wǎng)站建設(shè)者提供管理和決策依據(jù)。站點(diǎn)的監(jiān)控和統(tǒng)計(jì)分析已成為站點(diǎn)建設(shè)的一項(xiàng)重要內(nèi)容。Web服務(wù)器的訪問(wèn)日志文件記錄了客戶端每次請(qǐng)求的細(xì)節(jié),如請(qǐng)求資源、請(qǐng)求時(shí)間、客戶IP、服務(wù)器IP、發(fā)送字節(jié)數(shù)和接收字節(jié)數(shù)等,因此,對(duì)Web站點(diǎn)訪問(wèn)日志進(jìn)行分析,已成為評(píng)估網(wǎng)站運(yùn)行質(zhì)量的一種常用方法。
  大型Web站點(diǎn)的日志文件的重要特征是數(shù)據(jù)量巨大,每日幾百兆甚至上千兆,并且隨著時(shí)間推移不斷增加。因此很多站點(diǎn)對(duì)日志文件進(jìn)行按日分割(即每天產(chǎn)生1個(gè)文件),而這樣就帶來(lái)日志文件的離散性。傳統(tǒng)日志分析系統(tǒng)過(guò)多關(guān)注日志分析的效率問(wèn)題,而忽略了對(duì)離散文件進(jìn)行連續(xù)分析的研究及對(duì)每次分析結(jié)果的結(jié)構(gòu)化保存問(wèn)題。隨著數(shù)據(jù)挖掘技術(shù)逐漸由理論到實(shí)踐以及人們對(duì)海量數(shù)據(jù)的利用越來(lái)越關(guān)注,進(jìn)行持續(xù)分析以及對(duì)分析結(jié)果進(jìn)行結(jié)構(gòu)化存儲(chǔ)甚至比效率顯得更加重要。近來(lái)的系統(tǒng)雖然重視了這方面的研究,在分析過(guò)程中引入了數(shù)據(jù)庫(kù)系統(tǒng),但由于大數(shù)據(jù)量導(dǎo)入數(shù)據(jù)庫(kù)耗費(fèi)了大量時(shí)間,因此系統(tǒng)并不實(shí)用。
  現(xiàn)代關(guān)系數(shù)據(jù)庫(kù)很重視原始數(shù)據(jù)的導(dǎo)入,一般都提供數(shù)據(jù)導(dǎo)入工具,如SQL-SERVER的數(shù)據(jù)轉(zhuǎn)換服務(wù)(Data Transformation Services,DTS),ORACLE的SQL?鄢LOADER等。本文就是通過(guò)在日志分析系統(tǒng)中嵌入SQL-SERVER的DTS,從而使系統(tǒng)既有較高的執(zhí)行效率,又很好地解決了離散文件的連續(xù)性分析與存儲(chǔ)問(wèn)題。
1  DTS介紹
  將不同數(shù)據(jù)源中的數(shù)據(jù)加以整合是進(jìn)行數(shù)據(jù)分析和數(shù)據(jù)挖掘的前提和基礎(chǔ)。DTS是一組圖形化工具和可編程對(duì)象,可以將來(lái)自不同數(shù)據(jù)源的數(shù)據(jù)析取、轉(zhuǎn)換、合并到 DTS所支持的單個(gè)或多個(gè)數(shù)據(jù)載體中,以便做進(jìn)一步的處理。Microsoft從SQL-SERVER 7.0開(kāi)始提供該項(xiàng)服務(wù),到了SQL-SERVER 2000 DTS得到了重大的發(fā)展,成為SQL-SERVER主要功能之一。
  要利用SQL-SERVER的這一強(qiáng)大功能,首先要建立DTS包。DTS包是數(shù)據(jù)轉(zhuǎn)換服務(wù)的可執(zhí)行單元,每個(gè)包都包含1個(gè)或多個(gè)順序或并行執(zhí)行的程序步驟。當(dāng)包執(zhí)行時(shí),首先連接到正確的數(shù)據(jù)源,然后復(fù)制數(shù)據(jù)和數(shù)據(jù)庫(kù)對(duì)象,最后完成數(shù)據(jù)轉(zhuǎn)換工作。用戶可以對(duì)包進(jìn)行編輯、密碼保護(hù)、調(diào)度以及按版本檢索等操作。SQL-SERVER提供了多種方式創(chuàng)建DTS包,如DTS導(dǎo)入/導(dǎo)出向?qū)?、DTS設(shè)計(jì)器等可視化工具。
  創(chuàng)建好DTS包后,便可在客戶端通過(guò)DTS執(zhí)行實(shí)用工具(如dtsrun)進(jìn)行調(diào)用,這樣就可將特定格式的數(shù)據(jù)從不同的數(shù)據(jù)源導(dǎo)入目的數(shù)據(jù)庫(kù)中。本文所討論的日志分析系統(tǒng)便是建立在這種方案之上的。由于DTS是系統(tǒng)提供的一種多線程數(shù)據(jù)遷移工具,因此具有很高的轉(zhuǎn)換效率。詳細(xì)的關(guān)于如何創(chuàng)建DTS包和dtsrun的調(diào)用方法請(qǐng)參考相關(guān)專著和SQL-SERVER聯(lián)機(jī)幫助。
2  系統(tǒng)設(shè)計(jì)
  通過(guò)上面的分析,本文認(rèn)為運(yùn)用DTS技術(shù)能夠很好地解決日志系統(tǒng)運(yùn)行效率與數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)之間的瓶頸問(wèn)題。整個(gè)系統(tǒng)的架構(gòu)設(shè)計(jì)如圖1所示。本設(shè)計(jì)基本實(shí)現(xiàn)了以下目標(biāo)。

  (1)適合日志文件的多樣性
  現(xiàn)有多種流行的Web服務(wù)器,如Apache、IIS等。不同服務(wù)器的訪問(wèn)日志文件所記錄的內(nèi)容大同小異,如請(qǐng)求資源、請(qǐng)求時(shí)間、客戶IP、服務(wù)器IP、發(fā)送字節(jié)數(shù)和接收字節(jié)數(shù)等,然而記錄格式卻不盡相同。Apache和IIS的Web日志格式如表1所示。格式具體含義請(qǐng)參考聯(lián)機(jī)幫助。


  由此可見(jiàn),日志文件屬于半結(jié)構(gòu)化的文本文件。對(duì)于這樣的文件DTS是不能夠直接導(dǎo)入到數(shù)據(jù)庫(kù)中的。因此,在原始日志文件下載到本地后,應(yīng)該對(duì)文件進(jìn)行規(guī)范化處理,這里稱為日志文件的歸一化處理,即將不同的日志格式轉(zhuǎn)換成一種DTS可以直接操作的文件格式。這實(shí)際上是一種文本過(guò)濾技術(shù),很多編程語(yǔ)言都能方便實(shí)現(xiàn)。
  (2)離散非結(jié)構(gòu)數(shù)據(jù)的結(jié)構(gòu)化存儲(chǔ)
  日志文件在進(jìn)行歸一化處理后,便可使用DTS服務(wù)了。首先通過(guò)向?qū)?Wizard)或數(shù)據(jù)轉(zhuǎn)換服務(wù)中的工具定義一個(gè)DTS包,其中數(shù)據(jù)源是經(jīng)過(guò)歸一化處理的日志文件,導(dǎo)入目的庫(kù)是系統(tǒng)使用的數(shù)據(jù)庫(kù)。一切定義好之后,便可以將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)表中??梢园l(fā)現(xiàn)導(dǎo)入效率非常高,通常在2~5分鐘能完成100萬(wàn)條記錄。
  (3)進(jìn)行遠(yuǎn)程離線統(tǒng)計(jì)
  分析系統(tǒng)應(yīng)該盡量做到對(duì)Web服務(wù)器的無(wú)干擾操作,否則會(huì)影響Web服務(wù)器的正常工作。為此,分析系統(tǒng)應(yīng)該在物理上與Web服務(wù)器隔離,使之位于另一臺(tái)服務(wù)器上,甚至另一個(gè)網(wǎng)絡(luò)中。這樣,系統(tǒng)應(yīng)采用一定的技術(shù)手段將Web日志文件下載到本地。本系統(tǒng)采用FTP進(jìn)行文件下載。
  (4)分析功能的定制性
  功能定制也稱為基于組件的軟插拔技術(shù),是現(xiàn)代軟件所倡導(dǎo)的核心技術(shù)之一。因此,本系統(tǒng)的分析功能采用基于軟組件的方法,實(shí)現(xiàn)了系統(tǒng)功能的配置與定制。數(shù)據(jù)在導(dǎo)入數(shù)據(jù)庫(kù)系統(tǒng)之后,便可以利用關(guān)系數(shù)據(jù)庫(kù)和編程語(yǔ)言的強(qiáng)大功能進(jìn)行數(shù)據(jù)挖掘和分析處理。
  (5)功能豐富的報(bào)表輸出B/S方式
  B/S方式已成為人機(jī)交互和信息表現(xiàn)的主流方式。本系統(tǒng)也是通過(guò)該方式顯示分析結(jié)果,通過(guò)豐富的報(bào)表、統(tǒng)計(jì)圖等直觀的手段,為網(wǎng)站管理者和決策者提供有價(jià)值的信息。
3  系統(tǒng)實(shí)現(xiàn)
  本系統(tǒng)由2部分組成,即后臺(tái)服務(wù)程序和前臺(tái)顯示程序。其中后臺(tái)服務(wù)程序負(fù)責(zé)完成日志文件下載、歸一化處理、DTS入庫(kù)、分析等功能,根據(jù)需要可以設(shè)置為自動(dòng)運(yùn)行和手動(dòng)運(yùn)行。現(xiàn)已實(shí)現(xiàn)了訪問(wèn)統(tǒng)計(jì)功能、頻道統(tǒng)計(jì)功能、熱門頁(yè)面(HotPage)排行和用戶地域分析等功能。前臺(tái)顯示程序是基于B/S結(jié)構(gòu),通過(guò)統(tǒng)計(jì)表和統(tǒng)計(jì)圖方式直觀地展示分析結(jié)果。本系統(tǒng)采用Java語(yǔ)言開(kāi)發(fā),為系統(tǒng)移植和擴(kuò)展提供了方便。利用本系統(tǒng)對(duì)某大型新聞?lì)惥W(wǎng)站進(jìn)行的一個(gè)月度訪問(wèn)走勢(shì)對(duì)比分析如圖2所示。

4  結(jié)束語(yǔ)
  本文介紹了Web日志分析系統(tǒng)的特點(diǎn)和目前研究重點(diǎn),并概要介紹了Microsoft SQL Server的DTS技術(shù)。在此基礎(chǔ)上開(kāi)發(fā)的Web日志分析系統(tǒng),較好地解決了日志系統(tǒng)運(yùn)行效率與數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)之間的瓶頸問(wèn)題。該系統(tǒng)采用了主流的軟件技術(shù),架構(gòu)清晰,可擴(kuò)展性較好。該系統(tǒng)操作簡(jiǎn)單,功能實(shí)用,目前已在多個(gè)大型Web站點(diǎn)獲得了成功的應(yīng)用,為網(wǎng)站管理者和決策者提供了大量有價(jià)值的信息。
參考文獻(xiàn)
1   張川.具有訪問(wèn)時(shí)間完整性的Web日志方法.計(jì)算機(jī)應(yīng)用與軟件,2004;21(2)
2   趙偉.Web日志挖掘中的數(shù)據(jù)預(yù)處理技術(shù)研究.計(jì)算機(jī)應(yīng)用,2003;23(5)
3   張靜,田忠和.基于IIS和Web日志的關(guān)聯(lián)關(guān)系的挖掘.華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2002;30(7)
4   章立民.SQL Server 2000完全實(shí)戰(zhàn)-數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS).  北京:中國(guó)鐵道出版社,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
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。