国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于華為大數(shù)據(jù)平臺(tái)的電商網(wǎng)站建設(shè)優(yōu)化

2019-03-14 07:17:54劉磊黃嘉浩許銳強(qiáng)蔡欣樺
現(xiàn)代計(jì)算機(jī) 2019年4期
關(guān)鍵詞:日志可視化電商

劉磊,黃嘉浩,許銳強(qiáng),蔡欣樺

(廣東開放大學(xué),廣東理工職業(yè)學(xué)院,廣州 510000)

0 引言

電商網(wǎng)站是當(dāng)今人們使用最多的Web應(yīng)用,大量用戶每日訪問網(wǎng)頁瀏覽商品、搜索喜歡的商品、查看商品詳情、收藏添加購(gòu)物車、登錄購(gòu)買商品等操作,在電商網(wǎng)站留下了海量的使用數(shù)據(jù),堆積起來達(dá)到一定規(guī)模,就構(gòu)成大數(shù)據(jù),大數(shù)據(jù)分析就是利用特定平臺(tái)對(duì)規(guī)模巨大的數(shù)據(jù)進(jìn)行分析挖掘,找到相關(guān)因素之間的關(guān)系。本文以某電商網(wǎng)站的Web日志、用戶維表、商品維表、銷售事實(shí)表為源數(shù)據(jù),通過源數(shù)據(jù)分析、數(shù)據(jù)清洗、HQL分析、數(shù)據(jù)可視化等步驟,從用戶瀏覽量、銷售量、點(diǎn)擊量、商品好評(píng)等角度,分析每個(gè)用戶對(duì)不同類型商品的喜好程度,從而為電商網(wǎng)站在相應(yīng)頁面推薦合適商品給不同用戶,優(yōu)化網(wǎng)站建設(shè),提升用戶體驗(yàn)并促進(jìn)用戶消費(fèi)。

1 華為大數(shù)據(jù)平臺(tái)

華為大數(shù)據(jù)平臺(tái)FusionInsight HD是華為企業(yè)級(jí)大數(shù)據(jù)存儲(chǔ)、查詢、分析的統(tǒng)一平臺(tái),通過分布式部署,對(duì)外提供大容量的數(shù)據(jù)存儲(chǔ)、查詢和分析能力,能夠快速構(gòu)建海量數(shù)據(jù)信息處理系統(tǒng),對(duì)海量信息數(shù)據(jù)實(shí)時(shí)與非實(shí)時(shí)的分析挖掘,F(xiàn)usionInsight HD兼容開源Ha?doop框架及眾多組件,是完全開放的大數(shù)據(jù)平臺(tái),可運(yùn)行在開放的x86架構(gòu)服務(wù)器上[1]。FusionInsight HD對(duì)開源組件進(jìn)行封裝和增強(qiáng),包含了管理系統(tǒng)Manager和眾多組件,常用功能包括:①M(fèi)anager,運(yùn)維管理系統(tǒng);②Loader,實(shí)現(xiàn)FusionInsight HD與關(guān)系型數(shù)據(jù)庫、文件系統(tǒng)之間交換數(shù)據(jù)和文件的加載工具,Loader支持關(guān)系型數(shù)據(jù)庫和HDFS、HBase、Hive表等之間的互相導(dǎo)入導(dǎo)出;③Hive:建立在Hadoop基礎(chǔ)上的開源的數(shù)據(jù)倉庫,提供類似SQL的Hive Query Language語言(HQL)操作結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)服務(wù)和基本的數(shù)據(jù)分析服務(wù)。④MapReduce:提供快速并行處理大量數(shù)據(jù)的能力,是一種分布式數(shù)據(jù)處理模式和執(zhí)行環(huán)境[2]。本文采用Java編寫MapReduce程序?qū)?shù)據(jù)進(jìn)行清洗。

2 分析方案設(shè)計(jì)

基于大數(shù)據(jù)平臺(tái)對(duì)海量數(shù)據(jù)分析展示一般分步進(jìn)行,本文對(duì)電商網(wǎng)站數(shù)據(jù)分析設(shè)計(jì)的方案如圖1所示。步驟如下:

(1)獲取源數(shù)據(jù):本文電商網(wǎng)站數(shù)據(jù)來源于互聯(lián)網(wǎng),可以通過大數(shù)據(jù)交易、API接口、網(wǎng)絡(luò)爬蟲、統(tǒng)計(jì)圖表等方式獲取源數(shù)據(jù)。

(2)分析源數(shù)據(jù):源數(shù)據(jù)拿到后,根據(jù)定下的分析角度,分析源數(shù)據(jù)字段是否全部滿足分析角度的需求,是否有臟數(shù)據(jù),是否需要數(shù)據(jù)清洗,本文從三個(gè)角度分析:分析每個(gè)商品的好評(píng)度、分析用戶粘度、分析用戶最喜歡購(gòu)買的商品。

(3)加載源數(shù)據(jù):使用ETL工具將源數(shù)據(jù)導(dǎo)入HDFS,這里采用Loader組件將數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫導(dǎo)入Hive表。

(4)數(shù)據(jù)預(yù)處理:源數(shù)據(jù)通常包含臟數(shù)據(jù),不能直接用來分析,需要根據(jù)需求進(jìn)行預(yù)處理,包括數(shù)據(jù)清洗,缺省值填充,數(shù)據(jù)選擇,數(shù)據(jù)變換,數(shù)據(jù)集成等。

(5)HQL分析:對(duì)預(yù)處理后的數(shù)據(jù),使用HQL語言進(jìn)行分析,HQL可以查詢和分析存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù),使用HQL可以快速方便的進(jìn)行MapReduce統(tǒng)計(jì)。

(6)Java分析:使用Java編寫MapReduce程序進(jìn)行數(shù)據(jù)清洗和可視化呈現(xiàn)分析結(jié)果。

(7)導(dǎo)出分析結(jié)果:使用Loader工具將分析結(jié)果從HDFS導(dǎo)出到關(guān)系型數(shù)據(jù)庫,為Web系統(tǒng)應(yīng)用提供大數(shù)據(jù)分析結(jié)果。

圖1 分析方案示意圖

3 源數(shù)據(jù)分析

本文收集到的電商網(wǎng)站數(shù)據(jù),包含Web日志數(shù)據(jù)、用戶維表、商品維表和銷售事實(shí)表,Web日志數(shù)據(jù)存儲(chǔ)在HDFS文件系統(tǒng),數(shù)據(jù)量為1949878條,記錄用戶瀏覽網(wǎng)站的痕跡,源數(shù)據(jù)包含了一些錯(cuò)誤字段和臟數(shù)據(jù),需要先進(jìn)行數(shù)據(jù)清洗,再導(dǎo)入Hive進(jìn)行分析。用戶維表、商品維表和銷售事實(shí)表都存儲(chǔ)在MySQL關(guān)系型數(shù)據(jù)庫中,用戶維表記錄用戶的基本信息,數(shù)據(jù)量為100000條,定義表名為user;商品維表記錄商品的標(biāo)簽和價(jià)格,數(shù)據(jù)量為54條,定義表名為shop;銷售事實(shí)表存儲(chǔ)銷售記錄,數(shù)據(jù)量為1000001條,定義表名為sale。這三表存在主外鍵關(guān)系,銷售事實(shí)表里有兩個(gè)外鍵,用戶名字段來自用戶維表,商品ID字段來自商品維表。這三張表不需要數(shù)據(jù)清洗,直接使用Loader工具導(dǎo)入Hive數(shù)據(jù)倉庫。

4 數(shù)據(jù)預(yù)處理

高質(zhì)量的大數(shù)據(jù)分析要基于高質(zhì)量的數(shù)據(jù),但是源數(shù)據(jù)通常存在部分臟數(shù)據(jù),例如數(shù)據(jù)不完整、數(shù)據(jù)存在錯(cuò)誤或異常、數(shù)據(jù)內(nèi)容不一致等。這時(shí)要根據(jù)分析需求預(yù)先進(jìn)行數(shù)據(jù)清洗。

電商網(wǎng)站W(wǎng)eb日志源數(shù)據(jù)以文件形式存儲(chǔ)在HDFS文件系統(tǒng)中,使用命令查看,通過分析電商網(wǎng)站W(wǎng)eb日志源數(shù)據(jù),數(shù)據(jù)格式是每行為一條記錄,行之間通過換行符分開,每行數(shù)據(jù)用空格符分隔成9個(gè)不同字段數(shù)據(jù),除這些正確數(shù)據(jù)格式外,發(fā)現(xiàn)源數(shù)據(jù)還存在字段錯(cuò)誤、冗余數(shù)據(jù),影響后面的數(shù)據(jù)分析,因此對(duì)臟數(shù)據(jù)進(jìn)行過濾。編寫MapReduce程序進(jìn)行數(shù)據(jù)清洗,清洗過程由Mapper負(fù)責(zé),Reducer則負(fù)責(zé)把清洗后的數(shù)據(jù)輸出,使用Java編寫代碼。Mapper代碼獲取輸入流,按規(guī)則進(jìn)行清洗,首先對(duì)每一行按空格拆分成數(shù)組,判斷若數(shù)組長(zhǎng)度為9則符合要求,繼續(xù)清洗,使用Parselogs類將每行數(shù)據(jù)解析成9個(gè)字段,分別對(duì)應(yīng)用戶IP地址、用戶名、時(shí)間、商品一級(jí)標(biāo)簽、商品二級(jí)標(biāo)簽、商品ID、用戶訪問來源url地址、響應(yīng)碼、用戶訪問頁面所用的工具,將正確的數(shù)據(jù)交給Reducer[3-5]。

清洗完之后Web日志數(shù)據(jù)相對(duì)干凈和有規(guī)律,保留的結(jié)構(gòu)如表1所示。

表1 清洗后的Web日志數(shù)據(jù)(Web)結(jié)構(gòu)

5 HQL分析及可視化

Hive是基于Hadoop的數(shù)據(jù)倉庫基礎(chǔ)構(gòu)架,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,提供了一種存儲(chǔ)、查詢和分析Hadoop中的大規(guī)模數(shù)據(jù)的機(jī)制。Hive定義了簡(jiǎn)單的類SQL查詢語言,稱為HQL,它允許熟悉SQL的用戶查詢數(shù)據(jù),可以將HQL語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行[6]。

Hive中所有的數(shù)據(jù)都存儲(chǔ)在HDFS中,支持text?file、Sequencefile、Rcfile等數(shù)據(jù)格式。使用Hive創(chuàng)建表的時(shí)候,需要設(shè)定數(shù)據(jù)中的列分隔符和行分隔符,這樣才能將數(shù)據(jù)正確導(dǎo)入Hive表。

下面使用HQL從三個(gè)角度分析電商網(wǎng)站數(shù)據(jù):

(1)分析每個(gè)商品的好評(píng)度

計(jì)算每個(gè)商品的好評(píng)度,對(duì)商品做出合理評(píng)價(jià),給予用戶更好質(zhì)量的推薦,提高用戶體驗(yàn)度。設(shè)定好評(píng)度計(jì)算規(guī)則為:好評(píng)度=(5分次數(shù)+4分次數(shù)*0.8+3分次數(shù)*0.5)/評(píng)價(jià)總次數(shù),如果評(píng)價(jià)字段空缺,則用5分填充。本條分析數(shù)據(jù)來自銷售事實(shí)表(sale),根據(jù)商品ID分組統(tǒng)計(jì),計(jì)算每個(gè)商品的好評(píng)度,分析語句如下:

select goods_id as`商品 ID`,round(count(case when evalu?ates=4 then'4'end)+count(case when evaluates=3 then'3'end)+count(case when evaluates=5 and evaluates=''then'5'end)/count(evaluates),2)as`好評(píng)度`from sale group by goods_id order by`好評(píng)度`;

運(yùn)行結(jié)果如圖2所示。

圖2 統(tǒng)計(jì)商品的好評(píng)度

對(duì)數(shù)據(jù)結(jié)果進(jìn)行可視化展示,使用Java編寫代碼展示好評(píng)度排名前10的商品,效果如圖3所示。

(2)分析用戶粘度

從網(wǎng)頁URL被訪問的訪客數(shù)量和訪問總次數(shù)兩個(gè)角度分析網(wǎng)站的訪問粘性,分析訪問量最大的頁面,優(yōu)化其他頁面,衡量頁面更新前后受歡迎程度,從而優(yōu)化整體網(wǎng)站建設(shè)。本條分析數(shù)據(jù)來自用戶瀏覽網(wǎng)站的Web日志記錄(web),根據(jù)網(wǎng)頁URL分組統(tǒng)計(jì),計(jì)算不重復(fù)的訪客數(shù)量,頁面訪問總次數(shù),并按降序排列,分析語句如下:

select url as`網(wǎng)頁 URL`,count(distinct user_id)as`訪客數(shù)量`,count(url)as`訪問總次數(shù)`from web group by url;

運(yùn)行結(jié)果如圖4所示。

圖3 統(tǒng)計(jì)商品的好評(píng)度可視化效果

圖4 統(tǒng)計(jì)用戶粘度

對(duì)數(shù)據(jù)結(jié)果進(jìn)行可視化展示,使用Java編寫代碼展示訪問量前5的網(wǎng)頁,效果如圖5所示。

圖5 統(tǒng)計(jì)用戶粘度可視化效果

(3)分析用戶最喜歡購(gòu)買的商品

對(duì)于已經(jīng)登錄的用戶,根據(jù)用戶的基本信息如年齡段、性別、職業(yè)等,分析出用戶最喜歡購(gòu)買的商品,從而將這些商品有目標(biāo)的推送給不同用戶展示,提高交易成功率,優(yōu)化網(wǎng)站建設(shè)。本條分析統(tǒng)計(jì)不同年齡段不同性別消費(fèi)金額最多的商品種類,年齡和性別來自用戶維表(user),消費(fèi)金額來自銷售事實(shí)表(sale),商品種類來自商品維表(shop),用戶維表和銷售事實(shí)表根據(jù)用戶ID關(guān)聯(lián),銷售事實(shí)表和商品維表根據(jù)商品ID關(guān)聯(lián),根據(jù)年齡段和性別分組,統(tǒng)計(jì)出消費(fèi)金額最多的商品種類,分析語句如下:

select t.sex as`性別`,t.age as`年齡段`,y.kid2 as`商品類別`from(select elect*,row_number()over(partition by c.sex,c.age order by c.money desc)as rank from(select a.sex,a.age,b.goods_id,b.money from(select s.age,s.sex,s.id from(select case when range_age<=30 then'<=30'when range_age>30 and range_age<=50 then'30-50'when range_age>=50 then'>=50'end as age,sex,userid as id from user)s group by s.age,s.sex,s.id)a join(select sum(money*num)as money,goods_id,us?er_id from sale group by goods_id,user_id)b on a.id=b.user_id group by a.sex,a.age,b.goods_id,b.money)c)z where z.rank<=1)t join shop y on t.goods_id=y.goods_id;

運(yùn)行結(jié)果如圖6所示。

由結(jié)果可知,不同年齡段不同性別的用戶最喜歡購(gòu)買的商品種類,基于大數(shù)據(jù)分析結(jié)果,再將同類目下的商品推薦給顧客,就可以達(dá)到優(yōu)化網(wǎng)站建設(shè),提高用戶體驗(yàn)度的效果。

圖6 不同年齡段不同性別用戶喜歡購(gòu)買的商品

6 結(jié)語

電商網(wǎng)站每日產(chǎn)生的用戶數(shù)據(jù)正呈指數(shù)性增長(zhǎng),如何從這么大規(guī)模的數(shù)據(jù)量中分析挖掘出有價(jià)值的信息,反饋網(wǎng)站建設(shè)優(yōu)化,給用戶帶來更好的使用體驗(yàn),這給技術(shù)帶來了挑戰(zhàn)。隨著大數(shù)據(jù)平臺(tái)的日漸成熟和普及,能夠輕松實(shí)現(xiàn)TB級(jí)數(shù)據(jù)的存儲(chǔ)、PB級(jí)數(shù)據(jù)的查詢分析,為海量數(shù)據(jù)的分析預(yù)測(cè)提供了技術(shù)手段。本文基于業(yè)界流行的華為大數(shù)據(jù)平臺(tái),對(duì)電商網(wǎng)站數(shù)據(jù)進(jìn)行了三個(gè)角度的分析,先進(jìn)行數(shù)據(jù)清洗,再使用HQL語言做統(tǒng)計(jì)分析,最后使用Java呈現(xiàn)可視化分析結(jié)果,為Web網(wǎng)站建設(shè)優(yōu)化提供了數(shù)據(jù)支持,本文下一步將繼續(xù)研究更復(fù)雜的分析角度,采用編寫MapReduce程序?qū)崿F(xiàn)復(fù)雜分析。

猜你喜歡
日志可視化電商
電商助力“種得好”也“賣得火”
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運(yùn)行動(dòng)態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
一名老黨員的工作日志
扶貧日志
心聲歌刊(2020年4期)2020-09-07 06:37:14
基于CGAL和OpenGL的海底地形三維可視化
“融評(píng)”:黨媒評(píng)論的可視化創(chuàng)新
電商鄙視鏈中的拼多多
游學(xué)日志
電商下鄉(xiāng)潮
汕头市| 邯郸市| 马公市| 舟曲县| 武夷山市| 延边| 靖西县| 石河子市| 通州市| 临湘市| 公安县| 咸丰县| 靖西县| 固始县| 漳浦县| 佳木斯市| 山阴县| 台湾省| 来宾市| 郸城县| 金华市| 澎湖县| 昭平县| 游戏| 云霄县| 微博| 临泉县| 安龙县| 门源| 绩溪县| 那坡县| 阿合奇县| 彰武县| 罗江县| 巴楚县| 辽源市| 桦川县| 白山市| 二手房| 祁连县| 贵港市|