趙 鑫
(遼寧行政學(xué)院人事處,遼寧 沈陽(yáng) 110161)
互聯(lián)網(wǎng)極大地促進(jìn)了商業(yè)的發(fā)展,每個(gè)電子商務(wù)企業(yè)都有自己的Web入口和后臺(tái)系統(tǒng),用戶(hù)在網(wǎng)站頁(yè)面上產(chǎn)生一個(gè)訂單時(shí),Web和后臺(tái)系統(tǒng)就發(fā)生一次交互,交易請(qǐng)求數(shù)據(jù)被存在后臺(tái)數(shù)據(jù)庫(kù)中,對(duì)于這類(lèi)結(jié)構(gòu)化的數(shù)據(jù),使用Hadoop Hive的HQL即可實(shí)現(xiàn)數(shù)據(jù)的清洗。每當(dāng)用戶(hù)在頁(yè)面進(jìn)行點(diǎn)擊而跳轉(zhuǎn)到另外一個(gè)頁(yè)面時(shí),一條點(diǎn)擊流日志就產(chǎn)生了,如圖1所示。點(diǎn)擊流日志是了解用戶(hù)心理傾向的關(guān)鍵,通過(guò)它企業(yè)能夠更好地理解產(chǎn)品及營(yíng)銷(xiāo),但點(diǎn)擊流日志是非結(jié)構(gòu)化數(shù)據(jù),不能直接被用于分析,它記錄了很多不需要的信息,將這些信息裝載到數(shù)據(jù)倉(cāng)庫(kù)前,必須對(duì)點(diǎn)擊流日志進(jìn)行數(shù)據(jù)清洗,粒度管理器能夠完此項(xiàng)任務(wù),粒度管理器主要完成清除無(wú)關(guān)數(shù)據(jù),清除錯(cuò)誤數(shù)據(jù),記錄合、匯總與聚集。經(jīng)過(guò)這些處理,80%~90%的數(shù)據(jù)被粒度管理器拋棄,清洗后的數(shù)據(jù)被傳遞給數(shù)據(jù)倉(cāng)庫(kù)[1]。其工作流程如圖2所示。
圖1 Web和點(diǎn)擊流
點(diǎn)擊流日志由日志收集服務(wù)器每天定期上傳至分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)的指定目錄,經(jīng)過(guò)MapReduce作業(yè)清洗后輸出至HDFS指定的目錄,最后再由Hive將清洗后的數(shù)據(jù)加載到Clickstream_log表中指定的分區(qū),完成點(diǎn)擊流日志的數(shù)據(jù)清洗工作[2]。其流程如3所示。
圖2 粒度管理器工作流程
圖3 點(diǎn)擊流日志的數(shù)據(jù)清洗處理流程
點(diǎn)擊流日志數(shù)據(jù)的體量巨大,但價(jià)值密度很低,下面為一條標(biāo)準(zhǔn)的Apache服務(wù)器日志信息[3]。
Clickstream_log表中主要字段如表1所示,其字段對(duì)map reduce任務(wù)產(chǎn)生影響。
表1 Clickstream_log表中主要字段
在Clickstream_log表中,除Csvp字段外,其他的字段可以在map函數(shù)中直接獲取,但Csvp必須經(jīng)過(guò)reduce函數(shù)才能獲得,如同一個(gè)用戶(hù)在同一個(gè)session中有兩條點(diǎn)擊流記錄,receive Time分別是1413482169623和1413482169642,那么這兩條記錄的Csvp分別為1和2,有了這個(gè)字段,才能完整得到用戶(hù)在網(wǎng)站的點(diǎn)擊行為[4-6]。
為了對(duì)Csvp進(jìn)行排序,首先對(duì)map的key進(jìn)行了重構(gòu),session id 由unqiue id和session time合成而成,其中經(jīng)典的流程如圖4所示。
圖4 將session id作為鍵值輸出的mapreduce排序流程
其執(zhí)行代碼為map/reduce/partion/二次排序等,主要部分如下:
點(diǎn)擊流日志的數(shù)據(jù)清洗,代表了一種非結(jié)構(gòu)化數(shù)據(jù)清洗的方式。當(dāng)擁Clickstream_log表后,意味著數(shù)據(jù)倉(cāng)庫(kù)又多了一份寶貴資產(chǎn),可以通過(guò)Clickstream_log表進(jìn)行網(wǎng)站的分析,更好地維護(hù)網(wǎng)站,增加網(wǎng)站瀏覽量。網(wǎng)站運(yùn)營(yíng)商根據(jù)不同用戶(hù)的瀏覽行為和習(xí)慣可以對(duì)現(xiàn)有網(wǎng)站進(jìn)行改進(jìn)和優(yōu)化,尤其對(duì)從事電子商務(wù)的企業(yè),通過(guò)點(diǎn)擊流日志可以更多地了解用戶(hù)的消費(fèi)心理,深刻地理解產(chǎn)品、營(yíng)銷(xiāo)和廣告是如何對(duì)用戶(hù)產(chǎn)生影響的。日志分析在企業(yè)發(fā)展中將越來(lái)越重要,從日志中將挖掘出大量重要信息。
[參考文獻(xiàn)]
[1]楊丕仁.基于Hadoop下利用Hive進(jìn)行網(wǎng)絡(luò)日志存儲(chǔ)和分析[J].電子技術(shù)與軟件工程,2017(2):163-165.
[2]蔣煥亮.基于hive的日志倉(cāng)庫(kù)構(gòu)建研究[J].計(jì)算機(jī)時(shí)代,2016(11):21-24.
[3]張俊瑞,代洋.基于Hadoop平臺(tái)的Web日志業(yè)務(wù)分析[J].山西電子技術(shù),2017(6):71-73.
[4]宋夢(mèng)馨,繆紅萍,王溯,等.基于Hadoop平臺(tái)的網(wǎng)站日志分析[J].信息系統(tǒng)工程,2015(12):35-36.
[5]陸嘉恒.大數(shù)據(jù)挑戰(zhàn)NoSQL數(shù)據(jù)庫(kù)技術(shù)[M].北京:電子工業(yè)出版社,2013.
[6]范東來(lái).Hadoop海量數(shù)據(jù)處理技術(shù)詳解與項(xiàng)目實(shí)戰(zhàn)[M].北京:人民郵電出版社,2016.