陳 偉
(宿州職業(yè)技術(shù)學(xué)院計算機信息系 安徽·宿州 234101)
隨著移動互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)上購物日益普及,網(wǎng)購數(shù)據(jù)規(guī)模呈幾何級增長。中國互聯(lián)網(wǎng)絡(luò)信息中心2020年9月29日發(fā)布的《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》[1]中顯示,截至2020年6月,我國網(wǎng)絡(luò)購物用戶規(guī)模達7.49億,較2020年3月增長3912萬,占網(wǎng)民整體的79.7%。電商用戶行為數(shù)據(jù)中蘊含著大量有價值的信息,對海量行為數(shù)據(jù)進行挖掘分析得出用戶行為規(guī)律并進行決策制定,對電商企業(yè)來說尤為重要。傳統(tǒng)的單機處理及關(guān)系數(shù)據(jù)庫已無法滿足大規(guī)模數(shù)據(jù)處理和分析需求,大數(shù)據(jù)技術(shù)的出現(xiàn)為海量數(shù)據(jù)的存儲、分析等提供了技術(shù)支撐。文獻[2]利用Hadoop設(shè)計用戶行為分析引擎,并與傳統(tǒng)單機處理進行對比,處理效率優(yōu)勢明顯;文獻[3]介紹了網(wǎng)絡(luò)用戶消費行為大數(shù)據(jù)分析對電商營銷策略的影響;文獻[4-8]詳細(xì)闡述了Hadoop分布式架構(gòu)及數(shù)據(jù)分析方法,文獻[9]利用Hadoop設(shè)計了用戶行為分析系統(tǒng),提高了分析效率;文獻[10]設(shè)計的移動用戶上網(wǎng)行為分析系統(tǒng)能夠幫助運營商準(zhǔn)確定位用戶需求,為用戶提供個性化服務(wù)。本文在上述研究的基礎(chǔ)上,從電商用戶行為入手,展開對Hadoop電商用戶行為系統(tǒng)的研究。
Hadoop是Apache公司的一個分布式系統(tǒng)基礎(chǔ)架構(gòu)[11][12],擁有高可靠性、高擴展性、高效性、低成本等特點[13],主要包括HDFS(Hadoop Distributed File System)分布式文件系統(tǒng)和MapReduce分布式計算框架,利用Hadoop集群可以實現(xiàn)海量數(shù)據(jù)的高速存儲和并行計算, 與傳統(tǒng)數(shù)據(jù)庫系統(tǒng)相比,Hadoop在大數(shù)據(jù)處理方面具有諸多優(yōu)勢[14-15]。Hadoop生態(tài)圈中還包含其他開源的子項目,如分布式數(shù)據(jù)倉庫Hive,分布式協(xié)調(diào)服務(wù)Zookeeper,分布式、按列存儲數(shù)據(jù)庫HBase等,如圖1所示。
圖1 Hadoop生態(tài)圈
HDFS分布式文件系統(tǒng)采用流式數(shù)據(jù)存儲,部署成本較低,能夠運行在廉價的硬件上,具有高容錯、低成本、高性能、高吞吐量等特點[16],主要用于大數(shù)據(jù)的分布式存儲。HDFS采用主從結(jié)構(gòu),包含一個名字節(jié)點NameNode和若干個數(shù)據(jù)節(jié)點DataNode[17],名字節(jié)點負(fù)責(zé)存儲元數(shù)據(jù),真實數(shù)據(jù)存儲在數(shù)據(jù)節(jié)點。HDFS把文件分割為多個數(shù)據(jù)塊進行存儲,采用副本機制,把塊數(shù)據(jù)復(fù)制多個副本存儲在不同節(jié)點,實現(xiàn)數(shù)據(jù)的分布存儲,提高數(shù)據(jù)讀寫的效率,保證了數(shù)據(jù)的可靠性。
MapReduce分布式計算框架主要用于大規(guī)模數(shù)據(jù)的并行計算,分為Map和Reduce兩個階段,提供了簡便的分布式計算編程模型,程序員無須關(guān)心MapReduce分布式處理細(xì)節(jié),只需按照MapReduce規(guī)范編寫程序?qū)崿F(xiàn)Map函數(shù)和Reduce函數(shù)業(yè)務(wù)邏輯,系統(tǒng)便能在集群節(jié)點上自動分配和執(zhí)行任務(wù),完成數(shù)據(jù)的并行計算和處理[18]。
Hive是基于Hadoop的數(shù)據(jù)倉庫架構(gòu),可以實現(xiàn)大規(guī)模數(shù)據(jù)的查詢和統(tǒng)計分析。Hive將數(shù)據(jù)映射為數(shù)據(jù)庫中的表,利用類似SQL的HiveQL查詢語言實現(xiàn)查詢分析功能,HiveQL語句會在執(zhí)行時自動轉(zhuǎn)化為MapReduce任務(wù)在Hadoop集群上執(zhí)行[16]。Hive本身不具備存儲功能,所有數(shù)據(jù)存儲在HDFS中,元數(shù)據(jù)則保存在關(guān)系數(shù)據(jù)庫中。Hive處理大規(guī)模數(shù)據(jù)集時延遲較高,不適用于數(shù)據(jù)的實時查詢,主要用于數(shù)據(jù)離線分析、日志分析,如電商網(wǎng)站用戶行為分析。
本文系統(tǒng)主要實現(xiàn)用戶行為的統(tǒng)計和行為分析,主要功能包括數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)分析、數(shù)據(jù)可視化等,系統(tǒng)整體架構(gòu)如圖2,系統(tǒng)數(shù)據(jù)處理流程如圖3。
圖2 系統(tǒng)整體架構(gòu)
圖3 系統(tǒng)數(shù)據(jù)流圖
采集層:利用Flume采集電商服務(wù)器端用戶行為數(shù)據(jù),把數(shù)據(jù)處理后發(fā)送至HDFS。
存儲層:用戶行為數(shù)據(jù)采集上傳至HDFS存儲,導(dǎo)入到數(shù)據(jù)倉庫Hive進行計算處理,分析結(jié)果保存至MySql數(shù)據(jù)庫中。
計算層:根據(jù)分析需求建立分析需求模型,利用HiveQL啟動集群MapReduce任務(wù)對預(yù)先處理后用戶行為數(shù)據(jù)進行分析處理,挖掘用戶行為規(guī)律。服務(wù)層:處于展示層和計算層之間,利用Python語言編寫程序,把計算層分析結(jié)果傳送至展示層。
展示層:根據(jù)MySql中保存的計算結(jié)果,利用pyecharts可視化工具把用戶行為數(shù)據(jù)以圖表形式呈現(xiàn),方便分析者快速理解和分析數(shù)據(jù)。
Sqoop是一款開源的分布式數(shù)據(jù)遷移工具,主要用于Hive與傳統(tǒng)關(guān)系數(shù)據(jù)庫間數(shù)據(jù)傳遞。本文采用Sqoop工具實現(xiàn)Hive與Mysql的數(shù)據(jù)互導(dǎo),為pyecharts數(shù)據(jù)可視化提供數(shù)據(jù)來源。
1.系統(tǒng)部署
為簡化系統(tǒng)部署,該系統(tǒng)采用VMware虛擬機方式搭建Hadoop分布式集群,集群中1個master節(jié)點作為NameNode和2個slave節(jié)點作為DateNode,節(jié)點操作系統(tǒng)均安裝64位ubuntu16.04LTS,安裝Hadoop、Hive、Sqoop、JDK、MySQL等軟件,并完成相關(guān)配置。
在windows宿主機上安裝Python3.8,通過pip工具安裝pyecharts和Jupyter Notebook, 利用Jupyter Notebook可執(zhí)行編寫好的python程序生成pyecharts圖表,實現(xiàn)數(shù)據(jù)可視化。
2.數(shù)據(jù)預(yù)處理
本次用戶分析使用阿里云天池數(shù)據(jù)進行模擬,數(shù)據(jù)集為UserBehavior.csv,為淘寶2017年11月25日至2017年12月3日共9天的用戶行為記錄。該數(shù)據(jù)集約1億條記錄(100,150,807),包含用戶數(shù)量987,994個,每條記錄由用戶ID、商品ID、商品類目ID、行為類型和時間戳組成。把數(shù)據(jù)集上傳至HDFS中進行存儲,在Hive中創(chuàng)建數(shù)據(jù)庫User_Behavior,根據(jù)數(shù)據(jù)集中字段創(chuàng)建用戶行為臨時表user_1,通過HiveQL語句對數(shù)據(jù)集中數(shù)據(jù)進行空值及重復(fù)值處理,利用Hive中日期函數(shù)把times時間戳字段進行轉(zhuǎn)換,得到日期、小時以備分析數(shù)據(jù)使用。處理后數(shù)據(jù)寫入新表user_action,字段結(jié)構(gòu)如下表1所示。
表1 user_ac t i on表結(jié)構(gòu)f
其中,用戶行為類型字段的值包括pv(瀏覽)、cart(加購物車)、fav(收藏)、buy(下單)。數(shù)據(jù)集中存在當(dāng)前時間范圍之外的不符合規(guī)定的異常數(shù)據(jù),需要進行清除,最后預(yù)處理完后的數(shù)據(jù)記錄數(shù)為100,095,133條。
3.數(shù)據(jù)分析
(1)統(tǒng)計每日新增首次下單用戶。以2017年11月25日為第一天開始計算。
統(tǒng)計結(jié)果如圖4,9天中每天都有新用戶下單,每日下單數(shù)在減少,到12月2日周六時有所回升,推測應(yīng)該是與周末促銷活動刺激有關(guān)。
圖4 每日新增首次下單用戶情況
(2)統(tǒng)計新增下單用戶的留存情況。統(tǒng)計每天新增下單用戶的次日、3日、5日、7日留存用戶數(shù)和留存率,進而分析淘寶下單用戶的流失情況,如圖5所示。結(jié)果表明,淘寶用戶的次日、3日、5日、7日留存率基本維持在20%左右,網(wǎng)站可根據(jù)留存率情況分析用戶流失原因,進行適時的策略調(diào)整。
圖5 用戶留存情況
(3)用戶行為轉(zhuǎn)化
行為轉(zhuǎn)化(PV):PV是用戶瀏覽商品詳情頁面的點擊數(shù)總和,根據(jù)PV瀏覽記錄、收藏+加購記錄、購買記錄來構(gòu)建行為轉(zhuǎn)化模型。匯總所有用戶行為結(jié)果如圖6。瀏覽到有購買意向階段轉(zhuǎn)化率為9.39%((fav+cart)/pv),瀏覽到購買轉(zhuǎn)化率為2.25%(buy/pv),說明購買商品前用戶會有大量的商品詳情頁點擊瀏覽,約為44次 (pv/buy=89660654/2015775)。如果能夠根據(jù)用戶需求個性推薦,可提高轉(zhuǎn)化率,減少用戶瀏覽成本。
圖6 用戶行為匯總
用戶轉(zhuǎn)化(UV):UV為訪問商品頁面的獨立訪客數(shù),用戶轉(zhuǎn)化率是下單購買用戶占總瀏覽用戶的比例,分析結(jié)果如圖7,從瀏覽商品詳情頁到夠買的用戶轉(zhuǎn)化率達68.3%(buy/pv),可見淘寶網(wǎng)站用戶轉(zhuǎn)化率較高,說明平臺用戶體驗、產(chǎn)品服務(wù)、用戶需求、信任度等各方面得到用戶認(rèn)可。
圖7 獨立訪客用戶行為
(4)每天用戶行為情況
由圖8可見,9天中前7天的用戶活躍情況相對平穩(wěn),到12月2日和3日收藏數(shù)、加購數(shù)、購買數(shù)都出現(xiàn)小幅增長,尤其加購數(shù)增幅明顯,對比同為周末的11月25日和26日的表現(xiàn),推測后個周末可能會有促銷活動或與雙十二大促有關(guān),用戶數(shù)、訪問量大幅增加,加購數(shù)增幅較大說明用戶正為促銷時批量購買商品做好準(zhǔn)備。
圖8 每天用戶行為情況
(5)各時段用戶行為情況
為了能夠更客觀地分析不同時段的用戶行為,把9天中的各個時段數(shù)據(jù)匯總一起來觀察各個用戶行為變化趨勢,如圖9所示。
圖9 每時段用戶行為情況
可見,訪問量、用戶數(shù)等5項指標(biāo)變化趨勢基本吻合,0點到3點各項指標(biāo)急劇下滑,4點到達最低值,5點到10點逐步回升,10點至18點相對平穩(wěn),18點迅速上升,到21、22點到達最高峰,22點以后又開始下降。這也符合人們正常作息時間規(guī)律,從轉(zhuǎn)化率角度來看上午10點左右點擊-購買和(收藏+加購)-購買行為路徑轉(zhuǎn)化率最高,而用戶數(shù)高峰時段轉(zhuǎn)化率卻在降低,如圖10所示。因此,可以考慮在18點至22點之間推出力度較大的促銷活動或上架新商品等方式來提高轉(zhuǎn)化率。
圖10 各個時段轉(zhuǎn)化率
利用Hadoop平臺設(shè)計電商用戶行為分析系統(tǒng),對HDFS、Hive等關(guān)鍵技術(shù)進行了闡述,從數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)存儲等方面入手進行系統(tǒng)設(shè)計,以淘寶用戶行為數(shù)據(jù)集為例詳細(xì)介紹了數(shù)據(jù)分析處理的實現(xiàn)過程,最后對數(shù)據(jù)處理結(jié)果進行存儲并可視化。結(jié)果表明該系統(tǒng)能夠根據(jù)用戶行為習(xí)慣、用戶行為轉(zhuǎn)化等不同維度對用戶行為進行挖掘分析,可為電商平臺調(diào)整營銷策略、提升用戶體驗等方面提供參考建議和數(shù)據(jù)支撐。本文主要是利用Hadoop技術(shù)進行離線數(shù)據(jù)的分析,下一步工作將進一步優(yōu)化該系統(tǒng),實現(xiàn)日志數(shù)據(jù)的實時分析和處理。